フォトショップスクリプト5 - レイヤーのコピーペースト

フォトショップのスクリプトを作りました。

レイヤーのコピーペースト

 

用途は、テクスチャにライトマップと呼ばれるものを適用する時に使うと少し便利かと思います。

Cドライブ直下にAというフォルダとBというフォルダがあるとします。

Bの中にはpsdというフォルダがあります。

 

XSIでは、Aを「Render_Pictures」、Bを「Pictures」と仮定すると分かりやすいかと思われます。

Mayaでは、Aを「renderData」、Bを「sourceimages」と仮定します。

スクリプト内のファイルパスを書き換えて使ってください。

フォトショップスクリプトでのファイルパスはちょっと書き方が違うので注意してください。

 

レンダリングされたデータが入ったフォルダからイメージを読み込み

テクスチャデータが入ったフォルダ内の「psd」フォルダの中のデータにコピーペーストで

貼り付けることをします。

 

ライトマップを作るときに何度も調整しながら適用するのがめんどくさいなぁ、などと

考えて作りました。

ただ、自分が使うことだけ想定しているので、かなりいい加減です。

両方のフォルダのファイルを順次読み込むのですが、読み込む順番を決めていないので、

ファイル順に読み込まれファイル順に適用されます。

なので、読み込みたいファイルと適用したいファイルが符合するようファイルネームに気をつける必要があります。

ファイルネームの最後に01などと番号を振れば解決できます。

 

それと、Aのフォルダのファイル数繰り返されるのでBのファイルも同じ分だけあるほうが良いです。

psdフォルダに他のテクスチャが混ざっている場合は他にフォルダを作って、ライトマップ用とするのが良いかと思います。

 

本当はもっと色々な状況で使えるようにしなければならないところですが、

知識がないので、ここまでです。

 

色々と調べてみたのですがレイヤーを複製するときに他のファイルに複製する、

という方法が見つかりませんでした。

仕方がないので、コピーペーストを使っております。

クリップボードを経由するので、非常に非効率的です。

一応最後にクリップボードを初期化するコマンドを追加しておきました。

 

昔いやな思いをしたので、フォトショップでクリップボードを経由する事が嫌いです。

スクリプトであればそれはないだろう。と思っていたのですが、自分の知識では無理でした。

その点はアクションの方が良いのですが、環境が変わってしまうと使えなくなってしまうので

スクリプトにしてみました。

ソースを載せておきます。

var dirA = new Folder("/c/A/");
var dirB = new Folder("/c/B/psd/");
var filesA = dirA.getFiles();
var filesB = dirB.getFiles();
var filecntA = filesA.length;


upString = new File( upString );
for(i=0; i<filecntA; i++){
	var docA=app.open(filesA[i]);
	docA.selection.selectAll();
	docA.selection.copy();
	docA.close(SaveOptions.DONOTSAVECHANGES);
	var docB=app.open(filesB[i]);
	docB.selection.selectAll();
	docB.paste();
	docB.save();
	
	var upString = new String( app.activeDocument.path );
	upString = upString.substring( 0, upString.lastIndexOf("/") );
	upString = upString.concat( "/" + app.activeDocument.name );
	upString = new File( upString );
	targaSaveOptions = new TargaSaveOptions();
	targaSaveOptions.alphaChannels = true;
	targaSaveOptions.resolution = TargaBitsPerPixels.TWENTYFOUR;
	if(activeDocument.channels.length >= 4)
	{
		targaSaveOptions.resolution = TargaBitsPerPixels.THIRTYTWO;
		for(a=activeDocument.channels.length-1;a>=4;a--)
			activeDocument.channels[a].remove();
	}
	targaSaveOptions.rleCompression = false;

	docB.saveAs( upString, targaSaveOptions, true, Extension.LOWERCASE );
	docB.close(SaveOptions.DONOTSAVECHANGES);
}
app.purge(PurgeTarget.CLIPBOARDCACHE);

では、今回はこの辺で。

フレッシュプリキュア - 04

image563l

何とかUVを展開し一枚にまとめました。

果たしてこのまとめ方が良いのかはテクスチャを描いてみない事には分かりません。

一応注意しながら展開しましたが、実際にやってみないとなんとも、です。

 

テクスチャで黒い線を表現する部分が増えるのでそこがネックです。

modoとフォトショップを併用してテクスチャを書いてゆく予定です。

本当はどちらかひとつでやりたいところですが、まだそこまでは至りません。

 

ツールを併用する、ということで思い出しましたが、先日紹介したzBrushですが、

一番困る点はビューの操作が他のツールと違いすぎる、という点が個人的には一番ネックです。

