続Latticeとその他

引き続き、Latticeを使った変形やその他の修正をしました。
ポージング後の簡単な修正も瞬間的にできるので便利ですね。

Lattice前Lattice後

ちょっと曲がったように見える二の腕を修正してみました(ついでに肉付けも)
あとはクロスシミュレーションで服の加工がされています。耳は前回やったエルフ耳を継続してますが

眉毛

後は眉毛もパーティクルで作ってみました。やり慣れてないので、かなり苦戦してますが、髪の毛なんかも出来るようになったら面白いんだろうな~と思います。

最近見つけたのですが、artistsideで投稿されているyoshikaさんやねこさんがブログを初められたようですね。
おふたりとも好きな作風の方なので、今後も定期的に見てみたいと思います
スポンサーサイト

ラティス(Lattice)変形

ラティス変形って言うのがあったのですが、あまり使ったことがないので色々と勉強して使ってみました。
なるほど、元の形を壊さずに格子状のオブジェクトをいじると簡単にこれまでのモデルが変形出来るという機能なんですね。

255.png
そんな訳で、こんな使い方をしてみたわけですが、色んな所に使いみちがありそうですね。
例えば、ボーンの動きだけでは制御しきれない筋肉の付き方等、後から変更したいけど、モデルを変えてしまうと後々大事になるなど、元の形を変えたくない時に使ってみると良いと思いました。

後は、この機能ON/OFFができるので、画像のようなエルフの耳にしたり、元に耳に戻したりと、簡単にON/OFFが可能なわけです。ついでに言うといわゆる「モーフ」はこれを使ってやれるんでしょうね。
シェイプキーというのを登録すれば出来るわけなので。

あと、背景ですが、これはプロシージャルテクスチャ…いわゆる初めから用意されているノイズ等のテクスチャを利用して、数値を変更して雲や星のような物を作ってみた感じです。元は青空の背景なのですが、色味を変更すれば夜空としてもそれなりに使えそうな気がしますね。

そう言えばShadeですがアップデートするようですね。残念ながら機能については今ひとつな状態なので買うことはやめましたが、それより何より、今後キャラクター物の機能強化はあまりしないということでそうなるともう使わなくなりそうな気がしてきます。プロダクトデザインへと方向性をシフトしたそうですね。

まつ毛

ぽんこつさんのブログでまつ毛の作り方(パーティクル)というのをご紹介いただけましたので、私も作成方法を見ながら挑戦してみました

例ではスザンヌ(Blenderの内部モデル)を使ってのものなので、自分のモデルでやる場合は数値を変更する必要がありますが、手順はこの通りでやってみると間違いないと思います。

…で、私はパーティクルというモノをあまり触ったことが無く、Blenderの操作紹介しているWEBサイトも見ながら制作してみてます。
ぽんこつさんのブログでも注意書きがありますが、モディファイアの順番が違うと「あれ」と言う事になるので注意が必要です。

作成手順は割愛しますが、だいたいこんな感じかな?と言うところでレンダリングしてみました。

パーティクルのまつ毛パーティクルの通常の顔パーティクルのまつ毛の閉じパーティクルの閉じた顔

ちなみに板ポリゴンですと
板ポリのまつ毛板ポリゴンの通常の顔板ポリのまつ毛の閉じ板ポリゴンの閉じた顔

もちろん板ポリゴンとパーティクルは似せて作っていますが、全く同じというわけにはいきません。
雰囲気だけでも…と言う具合でしょうか。

パーティクルの良い所は100%まぶたの動きに連動して動いてくれる事やまつ毛の本数等も自在に変更出来るという点だと思います。今のところアイラインに相当する箇所が無いため、毛と毛の間に隙間が生じているように見えるので、ここは顔のテクスチャで補正出来ると思います。(まつ毛の板ポリゴンではアイラインも一緒に描かれています)

ここで気になったのが年齢の確認なので、ちょっと調べてみました。

パーティクル顔パーティクルの場合板ポリ顔板ポリゴンの場合

