クリエイター手抜きプロジェクト[288]Adobe InDesign CS3/CS4/CS5編 文字のサイズやフォントをランダムに設定する/古籏一浩

投稿:  著者:  読了時間:7分(本文:約3,100文字)


今回のスクリプトは、前回同様、選択されたテキストフレーム内の文字のサイズやフォントを、ランダムに設定するものです。IllustratorとInDesignはスクリプトのプロパティが非常によく似ていますが、やはり同じスクリプトでは動作しません。

最初のスクリプトは、選択されたテキストフレーム内の文字を上下左右にずらします。ちなみに、このスクリプトに関してはIllustratorでもInDesignでも動作します。



var dx = 20; // 左右のずれ
var dy = 10; // 上下のずれ
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
for(var j=0; j<selObj[i].characters.length; j++){
var x = Math.random() * dx - dx/2;
var y = Math.random() * dy - dy/2;
selObj[i].characters[j].baselineShift = y;
selObj[i].characters[j].tracking = x;
}
}


次は、さらに文字を回転、文字サイズも変更するものです。InDesignで文字を回転する場合は、characterRotationプロパティに回転角度を入れる必要があります。ここはIllustratorとは異なっています。


var dx = 20; // 左右のずれ
var dy = 10; // 上下のずれ
var rot = 30; // 最大30度
var size = 6; // 最大6pt差
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
for(var j=0; j<selObj[i].characters.length; j++){
var x = Math.random() * dx - dx/2;
var y = Math.random() * dy - dy/2;
var r = Math.random() * rot - rot/2;
var s = Math.random() * size - size/2;
selObj[i].characters[j].baselineShift = y;
selObj[i].characters[j].tracking = x;
selObj[i].characters[j].characterRotation = r;
var csize = selObj[i].characters[j].pointSize;
selObj[i].characters[j].pointSize = csize + s;
}
}


最後のスクリプトは、さらにフォントも変更するものです。
fontList=[] の []内に、文字に適用したいフォント名を指定します。
他のフォントにしたい場合はフォント名を変更してください。もちろん追加することもできます。フォント名は、Illustratorとは異なり日本語フォント名で指定します。


var fontList = [
"小塚ゴシック Pro", // 小塚ゴシックPro
"小塚明朝 Pro", // 小塚明朝Pro
"ヒラギノ角ゴ Pro" // ヒラギノ角ゴシックW6
];
var dx = 20; // 左右のずれ
var dy = 10; // 上下のずれ
var rot = 30; // 最大30度
var size = 6; // 最大6pt差
var selObj = app.activeDocument.selection;
for(var i=0; i<selObj.length; i++){
for(var j=0; j<selObj[i].characters.length; j++){
var x = Math.random() * dx - dx/2;
var y = Math.random() * dy - dy/2;
var r = Math.random() * rot - rot/2;
var s = Math.random() * size - size/2;
var n = Math.floor(Math.random() * fontList.length);
selObj[i].characters[j].baselineShift = y;
selObj[i].characters[j].tracking = x;
selObj[i].characters[j].characterRotation = r;
var csize = selObj[i].characters[j].pointSize;
selObj[i].characters[j].pointSize = csize + s;
selObj[i].characters[j].appliedFont = app.fonts.item(fontList[n]);
}
}


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

先週のデジクリ。齋藤浩さんの、わが逃走[91]の水戸黄門。確かに昔の方が(第5部あたりまで、かな)バリエーションが多く、まったく予定調和でないことも多く楽しめます。今見ても面白いです。黄門様が占い師になって、それを実現するため、屋根裏で弥七があたふたするようなのもあったり。なぜか、農作業を楽しむ黄門様とか。

それから、フィルムじゃなくてもSONYのハイビジョンカメラHDR-FX1あたりだと空気感が表現できます。でも、XF300とか最近の高性能なカメラになると、空気の存在感がなくなってしまい、のっぺらしか感じにはなります。

Panasonicのハンディカムもそうですが。NHKの大河ドラマ龍馬伝で使ったようなカメラなら別でしょうけど、今のは空気感をうまく映すのは難しいかなと思います。

デジタルリマスターの水戸黄門案には賛成。銭形平次や大岡越前などもデジタルリマスターして放送してもいいかもしれませんね。そう言えばロケ地が美しい(?)と言えば初期の戦隊モノも結構いいところ(ダムとか)撮影していた気が。

・改訂5版JavaScriptポケットリファレンス【発売中!!】
< http://www.amazon.co.jp/dp/4774148199 >

・10日で覚えるHTML5入門教室【9/14発売】
< http://www.amazon.co.jp/dp/4798124184 >

・毎度おなじみASCII.jpの連載
「第6回 PhoneGapでMapKitを使って地図アプリを開発」
< http://ascii.jp/elem/000/000/632/632694/ >

・Google API Expertが解説する HTML5逆引きリファレンス
< http://www.amazon.co.jp/dp/4844330349 >

・iPhone/iPad × HTML5アプリ制作
< http://www.amazon.co.jp/dp/4797362618 >

・ハイビジョン映像素材集
< http://www.openspc2.org/HDTV/ >

・Adobe Illustrator CS3 + JavaScript 自動化サンプル集
< http://www.openspc2.org/book/PDF/Adobe_Illustrator_CS3_JavaScript_Book/ >