自分はmodo、XSI、Mayaと使いますが、ビューの操作に関してはMayaベースです。

XSIでは、「s」キーでMayaの「Alt」キーの操作をしますが、この程度はたまに間違えますが問題ありません。

ただ、Mayaでは「s」キーにデフォルトでアニメーションキーの追加が設定されているので、間違えたときのために解除しておく必要があります。

 

そういった足元ともいえる部分が違うとツールの併用は大変困ります。

意識して使っている部分ではないので、何度も間違えます。

フォトショップですら間違えます。

ビューの操作、選択の柔軟さがツールの一番の肝だと思っております。

操作性が悪いのではなく、違いすぎる、というのも問題です。

 

話が飛びました。

 

もう一ヶ月くらいなので今後骨入れ、リギング、モーション作成、背景作成をしてゆく予定です。

余裕があればもう一体。といったところでしょうか。2体は作りたいところですが、、

 

では、今回はこの辺で。

フレッシュプリキュア - 03

image562l

UV展開です。

恐ろしく地味です。modoのUV展開は他ツールに比べ圧倒的に楽ではあるのですが、

ゲーム的なUV展開というものはそういった便利ツールでも中々カバーできないものがあります。

結局地道に進むしかありません。

 

モデルで色々作りましたがテクスチャでやることにしました。

そういえば変身するときに使う道具を作るのを忘れていました。

まだ作っていません。

 

話は変わってZBrush3.5r3が出るそうですね。

ZBrushはずいぶん前からアップグレード無料を謳っています。

一体どういった経営体制をとっているのか不思議になります。

円高の影響もありPixologicで直接買うと5万円くらいで買うことができます。

日本の代理店を通すと9万円くらいになります。

どういったことなのでしょうか?

modoは日本の代理店を通しても1万円くらいしか変わらない上、

ローカライズも行われています。

 

不当にぼったくっている、としか思えませんが、いかがなものなのでしょうか?

ZBrushもここまで進化を遂げこの価格となるとその他のスカルプトツール、

Modboxや3Dcoatとかなりの差を付けるのでしょうか?

 

うーん、気持ちが揺れ動きます。

モニタの3D化がかなりのペースで進んでいるようです。

それとツールの融合が近い将来来るのではないでしょうか?

次はデバイスの3D化でしょうか?やはりグローブでしょうか?

近未来です。

 

行く末を傍観するしかありません。

 

では、今回はこの辺で。

modoでのノーマルマップ作成 - ノーマルマップへの転写

一時的ですが、ページの読み込みに時間がかかるようになってしまい申し訳ございませんでした。

わけを説明します、

 

最初に投稿した画像のサムネイル表示ができなくなったのがきっかけです。

フルサイズの画像の表示しかできなくなり、原因はphpのグラフィックライブラリだ、

というところまで分かりました。

しかし、レンタルサーバのため、スーパーユーザーでログインできるはずも無く、

できることをやってみようと、wordpressをアップグレードしてみました。

現在のバージョンは2.8.6です。

 

そのとたんにページの読み込みが遅くなってしまいました。

どっかに何かがキャッシュされるのか?と思い。しばらく放置しておけば直るだろう。

と高をくくっていました。

一向に直る気配も無く、あせり始めました。

 

ようやく表示できるページのソースを見ると、とてつもない数の投稿が表示されているのに

気がつき、そういえばプラグインで表示件数を操作していることを思い出しました。

 

そのプラグインはどうやら違うところにコンフィグが書かれているようで、

前の設定が消えているようでした。

 

それを再度設定することでページの読み込みが元のとおりに戻りました。

こういったことがありそうなので、プラグインは最小限度に抑えていたのですがやはりなりますね、、

 

以前htmlのことを少し書いたときに記述の固定化が激しく文化的なものが消去されてゆく。

と書きましたが、こういったことがあるからそうなるのだと思います。

好きなところに書かせろ、と言ったり、ちゃんとしたところに書け、と言ったり、要するにわがままです。

ユーザーフレンドリーとは誰とフレンドリーにするべきか考えされられました。

 

さて、くだらない話はさておき、本題に入ります。

あっと、その前になぜだか原因は不明ですがサムネイルが作成できるようになっていました。

レンタルサーバ側で何かしていたのでしょうか?こちらには知るすべもありません。

とりあえず再開できるのでほっとしております。

 

image555l

これは画像インクにブラシで使った画像を適用した様子です。

エンボスで行うよりも的確に画像を並べることができます。目分量であることには変わりませんが。

image556l

一応こんな使い方もできます。

