ふわふわぷかぷか

最近はイラレとAeにはまってます。

【Illustratorスクリプト】指定した数の色でランダムに塗るスクリプト。(レイヤーの並び順?)

Windows10、CC2021

選択したオブジェクトを、入力した色の数でランダムに塗ってくれるスクリプトです。

こんなかんじです↓

複合パスは色が変わりません。

色を変えられるオブジェクトが無い時にキャンセルをした場合、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++){
	 sel[j].fillColor = colors[j % colors.length];
	}
}}


	   
//ダイアログを表示
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();//作成したウインドウを表示