【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 );
}
});
}