ディフーズカラーのマップを作成し、バンプと一緒に選択をして、

ペイントツールでペイントすると、バンプとカラーマップを同時に描けます。

しかし、バンプマップにもカラーがつけられてしまいます。

グレースケール化してしまえばいいのですが、どちらにせよあまり良い結果にはならないように思います。

このあたりはbodypaintに分があるのかと思います。

 

さて、ようやくノーマルマップへの転写です。

まずは新規イメージを作り、エフェクトを法線にします。

image557l

ブランク画像のイメージがノーマルマップとして適用されたため、シェーディングが崩れます。

image041s

画像を右クリックして、出てくるメニューの一番下、「オブジェクトからテクスチャへベイク」を選びます。

出てくるダイアログに適当な数値を入力します。ここでは「50cm」としました。

ものの大きさによって違うので決まった数値ではありません。

image558l

これでマニュアルで説明されているところは終了なのですが、作ったバンプマップと大きく違います。

もともとマニュアルではバンプをノーマルに、などとは書いてないと思いますし。

何が違うかと言うと、凹凸具合が違います。

image559l

こちらがバンプマップです。

これに近いようにするにはバンプマップの「不透明度」「10%」「15%」の間でベイクすると

良い結果が出ます。

image560l

これが「15%」でベイクした画像です。

 

先日この手法を使うことがあり、以前遊びでこの方法を見つけたのでそれの値を書いておきたかっただけです。

実際の仕事では結局使いませんでしたが、、

やはりハイモデルからベイクしたノーマルは凹凸がうそで無いのでしっかりしています。

しかし色々な問題があるのと、そもそもどういったものがノーマルマップに向いているか、

というところから考えてデザインをする必要があることを痛感しました。

ノーマルマップはすごい技術だと思いますが、なんだかなぁ、という思いは消えません。

 

しかし改めてmodoのモデリングに慣れてしまうと他のツールでモデリングするのは苦痛以外の何者でもありません。

modoにももちろん欠点はありますが、やはり使い勝手は随一です。

 

image561l

プリキュアの進捗です。一応モデリングは終了です。

30594ポリゴンになりました。それなりに行きました。

さて、どういった表現にしようか。作ってから考えます。どうしよう。

コミケ77

 

gikenコミケ77のサークルカットです。

よろしくお願いいたします。

 

ノーマルマップの記事を書こうとしたのですが、サムネイルでの投稿ができなくなってしまいました。

phpのグラフィックライブラリが原因のものだそうですが、レンタルサーバなので、自分で入れることができません。

どうしよう、、

うーん、困った。

フレッシュプリキュア - 02

image552l

プリキュアの進捗です。

小さいフィギュアだけでは細部が分かりません。

CGWORLD2009年7月号にアニメのエンディングで作成された3Dモデルの話があったので、

それを買ってみながら作っております。

記事が少なく写真が小さいのですが、無いよりはましです。

 

アウトラインは犬神というゲームで使われた手法を使ってみました。

ずいぶん前に裏技的な感じで評判になった手法です。

オブジェクトを複製し、法線を裏返して、法線方向に拡大させます。

 

ちなみに使っている画像は、目以外はべた塗りです。

image553l

どういった表現にしてゆくかまだ考えていません。

リアルタイムでの表現なので、ある程度影を描きこんだ方が良いのだろうとは思っております。

トゥーンシェードは作るのが大変な上にリアルタイムではあまり良いものが作れないかと思います。

 

髪の毛はまだサブディビジョンサーフェイスです。

image554l

細かい調整は全然できていません。

ポリゴン数が5万近くあります。

アウトライン用のポリゴンを含めると10万近くになってしまいます。

すでにリアルタイム用としては問題ありですね。

スカートのひらひら部分をモデリングしたのが原因かと思います。

これも手法が決まっていないのでこうなりました。

 

まぁ、一体だけ表示するのであれば問題ないかな?と思っております。

モデル的にはリアルタイム用なのかプリレンダリング用なのか、中途半端なものです。

 

色々と手法が決まっていない中、制作を進めていたので中々進みませんでしたが

気持ちを割り切ってしまい作っております。モデル的にはあと少し、かと思います。

 

できればもう一体作りたいのですが、仕事が忙しくなってきそうなので

作れないかもしれません。

なのでまだパッケージ内容が決まっていません。

 

リグもまだ途中で放棄したままです。

うーん、まずいなぁ。

 

では、今回はこの辺で。

modoでのノーマルマップ作成 - ジオメトリブラシのススメ

前回に引き続きmodoでノーマルマップを作ってゆきます。

 

