Photoshop とつながりました

【Photoshop連携・第二章】

動画の通り、Photoshop で引いた作業用パスのアンカーポイント座標が UXP 側で取れました。

https://developer.adobe.com/photoshop/uxp/2022/ps_reference/classes/pathitem/

試しに Cubism でアートメッシュを手打ちし、その座標を目視で照会したところ、わずかな誤差はあるものの概ね一致。

つまり作業用パスの座標が Cubism でのモデリングに利用できる可能性を秘めてきます。

* * *

▼要望①:MakeArtMeshVertexFromCoordinate( var ancors )

編集モードが “ModelingMeshEdit” の場合、JSON送信された座標に頂点を打ち、アートメッシュを自動形成するメソッドがあるといいなと思います!

こちらの要望が巻き取れて、幾何学的形状や円のように美しいアートメッシュが PhotoShop 先輩のパワーで作れるようになるかな~と感じます。

▼要望②:MakeStroke( int MeshWidht, int interval, int ControlPointNum, var ancors )

編集モードが “ModelingMeshEdit” の場合、JSON送信された座標を「ストロークによるメッシュ割り(β)」の制御点へプロット。引数でメッシュ幅や折り返しの間隔、幅の頂点数を指定できるとなお良いかと思います!

特に「輪郭」のモデリングが効率化できそう。絵師様と Vtuber の数だけ輪郭のバリエーションが存在し、最も丁寧なアートメッシュ形成が求められる部位であるためです。

スカートの稜線にもパスから自動生成できると、時短になりそうですね!

▼要望③:MakeWarpDeformerFromRectangle( int 分割数etc… )

編集モードが “Modeling” の場合、JSON送信された矩形座標を「ワープデフォーマ」に変換します。

* * *

Photoshop を深く知り使いこなすことが、さらなる効率化につながりそうな気がいたしました。今後の開発の参考になりますと、幸いです。

【追記・JavaScript】

関数を core に詰め込んで executeAsModal で実行しないといけないようでした。

function GetPathAncorpoints()
{
	const PScore = require( "photoshop" ).core;
	const app = require( "photoshop" ).app;
	
	PScore.executeAsModal( async() =>
	{
	    try
	    {
			const currentPathItem = app.activeDocument.pathItems[0];
			var ancors = currentPathItem.subPathItems[0].pathPoints;
			console.warn( "★ " + currentPathItem.name + " のアンカーポイント数 = " + ancors.length );
			
			for( var p of ancors )
			{
				console.warn( "★座標 = " + p.anchor );
			}
			
			//@ToDo JSONにして WebSocket 送信
	    }
	    catch( e )
	    {
			console.log( e );
	    }
	});
}
「いいね!」 1