クリエイター手抜きプロジェクト[129]Photoshop CS2編 ランダムに猫の足跡を描く/古籏一浩

投稿:  著者:  読了時間:5分(本文:約2,200文字)


今回は、ランダムに猫の足跡を描くスクリプトです。Photoshopにはシェイプとして(ベクトルデータとして)猫の足あとが登録されています。しかし、JavaScriptリファレンスガイドを見てもShapeというオブジェクトが存在しないため、手軽にシェイプ図形を処理することができません。

そこで、以前にも説明したScripting Listenerを利用します。スクリプトのfunction drawShape(){〜}がScrpting Listenerで生成したものになります。これに手を加えて任意のシェイプ図形と任意の座標に描くように改造してあります。Photoshop CS2では問題なく動作しますが、それ以前のCSなどでは大量生成するとPhotoshop自体が落ちてしまうことがあるので注意が必要です。


for (i=0; i< 30; i++)
{
x = Math.floor(Math.random() * activeDocument.width);
y = Math.floor(Math.random() * activeDocument.height);
drawShape("猫の足跡", x+0, y+0, x+50, y+50);
}

function drawShape(shapeName, t, l, b, r)
{
var id18 = charIDToTypeID( "Mk " );
var desc3 = new ActionDescriptor();
var id19 = charIDToTypeID( "null" );
var ref1 = new ActionReference();
var id20 = stringIDToTypeID( "contentLayer" );
ref1.putClass( id20 );
desc3.putReference( id19, ref1 );
var id21 = charIDToTypeID( "Usng" );
var desc4 = new ActionDescriptor();
var id22 = charIDToTypeID( "Type" );
var id23 = stringIDToTypeID( "solidColorLayer" );
desc4.putClass( id22, id23 );
var id24 = charIDToTypeID( "Shp " );
var desc5 = new ActionDescriptor();
var id25 = charIDToTypeID( "Nm " );
desc5.putString( id25, shapeName );
var id26 = charIDToTypeID( "Top " );
var id27 = charIDToTypeID( "#Pxl" );
desc5.putUnitDouble( id26, id27, t );
var id28 = charIDToTypeID( "Left" );
var id29 = charIDToTypeID( "#Pxl" );
desc5.putUnitDouble( id28, id29, l );
var id30 = charIDToTypeID( "Btom" );
var id31 = charIDToTypeID( "#Pxl" );
desc5.putUnitDouble( id30, id31, b );
var id32 = charIDToTypeID( "Rght" );
var id33 = charIDToTypeID( "#Pxl" );
desc5.putUnitDouble( id32, id33, r );
var id34 = stringIDToTypeID( "customShape" );
desc4.putObject( id24, id34, desc5 );
var id35 = stringIDToTypeID( "contentLayer" );
desc3.putObject( id21, id35, desc4 );
executeAction( id18, desc3, DialogModes.NO );
}


【古籏一浩】openspc@po.shiojiri.ne.jp
< http://www.openspc2.org/ >

Photoshop CS3のJavaScriptリファレンスを見ると、まだまだ不足している機能(オブジェクト)があるようです。CS4に期待したいところです。
それから、Bryce 6のページを作成しました。
< http://www.openspc2.org/reibun/Bryce6/ >

昔、BryceでWindowsとMacintosh数十台使ってネットワークレンダリングさせたら、できあがった画像がCPUによって異なっていました。結局、Windowsのみ使ってレンダリングしました。PhotomatixもCPUによって結果が異なるので、なかなか難しいところです。


photo
ActionScript逆引きクイックリファレンス―5&MX&MX2004&8対応 for Windows & Macintosh
田中 康博 古籏 一浩 林 拓也
毎日コミュニケーションズ 2005-12
おすすめ平均 star
starFlash(ActionScript)の開発前の調査にも役立ちます
star良書です。

Flash逆引きクイックリファレンス 8&MX2004対応for Windows & Macintosh FLASH ActionScript 2.0入門完全ガイド+実践サンプル集 [CD-ROM付] Flash Hacks―プロが教えるテクニック&ツール100選 Flash ActionScript Handbook 4th edition 速習Webテクニック FLASH8 ActionScript 実例サンプル47



photo
Google Maps API逆引きクイックリファレンス―WEB2.0対応
古籏 一浩
毎日コミュニケーションズ 2006-09
おすすめ平均 star
starようやく出ました。使えるGoogleMapsリファレンス。

Google Maps API徹底活用ガイド Google Maps Hacks -地図検索サービス徹底活用テクニック- Google Maps APIv2活用リファレンス Googleマップ+Ajaxで自分の地図をつくる本  Google Maps API徹底活用 入門Webマッピング―自分で作るオリジナルのデジタル地図

by G-Tools , 2007/05/21