modoにはジオメトリブラシ、というものがあります。

これはオブジェクトをマップに転写して保持する。というものです。

ベクターディスプレイスメントマップとして使うと、ポリゴンで耳をモデリングしてそれをマップに転写して

スタンプするようにスカルプトすることができるものです。

ベクターディスプレイスメントでうまくいったのは自分は一度しかありませんでした。

おそらくマニュアルを読まずにやって間違えたのだと思います。

 

これを書きながら再度挑戦してみましたが、やはりだめでした。

まぁ、それはさておき。

 

今回はそれを高さ情報のみのデータとして取得します。

単線的な情報、という表現で良いのか分かりませんが、スカラーといいます。

通常のバンプマップでは0から255までの諧調で凹凸を表現します。

modoでは96bit画像が扱えるので、32768諧調の凹凸を表現できます。

 

ノーマルマップは3つのチャンネルを使うのでベクトル、といって良いのでしょうか?

ベクターディスプレイスメントとは96bitで表現されるノーマルマップ、と考えて良いかと思います。

個人的な解釈ですが。

 

カラー(ベクトル)をスカラーに変換することは理解できるのですが、スカラーをカラーに変換することはできるのでしょうか?

mentalmillのノードにはそのようなノードが存在しますが、どういったときに使うのか自分は分かりません。

 

modoを使って色々と試しているのですが、ハイモデルをローモデルにベイクする際に必ずUVの切れ目で

エッジが立ってしまいます。

それを回避できないものかとバンプマップやディスプレイスメントマップに転写を試みているのですが、

違う問題が発生してしまいうまく行きません。

良い具合に行き来ができると表現の幅が広がりそうな気がするのですが、如何ともしがたいです。

 

個人的にノーマルマップというものはあまり好きではありません。

どうしてもラップが張り付いているような質感になってしまい、UVの切れ目問題も自分は解決できていません。

まだまだ謎が多いです。

 

ようやく本題です。

 

まずはmodoで形状を作成します。

image539l

「Ctrl」を押しながらデフォルトのキューブを作成します。

image540l

底辺をポリゴン選択し、「Delete」で削除します。

image541l

上面をポリゴン選択し、「w」の移動ツールでY軸に少し下げます。

image542l

そのまま「r」でスケールツールにし、X軸とZ軸を少し縮めます。

image543l

エッジ選択にし、底辺のエッジをダブルクリックでループ選択します。

image544l

上図は工程を二つ行いましたが、「z」でエッジ拡張を実行し、そのままスケールツールに変更して

X軸とZ軸を広げます。

image545l

ポリゴン選択にします。選択を解除していなければ上面が選択されています。上面が選択されている状態で、

「b」でベベルツールを起動し、内側に少し縮めます。

image546l

そのまま「Shift」を押しながらクリックし、再度ベベルツールを適用します。

中に少し引っ込めて、少し縮めます。

image547l

エッジ選択にし、マウスの中ボタンで図形全体を囲い、全てのエッジを選択します。

image548l

「b」でベベルツールを起動し、エッジに丸みを与えます。

この時「丸めレベル」を1か2にしてください。図では2に設定しております。

image040s

「ペイント」タブに移行し、「ユーティリティ」「ジオメトリをブラシへ」を押します。

モード、高さフィード

ブラシ解像度、512×512

投影軸、Y

反復回数、1000

で「OK」を押します。

ブラシが作成され、どこに保存するか聞いてきます。

適当なところに保存します。

image549l

前回のシーンを読み込みました。

「スカルプトツール」「エンボス」を選びます。

星アイコンのプリセットブラシを選択し、プリセットから先ほど作ったブラシを読み込みます。

モードは標準です。

image550l

マウスを右にドラッグすると出っ張り、左にドラッグすると引っ込みます。

 

今回の手順でのポイントはブラシの元形状を作るときにエッジの拡張を行ったことです。

この手順を踏むことで、やわらかいエッジのブラシが作成できます。

もっと複雑な形状を作ってブラシにしたり、出っ張らせておいて中を引っ込める、ということもできます。

image551l

「押し出し」「オフセットモード」「絶対」「密度モード」「最大マップ」にすると図のようなものも描けます。

「オフセット距離」を変更するとまた可能性が広がります。

中々遊べます。

パスに沿ってペイントや、水平垂直にペイント、などがあれば完璧です。

 

次はこのマップをノーマルマップに転写する工程を行います。

今回はこの辺で。

modoでのノーマルマップ作成 - バンプマップのススメ

突然ではありますが、必要に駆られてノーマルマップを作成しております。