やはりと言うか、この顔年齢の解析は目元を特に見ているんだなぁと感じました。
まつ毛と言うパーツでこれほど大きく変化するというのも興味深いところです。

…さて、次は眉毛をどうするか?やっちゃうか?
ようやくパーティクルヘアの使い方がちょっと分かった気がします。
この場を借りて、ぽんこつ先生ありがとうございました




Pythonの初歩(覚え書き)

これまで意識的に素通りしていたPythonですが、とうとうやらねばならぬ状況になったので、やることにしました。
と言ってもすごく簡単な内容なんですけど、Shadeでは簡単に出来ていた名前の置換えって奴です。

Blenderはとても良く出来たソフトだと思うのですが、Outliner(Shadeではブラウザに該当します)と言うのが便利なところもあれば不便なところもある状態です。無いところはこれまでアドオンを探したり、スクリプトを探したりしてましたが、どうにも名前の置換え(rename replace)と言うようなのがありません。

検索していった所、これくらいならばスクリプトを作れば簡単でっせと言うような事なので、簡単ならばやってみるか~と言う軽い気持ちで挑戦しました。

Blenderでこれまで全く必要のなかったテキストエディタを開いて、お決まり構文を作ることにしました。まず「import bpy」というのが必ず必要なので、これを打ち込みます。所詮、スクリプト初心者です。これが一体何を意味しているか?知る由もないまま、次に向かいます(すごい適当…)

さて、次から置き換えする対象物が何なのか?と言うことになります。メッシュだったりボーンだったりしますが、オブジェクトモードで変更したいのか、エディットモードで変更したいのか?ということでも文章が違うようです。

とりあえず参考にしたスクリプト文がオブジェクトモードでやりましょうとの事だったので、オブジェクトモードでボーンの名前を変更します、と言うことで進めます。
さらにやりたい内容の詳細ですが「a001」「a002」みたいな名前のボーンの頭文字の「a」を「s」に変更するとします。

まず、オブジェクトモードでボーンの名前を変更したいということで…
「for x in bpy.context.object.data.bones:」を打ち込みます。

続いて「a」を「s」に置換えます。と言うことで…
「 if x.name[0] == 'a':
x.name = 's' + x.name[1:]」

となります。これが正解なのですが、もちろんずぶの素人にいきなり正解は導けるわけもなく、この答えを出すまでに少々苦悩します

まず「x」は数式でよくある代入するための仮の記号と言うことです。「もし「x」が’a’と言う値だったら~」というのが初めの文章で、次は「’s’にしなさい、ただし、初めから1文字以降は同じ文字にしなさい」(で良いのかな)と言う事になるようです。

何に悩んだか?と言うと「[0][1:]」と言ったように、どの文字を残す、残さない、のやり方に迷いました

文字を置換えたいわけだから、初めの文字を交換すれば良いんだよなぁ。だったら両方共頭文字を意味する[0]で良いんじゃないか?と思ってたのですが、これだと文字を置き換えるのではなく、文字を追加すると言う結果になりました。
<ちなみに、x.name = 's' + x.name[0:]が初めに思いついた文章です>

あれ~?何がいけないの?なんで追加しちゃうの?と思って、よくよく考えてみたら文字を置き換えると言うことは、文字を入れ替えると言う事になるので、置き換えたい文字は追加で良いのですが、置換えられる文字は削除の対象にならないといけませんよ~と言う事に気がつきました。

この[0]や[1:]についてですが、簡単に解説しますと数字は文字数を示しています。「:」は残したい文字と言う事になりますが、これが[1:]だったり[:1]だったりした場合は意味が異なります。これは検索でもよく使う[*(アスタリスク)]の考え方と同じと思っていただければわかりやすいと思います。

例えばExplorer検索で「*test.*」等と打ち込んで検索した場合、頭文字は何の文字か分からないけど、名前に「test」が入っているデータを探して欲しいというような使い方があると思います。そんなイメージと同じで、数字の後にある場合はその数字以降は同じ文字を使ってください、と言うようにプログラムしているようです。

