【Illustratorスクリプト】指定した数の色でランダムに塗るスクリプト。
Windows10、CC2021
選択したオブジェクトを、入力した色の数でランダムに塗ってくれるスクリプトです。
このスクリプトを改良したものを、したたか企画様(twitter)が公開してくれました。
私のスクリプトでは対応していない複合パスや線の塗りにも使えますのでこちらがおすすめです!
こんなかんじです↓
何色か決めてランダムに塗れるよ! pic.twitter.com/srOA03EkNP
— ふわぷか (@float_jelly) 2023年2月15日
※複合パスは色が変わりません。
※色を変えられるオブジェクトが無い時にキャンセルをした場合、1つ前の状態に戻ってしまいます。(Ctri+zを押したのと同じことになります)
「もう1回」を2回以上押すとどんどん戻っていきます。
また、OKを押しても何も起きません。
「×」か「OK」を押せば正常に閉じれるはずです。
※グループ化しないで使ってください。
このスクリプト を使用して問題が起きた場合責任は負いません。
順番通りにランダムにするスクリプトも作りました。
自分用に作ってるので、中途半端でごめんなさい。
以下ソースコードです。
#target "illustrator" //選択中のオブジェクトを取得 var sel = app.activeDocument.selection; //1個以上の場合のみ動作 if(sel.length > 0){ function setRGBColor(r,g,b){ var tmpColor = new RGBColor(); tmpColor.red = r; tmpColor.green = g; tmpColor.blue = b; return tmpColor; } //動作 function make(){ //色の作成 var iron = parseInt(iro.text); var colors = []; for ( var i=0; i<iron; i++){ function getRandomColor() { var newColor= new RGBColor(); newColor.red = 1 + Math.floor( Math.random() * 255 ); newColor.green = 1 + Math.floor( Math.random() * 255 ); newColor.blue = 1 + Math.floor( Math.random() * 255 ); return newColor; } var color = getRandomColor(); colors.push(color); } //塗る sel = activeDocument.selection; for (j=0; j<sel.length; j++){ var iron = parseInt(iro.text); var colorIndex = Math.floor (Math.random() *iron); sel[j].fillColor = colors[colorIndex]; } }} //ダイアログを表示 var dialog = new Window("dialog","色をランダムに変更",[0,0,280,120]); dialog.add ("statictext", [10,20,60,40], "色の数"); var iro = dialog.add("edittext",[50,20,100,40],"3");//色数 var btnSai = dialog.add("button",[10,70,80,100],"もう1回",{name:'sai'});//もう1回 var btnOK = dialog.add("button",[100,70,170,100],"OK",{name:'ok'});//OK var btnCancel = dialog.add("button",[190,70,260,100],"cancel",{name:'cancel'});//CANCEL iro.active = true; //テキストエリアをフォーカスする dialog.onShow = function() { make(); app.redraw(); //ドキュメントを再描画 } //プレビュー iro.onChanging = function(){ make(); app.undo(); make(); app.redraw(); } //もう1回の処理 btnSai.onClick = function(){ app.undo(); //アンドゥ make(); app.redraw(); //ドキュメントを再描画 } //キャンセルの処理 btnCancel.onClick = function(){ app.undo(); dialog.close(); } //OKの処理 btnOK.onClick = function(){ dialog.close(); //ダイアログを閉じる } dialog.center();//ウインドウ表示位置をモニターの中心に移動 dialog.show();//作成したウインドウを表示