ハイモデルを作ってからローモデルに転写、という形が一般的かとは思いますが、

どうもローモデルがあまりにも少ないポリゴン数の場合あまり好ましい結果になってくれません。

しかもUVの切れ目で大きく形が変わります。ペイントで直せないことは無いのですが、

実作業としては不可能に近いかと思います。

 

そこで、modoではバンプマップが描けることから、バンプマップをノーマルマップに焼きこんだほうが

手っ取り早いのではないか?とハイモデルを散々作った挙句にやってみましたので、

備忘録的に記事にします。

 

image536l

まずはデフォルトのシリンダーを作成し、マテリアルをアサインします。

ディフーズを少し下げ、スペキュラーを少しあげます。

スペキュラーラフネスを上げて、凹凸が見やすいようにしておきます。

image039s

新規画像を作成します。

この時「OpenEXR」形式で保存をします。96bit画像を使うことでより広範囲のバンプマップを作成できます。

これはmodoの強みかと思います。

解像度はそのまま、浮動小数点のチェックと、カラーの設定にチェックを入れ、

値をすべて0.5にします。「Shift」キーを押しながらドラッグすればすべての値を同時に変更できます。

追加した画像のエフェクトを「バンプ」に変更することを忘れないようにしましょう。

image537l

その状態でスカルプトすると図のようになります。

image538l

プロシージャルブラシを使うと図のようになります。

 

しかしWindows7ではvistaからペンタブレットにアクセスするツールがシステムに入っているようで

ペンから右クリックを行うと変なアイコンが表示されます。その際に若干遅延が生じるのでうっとうしいです。

切ってしまうとペンからの右クリック自体の機能も切れてしまいます。

これはまずいのではないでしょうか?

 

次はジオメトリブラシを記事にします。

では、今回はこの辺で。

フレッシュプリキュア - 01

image535l

コミケ、受かったそうです。

先日研究員Mから連絡をもらい、びっくりしてしました。

 

一応それが目的でこのモデリングをしております。

前回あまりにも場違いな感じで、なんだか申し訳なかったので少しでもそれらしいものを、

と作り始めました。

これを選んだのは、単純に子供がおもちゃを持っていたから、というだけです。

それ以外にもうひとつ同時進行させているものがあるのですが、そっちのほうはほとんど進んでいません。

かなりまずい状態です。

 

仕事が暇になったら会社でもできるかな?と高をくくっていたのが敗因です。

まだ終わったわけではありませんが、、

こちらはできるにしてももうひとつは今後の仕事次第、ということには変わらないかと思います。

お金を出していただく以上いい加減なものにはしないつもりです。たぶん、、

 

ページで記事を書きながら進行する予定でしたが、合否が中々分からなかったので

突然の発表です。冬のコミケは色々と厳しい、と聞いてはいたのですが合否の発表までこんなに遅いとは、

ちょっと計算が狂いました。

 

なんだか言い訳だらけですが、現在の進捗です。

 

アニメといえば、最近子供と見ることがありますが、

民法よりもNHKのアニメのほうがクオリティが高いように感じます。

大人目線で見ると日本のアニメというものは、はしょり技術の集大成、のように見えます。

良く言われる手塚治さんがアニメの仕事を安く請けたから、現在もアニメの仕事は厳しい環境だ、といわれます。

それも原因の一端かと思いますが、日本人の気質にあった形の進化だったのだろう、などとも思います。

 

できるだけ動かさずに動いているように見せる。

これは作り手が人間はどのようにして動いているものを認識しているか、ということがとても良く考えられている。ということです。

ただ、日本特有の言わなくても分かること、という説明が必要だとは思いますが、

近年外国でもジャパニメーションとして日本のアニメは大きな評価を得ています。

それを考えると、その言わなくても良い事。というのはある程度の普遍性を持っているのだと思います。

 

話が飛びましたが、今後は記事を書きながらこれを進めてゆきたいと思います。

その前にmentalmillの記事を終了させないといけませんね。

 

では、今回はこの辺で。

コミケ77、受かりました

ご無沙汰しております。プログラム担当の研究員Mです。

前回のコミックマーケット76で味を占め、
今回も調子に乗って申し込んだところ、めでたく受かりました!
2日目の12月30日(水)、東V-02aです。

今回は前回の物のバージョンアップ版がメインになるかと思います。
詳しい内容などは随時情報を追加していく予定です。

最近仕事が忙しくて技研のほうが大分ほったらかしだったのですが、
やっと落ち着いてきましたのでこれから1ヶ月半でどこまでやれるか勝負です。
どうなるやら見守っていただければ幸いです。

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

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

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