投稿

7月, 2017の投稿を表示しています

Call of Blender #1 「右クリック」

イメージ

漫画用アドオン群公開しました

Git Hub: fujiwara_toolbox なんとわたくしの自家製アドオン、全部公開です。 漫画とかNPRモデリングの機能満載の大変マッシヴなアドオンになってます。 ぶっちゃけ複数マシンでのアドオンの同期とかがめんどくさくてgithubを使い始めたので、俺が使っているそのままのものです。 そのままのものなので、パスとかがマシン依存のままになってたりする部分があるんですが、そのへんはおいおい修正していきます。 これは俺が何年もかけて作り上げているアドオンそのものなので、便利に思った方は支援してくださると嬉しいです。 → enty 仕事で使う人なんかは、支援してね♡ ドキュメントとかもおいおい書いていくつもりです。ではよろしく。

imageは利用前にsave()しろ!pythonコマンドからのベイクの仕方

imageの仕様的な ワンボタンでベイクとセットアップができる便利機能を作ってたんだけど、その際にimageの変な(?)仕様でつまづいた。 はじめこんな調子(ざっくり)のコードをかいたわけだけど、 img = bpy.data.images.new(filename,size,size,True) bpy.ops.object.bake_image() img.filepath = savepath img.save() これがまともに動かない!真っ黒な画像が出力されてしまう。 で、すったもんだほんとにいろいろ試して調べた結果、以下のようにすべきだとわかった img = bpy.data.images.new(filename,size,size,True) img.filepath = savepath img.save() bpy.ops.object.bake_image() img.save() bake前に一回保存!!! すると、まともに出力できる。どうもnew()したあとは初期化が済んでないんだかなんだか、まともにつかえない。一回save()するとまともに動くようになる。 今回は外部ファイルに保存するのが前提だったのでinternalでやる方法は調べてない。多分pack()すればいいんじゃないか?わかんないけど。 豆知識 imageにはimage.is_dirtyというフラグがあり、いろいろ操作して保存されていない状態だとTrueになる。まとめて保存とか書くときはこれを使うと便利。 pythonコマンドからのベイクの仕方 で、それだけで終わってもなんなのでpythonコマンドからのベイクの仕方について。 これもつまづきポイントがある。 APIリファレンスを見てみると、ベイクには bpy.ops.object.bake bpy.ops.object.bake_image の2つがある。 bake()にはなんか引数がいっぱいついており、bake_image()には引数が全くない。 なるほどスクリプトからはbake()を使えばいいんだな、と思う。 これが間違っている…。 bake()をするには、UI上で編集モードに入り、UV画像エディタで画像を選択

Hight(Bump) mapとNormal mapのバンプの違い

イメージ
左がHight map。右がNormal map。 テクスチャ設定で「ノーマル」にチェックを入れると、バンプ(浮き彫りみたいなこと)の設定ができる。んだけど、その時に指定するテクスチャの性質によって結果が全然ちげーじゃん!ていうのを発見した。 ・Hight map というのは単に陰影で浮き彫りの深さを描いたモノクロ画像である。。 こんなの。Normal mapより情報が単純なのでファイルサイズが軽い。 ・Normal map 法線=面の向きをRGB値で描いたカラー画像。 こんなの。大体Height mapの4倍とかそれ以上のファイルサイズになったりする。 で、これらのマップはSubstance Designerから出力したんだけどNormal mapの方が深さ情報が全然反映されてないのである!Normal mapいいとこなしじゃないか! ということで質感表現とかでマップ使う時はとりあえずHeight mapにしといた方が良さそう。

漫画用マテリアルノード

イメージ
今まではかなりフラットなシェーディングにしてたんだけど、ライティングによる感情表現を可能にすべき、とかようやくSubstance Designerに手を出したりだとか、そういったことで新しく漫画ノードを考えた。 とりあえず左から解説。 ・メインのマテリアル メッシュに割り当ててるマテリアル。「陰影なし」にチェック←大事 これで色を指定する。テクスチャとかもこいつに設定してオッケー。 ・陰影用マテリアル ディフューズを真っ白にするのだけポイント。 こいつを使って陰影をつける。メインマテリアルからノーマルを繋いであるので、メインマテリアル上でテクスチャとかで設定したノーマルを表現することができる。 ・RGBカーブ ミソ。漫画的シェーディングで重要なのは、ベタ・中間調・ハイライトの3つで構成されているということ。 のでこのような3パート構成に。 ベタ領域はきゅっとつぶして、しかし中間調までのグラデが潰れると光表現で不便なことがあるのでちょっとなめらかに。中間調は大体フラットになるように。ハイライトもわりときゅっとつぶしめだけど、ふんわりハイライトが必要なことがあるのでやはりあんまり潰さない感じで。 ・オーバーレイ 色的なキモ。影用マテリアルの出力にメインマテリアルのフラットな色をオーバーレイすることで中間調が任意の色味に変わってくれる。 この構造にしておけば色指定をメインマテリアル上で行うことができるので、いちいちノードを開き直す必要がなくて便利。 こんなかんじになる。 わかりやすいように色つけたけどカラーも結構いけそう。影色はいじったほうがいいけど…。 本当は視差マッピングとかをマテリアルノードでやろうとうんうんうなりまくってたんだけど、結局まともな資料にたどり着けなくて諦めて、しかしその試行錯誤のおかげでノードの理解が進んでこれができたのでよかった。