フォトショップスクリプト6 - 画像の引き伸ばし

フォトショップのスクリプト、日本では余り使う方がいないのでしょうか?

情報が少ないですね。

 

あると便利だと思うので、稚拙ながら公開します。

Expand

 

modoにはテクスチャをベイクする時に環境設定で、UV境界サイズを変更し、

UVの外側にもレンダリング出来ることを以前書いたかと思います。

バージョンによって挙動が違います。

 

401sp4では、方向にムラがあるように思います。

設定した通りの大きさで出てくる方向もあれば、ギリギリのところもあります。

ノーマルはそれぞれの方向に均等にレンダリングされている感じですが、

それ以外のものはムラができます。

 

それを解消するべく、レンダリングした画像をテクスチャとして貼り、

「UVの継ぎ目を拡大」コマンドを実行してみましたが、やはり綺麗には行きません。

 

どうしたものかと、考えているうち、フォトショップでやってみようと思い立ち、スクリプトを作ってみました。

原理は簡単で、画像を複製し、8方向に1ピクセルずつ動かしているだけです。

 

ただ、これを使うのに注意点があります。

レンダリングの際に、「アンチエイリアシング」「1サンプル/ピクセル」

「アンチエイリアシングフィルター」「ボックス」にして、アンチエイリアシングが全くかからないようにして、レンダリングしてください。

そして、アルファチャンネルは必須です。

 

スクリプトのインストールは、フォトショップが起動していない状態で、

C:\Program Files (x86)\Adobe\Adobe Photoshop *\プリセット\スクリプト\

に、放りこめば動きます。

ちなみに上記のものはVista、7仕様です。

C:\Program Files\Adobe\Adobe Photoshop *\プリセット\スクリプト\

こちらがXP仕様です。

 

スクリプトの使い方は、

まず、画像を開きます。

画像は、「背景」レイヤーのみで、アルファチャンネルがあるものが限定です。

 

ファイル>スクリプト>Expand

を選び実行します。

ダイアログが表示されます。

1以上の数値を入れます。これが繰り返し回数となります。

 

そして、Tipsは、レイヤータブとヒストリータブを表示させないことです。

この二つが表示されていると画面の更新で若干時間がかかります。

スクリプトはバックグラウンドで動かして欲しいものですが、フォトショップの仕様です。

 

行っている処理は、

 

アルファチャンネを選択範囲として読み込み。

背景レイヤーの画像をコピー。

新規レイヤー作成。

画像をペースト。

作成したレイヤーの透明領域の保護。

ぼかし(ガウス)を範囲「1」で実行。※アンチエイリアシングしていないため、ぼかします。

背景レイヤーの非表示。

クリップボードから画像を消去。

レイヤーを8回複製。

それぞれのレイヤーを移動。

表示画像の統合。

 

です。

間違っている、使いにくい、等ありましたら勝手に変えてください。

見ての通り超ローテクです。

 

実際にやってみた感想は、う~ん、微妙、、です。

汚く拡張されるよりはましなのかな?という程度です。

modoの方でもっと綺麗にやってくれると助かるのですが、、

 

一応ソースも載せておきます。

text = prompt("繰り返し回数","1");

a = parseInt(text);

if(a>=1)
{
	chObj = activeDocument.channels[3];
	activeDocument.selection.load(chObj);

	activeDocument.selection.copy();
	activeDocument.artLayers.add();
	activeDocument.paste();
	activeDocument.activeLayer.transparentPixelsLocked = true;
	activeDocument.activeLayer.applyGaussianBlur(1);
	activeDocument.layers[1].visible = false;
	app.purge(PurgeTarget.CLIPBOARDCACHE);

	for(b=1; b<=a; b++)
	{
		for(i=0; i<8; i++)
		{
			activeDocument.activeLayer.duplicate();
		}
		activeDocument.artLayers[1].translate(0,1);
		activeDocument.artLayers[2].translate(0,-1);
		activeDocument.artLayers[3].translate(-1,0);
		activeDocument.artLayers[4].translate(1,0);
		activeDocument.artLayers[5].translate(-1,-1);
		activeDocument.artLayers[6].translate(1,1);
		activeDocument.artLayers[7].translate(-1,1);
		activeDocument.artLayers[8].translate(1,-1);
		activeDocument.mergeVisibleLayers();
	}
	activeDocument.layers[1].visible = true;
}
else
{
	alert("1以上の数を入れてください。");
}

コメントする

post date*

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トラックバックする

トラックバック用URL:

アニメーションが親切に解説されております

レンダリング、ライティングの基本が分かります

図版が見やすい美術解剖書です