つまり[1:]ならば、1文字目以降は同じ文字を残してくださいとなります。[:1]ならば、名前の最後の1文字より前の文字を残してくださいとなります。Blenderを使用されている方ならお分かりかと思いますが、[.L][.R]といったように、語尾に左(Left)右(Right)を意味するこれらの省略文字が入っていると、ミラーリングmodifierを使っても左右非対称な動きを可能にしてくれる名前になるので、この文字を入れ替えたい場合等は意識しないといけない事になります。

と言うことで頭文字を入れ替えるスクリプトは次のようになりました。

import bpy

for x in bpy.context.object.data.bones:
if x.name[0] == 'a':
x.name = 's' + x.name[1:]


※頭文字が[a]だったら[s]を入れなさい、ただし1文字目以降は同じ文字を使いなさい。と言うことで、文字を入れ替えるスクリプトは出来ましたちなみに、もし[1:]が[0:]だったらどうなるかというと、0文字目以降は同じ文字にしなさいとなるので、単純に頭文字が追加されるようになります。

大昔にパソコンを触った時に勉強したBASICで簡単な文字をプリントアウトしなさい、と言うのと同じようなレベルですがこうやってちょとずつプログラムを覚えていくんでしょうね~必要だったらですけど

境目…

境目を誤魔化すのって本当に難しいですね…人体なら髪の毛とか…
ということで今回は舞台作りしてました。

砂浜と岩の間…ここをどうしたらいいのかな?と思い、色々と考えて作ってみました。まずは不自然な状態ではこんな感じです。
不自然なbeach

CGはどうしてもなじませるのって手間がかかりますし、大変なのでレタッチで誤魔化すことってありますよね?
今回もそうせざるを得ないかなぁと思っていたのですが、実際の写真を見てみると結構こういった洞窟の内部手前には小さな岩がゴロゴロとしているのを見て「これはやって見る価値がありそう」と言うことで、小岩作戦をやってみようと思いました。

modifier.png

…さて、このおまんじゅうがレンダリングすると岩に化けるから驚きです
ディスプレイスメント×3でこの形ができているわけです。今回もプロシージャルテクスチャである「ボロノイ」「クラウド」「ノイズ」をそれぞれディスプレイスメントとして使用しています。Shadeでいうと「大理石」「雲」「スポット」みたいなものでしょうか。

制作過程は端折りますが、それぞれを数値で調整してこのおまんじゅうが上図のような形に変形し、さらに砂場も多少ディスプレすメイント+実際にモデルで境目を持ち上げたりして、それっぽくしてこのようになりました。

beach1.png

見比べていただけるとわかると思いますが、だいぶ凹凸が出てきたと思います。実際のモデルは結構のっぺりしていますが、ディスプレイスメントはこういう時に頼りになります

といったところで背景はそろそろ仕上げかな~と思います。…多分

人物のほうは「熱」の表現を入れられないかなぁと思って「汗」をかくような表現ってできないかな
と言うことでちょっと光沢を調整しながら挑戦してみました。
汗

いわゆるテカテカ状態です。今回はテクスチャを使用せずマテリアルのフレネルを調整してこのような光沢をだせるようにしてみました。「肌 フレネル」で検索すると色々と研究が進んでいるようで、実際に人の肌にも使えるみたいですね。通常だと正面から見ると光が反射しにくい様なイメージを逆手に取って今回は作っています。やってみて思いましたが、瞳の光沢もかなり強い反射を見せるようになるので、使い勝手は色々と考えられそうです。

汗バム表現

…ちょっとやり過ぎました
もう少し控え目にしつつ、検討したいと思います。
でもグラビア撮影ってほとんど汗をかく表現って無いですね。実際の撮影は直前までクーラーでガンガン冷やしているのかな?
日本と違ってカラッとした気候なのかなぁ…とか色々と思ってしまいます
プロフィール

喜多川春望

Author:喜多川春望
3DCG(Shade)や音楽(Cubase)を作っております。興味のある方はどうぞご覧ください。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
バナー付きリンク
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR