BLOG

久しぶりにブログを更新。というかあまり映像作品のネタバレとかを小出ししたりすると感動が薄れる気もするのであんまり関係ないものでちまちまやろうかと。また今回からYouTubeで完成動画を張り付けていこうと思う。アニメーションGIFだとどうしても画質が悪く、容量も重いからね。


さて今回はCDを表現するということで、まずはCDについて知らないといけない。

大きさは直径が8cmと12cmがあり、大抵は12cm。厚さは1.2㎜。

CDはポリカーボネートにアルミを蒸着して作られていて、ポリカーボネートにアルミが挟まれた状態になっており、ラベル側から0.1㎜の所にアルミが挟まれている。(DVDやBlu-Rayは挟まれている距離が違う)そのアルミは中心から外側へ渦上の溝が彫られている。この溝によって光が干渉して虹の縞が作られる。スペクトルやプリズムと呼ばれるものだ。ただこの溝は幅1㎜に対し、625もの溝が彫られているため、肉眼では見えないし、溝のくぼみは1um(0.001㎜)なので凸凹にすら見えない。

中心の穴の大きさは半径7.5㎜そこからポリカーボネートの余白が5㎜。記録媒体であるアルミが続いて4.6㎜。最後に外側のポリカーボネートの余白が0.15㎜。計6㎝。


さて、これをどうやって作るのかというと、はっきり言って現在の3Dソフトで完全に再現するのは不可能。なのである程度妥協して作らなければならない。動画ではおよそ150万ポリゴンでCDが作られているが、これでもかなり抑えている。例えるならゲームの主要キャラ1体が1万ポリゴンくらいで、このCD一つで150人分の容量がある。

そんな重い物はゲームでもアニメーションでも基本使い物にならないので普通の人ならCDのテクスチャを張って終わり。

つまり、今回のCDを作ることについては技術的な知識という点でしか機能しない。自己満足といってもいい。ただどこかで応用出来るかもしれないのでとりあえず書き記す。


作る上で重要なのがポリカーボネートとアルミを別々に作るという事だ。ポリカーボネートの中にアルミを入れるという表現で容量を削減する。

まずモデラーを起動して作成タブからプリミティブのボックスを選んでNを押して値を入れる。今回はサイズが決まっているのでそのまま入れる。まずはポリカーボネートから作っていく。

幅=47.1㎜(穴の直径15㎜×3.14)

高さ=1.2㎜ 

奥行き=52.5㎜

中心 X=23.55㎜(幅の半分)

   Y=0

   Z=33.75㎜(奥行きの半分+穴の半径)

分割 X=192

   Y=1

   Z=1

作成後、ポリゴンでX軸の面を選択し削除。

アクションの中心がマウスであることと対象にチェックが無いことを確認した後、変形タブの回転、曲げるを選んで右面でz座標0.75㎜から内側に水平方向へ曲げる。

一度Zで戻り、そのままNでパネルを開いて角度の値を360にして適応を押す。綺麗なディスク状になったらMを押してポイントの結合を自動OKで繋いでおこう。

ポリゴンで全てを選択してQで名前をPolycarbonateにしておく。

色質感編集でPolycarbonateのマテリアルをスタンダードにして透明度を80%、屈折度を1.59にする。スムージングも入れておこう。


レイヤー2に移ってアルミを作るが注意点が2つ。CDの記録媒体は渦上で作られているが目に見えないレベルなのでここでは円とする。それと本来の窪みは1um、厚さは0.1um程であるが、溝を少なくする代わりに窪みを10um、厚さを2umにしておく。厚さを0.1umにすると厚さを認識しなくなり裏が表示されなくなるようなので無理に薄くしないほうがいい。

先程のポリカーボネートと同じようにボックスを選んでNで値を入力する

幅=62.8㎜(2㎜×3.14)

高さ=2um  

奥行き=0.5㎜

中心 X=31.4㎜(幅の半分)

   Y=-499um

   Z=10.25㎜(奥行きの半分+穴の半径)

分割 X=96

   Y=1

   Z=40

まずZ軸方向の面を消去する。右面からポリゴンで端を囲って消すといいだろう。

/で選択を解除し、右クリック長押しで全てを囲んで選択する。右面でctrlを押しながら交互に選択を外していくようにする。そしてEを押し、Tを押してNで値を入力する。ここではYを10umとする。

/で選択を解除して次はマルチ加工タブの複製で長さを足す。4.6㎜の長さにしたいので複製数を91にして、Zを500umにし、OKを押す。

複製が終わったら消したZ軸の面を張り直す。一つ一つ面を作ってもいいが面倒なので構造タブの複合その他のブリッジで作る。ただこの大きさでは何故か不具合が出て上手く面が張れないので変形タブの変換の中の拡大縮小を押してNで値を変更する。スケールを1000%にして大きさを10倍にする。10倍にしたら下の図のようにエッジで端を選択してブリッジを押すと端の面が全て作られる。

出来たらもう一度拡大縮小をし、今度はスケールを10%にして元の大きさに戻しておく。

この後はポリカーボネートと同じようにX軸の面を消して、曲げるで円形になるようにして、最後にMでポイントを自動結合。仕上げにQで名前をAluminumに変更する。色質感編集でAluminumを選択してスタンダードにし、反射光を10%、鏡面反射率を80%にする。スムージングはどちらでもいい。


これで下準備は終わり。別名で保存して名前をCDなど分かりやすいのにしてレイアウトに送る。


Lightwave3Dではスペクトル波形を算出するライティングが存在しないので疑似的なライトを作らなければならない。(finalRender for 3ds Maxならこんな手間いらないが、個人では手が出ない)

ライトを選択してプロパティを押す。ライト種を球形にして画像を挿入する場所に下の絵を入れる。サイズは400㎜辺りでいいだろう。

後はライトを回転でP90°にして好きな所に配置し、VPRで確認してみよう。今回の動画ではライトを三つ配置して制作している。多分この設定では綺麗な色は出ないと思うので調整は各自で試してほしい。




今回は先月pixivから公開されたVRoidをLightwaveで使えるようにやり方を説明していこうと思う。

VRoidはまだベータ版で女性しか作れないが、いずれ男性も作れるようになるので期待度は高い。特にリアルではなくアニメ顔なのでラインレンダーで輪郭を強調することでセルアニメのような表現が良く映える。さらにエクスポート出来るので他の3Dソフトへ出力出来る点が素晴らしい。これでMakeHumanと合わせればリアルとアニメ調の2タイプの人型が簡単に作れるようになった。

また髪の毛はVRoidで作れるわけなのだがメッシュだとレイアウトの物理演算とあまり相性が良くないのでモデラーからFiber_FXで新たに作って合わせた。ただFiber_FXだとラインレンダーが反映されないので一長一短な感じではある。

比較的遠回りしながらLightwaveに移植するため少し手間がかかるが、モデリングが下手な人は一考の余地はあるはず。

まずはVRoidの最新版をダウンロードして適当にキャラメイクしていく。髪の毛は作っても作らなくてもよいが、エクスポートするときには消しておいた方が後が楽だろう。

好みのキャラが出来たらエクスポートでデータを保存するが名前は半角英語で。

拡張子が.vrmという見慣れないものでunityで使えるようだがLightwaveでは対応していないので、まずblenderでインポートしてから.obj変換してLightwaveに移す形になる。

しかし、blenderでも.vrmには対応していないので拡張子を.vrmから.glbにリネームする。

.glbとはglTF形式の拡張子でこの形式ならblenderでインポートすることができる。

リネームすると.vrm独自の情報が消えてしまうがこの際仕方ない。多分消えるのはポーズやモーフィングの類だろう。

blenderは初期状態で.glbをインポートすることが出来ないので、プラグインを入れてアドオン設定をしなければならない。v2.79推奨なので古い場合はアップデートしておこう。

ここからgltf-blender-importerをインストールして解凍した後blenderのプラグインファイルに移す。アドオンからglTF 2.0 importerをオンにして更新。

インポーターから読み込み出来るようになったと思うのでファイルを読み込む。

モデルに沢山の線が出ているが気にせず今は放っておく。ブレンダーですることは.objに変換することともう一つ、テクスチャの回収である。

1の所をクリックして3DビューからUV/画像エディターに変え、2の場所をクリックしてテクスチャを一つ選んで3の画像から別名で保存を選んで画像を回収していく。保存名は下の画像を参考にしてくれればいいと思う。重複しているのはクリップマップ用に加工したものなので2とか3が後ろに付いているのは気にしなくていい。

2の全てが別名保存出来たらエクスポートで.objを選んで保存する。

フォトショでクリップマップ用テクスチャのアルファを白で塗った画像を新たに作っておく。ハイライト等の元が白いテクスチャは黒く塗っておくといい。


Lightwaveのモデラーを開いてobjを読み込み、まずショートカットWを押して無駄なポイントである0ポリゴンを全て消す。次にUV毎にメッシュが切り離されているので腕や手首を結合させる(これをやっておかないとラインレンダーが綺麗に映らない)

色編集からテクスチャを貼っていく。UV設定はされているので回収したテクスチャを張っていけばいい。クリップマップもついでにやっておく。スカートであるbottomは両面設定にチェックを入れておく。

セットアップからFiberFXを選んでテクスチャはhairbackを選択し髪を生やし、Genoma2も同様に設定していく。作り方は前のブログから漁ってくれ。


レイアウトにオブジェクトを移してFiberFX設定を開く。

今回はアニメ調の設定のため、ジオメトリタグのファイバー幅を1mm、スタイリングタグから斜角を60%、房を30%、塊を100%にした。こうすることでボリュームを出しつつ綺麗なギザギザヘアーにすることが出来る。

あと重要なのはラインレンダーとサブリメイションセルシェーダーである。

ラインレンダーを適応するにはまずレンダータブのレンダープロパティからレンダータブのラインレンダーにチェックをいれる。

レイヤー1のオブジェクトを選んでプロパティからプリミティブタブの輪郭を選んでシルエットエッジと共有しないエッジを適応させていくのだが、そのまま使うと目の輪郭にも適応されてしまい、汚い表現になってしまう。

モデラーに戻って新しいウェイトマップを作って体全体を選択して100%でウェイトを付ける。その後、目と口の周りだけ選択してウェイトを0%にする。

レイアウトに戻り、シルエットエッジの上にあるノード編集にチェックを入れてからクリック。

Vertex Map内のウェイトマップを選んでそれをクリックして先程のウェイトマップを適応させて上の画像のように繋げる。次にTools内の色作成から色を作って繋げる。絵を描く人ならわかると思うが肌色の輪郭に黒を適応させてしまうと固い印象を与えてしまうので、肌に近い濃い色に変えて柔らかい印象にした方が女性キャラなら好ましいだろう。これでラインレンダーはOK。


サブリメイションセルシェーダーはアニメのように塗りつぶす表現が出来る機能で色編集から行うことが出来るが、その前に少しだけ髪を調整する。

髪の元となるオブジェクトを選んでプロパティのレンダリングタブからカメラ無効にチェックして、事故の影、影を落とす、影を受けるのチェックを外しておく。

色編集から髪のファイバーを選んでシェーディングモデルタブのシェーディングモデルをサブリメイションセルシェーダーに変えて下のオプションを押す。領域の色1234に好きな色を入れて下の%で調節する。色は1が濃く、4が薄くなるように設定すると綺麗にまとまりやすい。

同じように肌や服にセルシェーダーを適応させてあげれば問題は無い。

後は好きにポーズさせて不具合が無いか確認してレンダリングして完成。


大半はMakeHumanと同じような感覚でやっていければいいのだが、目が球ではないので、目の設定だけは少し面倒だった。なんなら目だけ球に変えてもよい。ただ驚く表現として瞳孔を小さくする表現を使いたい場合はモーフで目のメッシュを小さくすればいいだけなのでこの場合は簡単に設定することが出来るはず(今回モーフは設定していないので確認はしていない)

VRoidだけでもポーズをしながら目や口を動かせたりできるので簡単に済ませたいなら背景を緑や青に変えて切り取って加工するって手もあるが、やはりLightwaveの強みも存在する。特に先程のセルシェーダーのような他の3Dソフトにない表現をすることで同じモデルでも見え方がかなり変わってくる。


全ては制作者の好みではあるけれど、vtuverのような表現は簡単に作れはするがメリハリが無く作品としての価値は殆どないと思っている。映像だけでは映えないので深みのある味にするにはやはり技術を学ばなければならない。という訳で環境光やエフェクト、パーティクル、カメラワークといった部分をもう少し勉強して表現力を高めようと思う。

という事で次はそんな感じのを更新しようと思います。



今回は人の髪の毛をFiber_FXで表現するということだが、髪の毛ってどのくらい生えているのか?

wikiによれば人の髪の毛は大体7~14万本も生えているそうだ。当然それだけの髪を1本1本作るとなるとレンダリングはかなり重くなる。3Dが進んだ現在でもリアルな毛を表現する作品はそこまで多くはなく、ゲームではムービーぐらいにしか使われない。

今後CPUやGPUが高性能化してリアルレンダリングが進んでいったとしても、先に4kや8kの高画質化を優先していくのであればそれは平行性を保ち、需要はそこまで高くはならないと予想できる。

つまりゲーム用にモデリングする上では必要のない技術であると言えるが映像作品として使用するなら話は別だ。ナルニアのライオンやジャングルブックの獣達のように毛をFiber_FXで表現するのは非常に好ましくリアリティーを出すにはうってつけと言える。

ということで簡単な説明をしたので実際に手順を記しておこう。


まずはモデラーで適当に顔の大きさ位の球を作る。

軸はXでサイドと分割数を基準値の2倍の48と24にした。あとは半径100mmにして直径20cmの球を作る。

次に髪の生える場所をポリゴンで選択してショートカットqで名前を付ける。ここではhairとした。

セットアップタブからファイバーFXを選んで左下の方にある生成ボタンを上がhairであることを確認してから押すと生やしたい部分に髪が生成される。基本的にファイバータブだけで他の設定は触れなくてよい。ここではファイバー量を500、ファイバーの長さを80㎜とした。

本来ならファイバー量は髪の本数である10万程に設定するべきなのだがそれだとかなり処理が重くなるのでここでは控えめに値を取っておく。OKを押すとレイヤー2に髪が生成される。


レイアウトにオブジェクトを送りファイバーFXの設定を更に変更していく。

左にある編集のその他ウィンドウを開いてファイバーFXを選ぶ。

レイヤー2を選択して起動を押す。目のアイコンにチェックを入れファイバー量を200とする。要はモデラーで入れたファイバー量500本×200本で10万本ということである。なぜこんな面倒なことをするのかというと10万本を処理するのと500本一つ一つに199本が追従するのでは後者の処理速度が断然に早いからだ。しかしモデラーの時点で200以下にすると髪が不自然に見えたり、生えていない箇所が出来たりとするのでバランスが重要である。ガイド半径を50㎜としてファイバー種類をストローク。キャップ先を先端のキャップにする。ファイバーの幅は500umが基準値だがボリュームがかなり出るので250~400umで調節するといい。

設定が終わったらファイバーFXを一旦閉じてレイヤー2のモーションプロパティ(ショートカットm)を開いて親アイテムをレイヤー1にして追従するようにする。こうすればレイヤー1である顔を動かせば髪もキチンと動いてくれる。

次に物理演算を組み込んでいく。

FXツールタブからBulletのアイテムプロパティを選び編集ボタンのレイアウトから追加を押してレイヤー1とレイヤー2を追加する。

レイヤー1の種類をキネマティック。レイヤー2をデフォーミングにして物理演算を有効にチェックを入れて閉じる。

シークを0から120に移動させ物理演算を計算させて髪がキチンと重力によって落ちればOK。

最後にVPRでチェックしながら髪の色を変えたり艶を整えて完成。


YouTubeのD‐STOMEの公式動画で髪を作る動画があるのだが、それを参考にすると髪が不自然に揺れて使い物にならないので気を付けてほしい。そもそもLightwaveのバージョンが古いので参考にあまりならない。

今回は処理を軽くするための技術としてクリップマップを紹介する。

画像を見た限りでは殆ど前の物と変わってはいないが、Lightwaveではサーフェイスの透明度を使うと処理が非常に重くなってしまうので透明度を0%にしてクリップマップを適応させる。前と比べやすいのは髪の地肌が見えなくなって綺麗に見えている所だ。

ではクリップマップというのは具体的に何をしてくれるのかというと、透明度でアルファを処理した場合はそこに物質は残るが透明にして見えなくするだけなので計算に時間が掛かってしまっていた。その点クリップマップは白く塗りつぶしたテクスチャ部分を切り取ってから処理してくれるためレンダリングが簡単に済んでいるという訳だ。

という事はLightwaveでは極力透明度を使わずにやっておくことが生産性を求めるアニメーションにおいて最重要の一つと言える。

MakeHumanから引っ張ってきたモデルの中のテクスチャをPhotoshopで簡単に加工する。基本的には透明度で処理していた髪、眉毛、まつ毛、目の4つ。

加工したい画像をファイルから選んで

1、新規レイヤーを作る

2、作られたレイヤー1をレイヤー0の下に移す

3、パレットの色を白にする

4、レイヤー1を白く塗りつぶす

これだけで後はtargaで別名保存しておけばいい。別にフォトショでなくとも加工ソフトなら多分何でもいい。クリスタでも全然構わない。


ではレイアウトに移ってクリップマップを適応させる


色・質感編集を開いて髪、眉毛、まつ毛、目の透明度などの処理を切っておく(Ctrlを押しながら青く点滅しているTを押せば切ることが出来る)

透明度は0%にして色のテクスチャだけ反映されている状態にする。

スムージングの上にあるクリップマップのTを押してPhotoshopで加工した画像を新たに読み込んで設定する。


目だけは元が明るいせいか適応させるだけでは白目が黒くなってしまうので画像編集で明るさを下げることできちんと映るようになる。

後は好みに合わせてパラメータを設定すれば完成。個人的に目はハイライトを強くした方が見栄えが良いと思った。

人に適応させるだけでなく、木の葉っぱなどのテクスチャを切り取りたい部分があるものならクリップマップを有効活用することでレンダリング速度を簡単に上げることが出来るようになる。

今回はGenoma2というIKとFKが初めから設定されているスケルゴンを使ってアニメーションを作った。

なぜGenoma2を使うのかというと覚えれば圧倒的に時間が節約出来るからだ。

ただ設定するにあたって注意事項が何点かある。私はこの問題を解決するにあたって1週間もの時間をロスした。それはオブジェクト名にドットを使ってはいけないという事。ドットが入っているとレイアウトで腕のFKが反応しなくなる。これがどこを調べても出てこなくて色んな原因を探っていた。IKが間違っているのか、ボーンの軸が原因なのかetc…。結果的に前に作った人型にGenoma2を設定したところ、腕のFKが反応した。それと今の原因を比較して名前が間違えであると気付いた。前に作った人型はドットではなくアンダーバーを使ってバージョンを保存していたのでFKが反応しないことを回避していた。

要するにオブジェクト名で区切りを付けるならアンダーバーで区切りましょうという事である。

更にGenoma2で検索するとTポーズ(モデルが手を水平に伸ばした状態)でないとダメとか書かれている人を多く見かけたがそんなことはない。腕のボーンはかなり曲げても大丈夫でMakeHumanの基本ポーズでも全然問題はない。

それとオブジェクトはサブパッチを掛けないようにしておこう。IKを読み込むのが非常に重くなり、レイアウトでボーンを動かすことに支障が出る。

オブジェクト名が確認出来たなら次にいこう。

モデルを配置したらセットアップタグからGenoma作成プリセット内にあるG2_bipedsのHuman_Rigを選択。モデルをレイヤー1としたらボーンはレイヤー2に移してレイヤー1をバックグラウンドにしてボーンをモデルに合わせる。ボーンは初期設定が反転しているので上面から180°回転させておく。詳しい事はyoutubeでGenoma2を検索すれば大体は分かるはず。

セットが終わったらボーンをレイヤー1に移す。次に目のポリゴンを選択してレイヤー2に移す。MakeHumanから引っ張ってきたモデルならUVMAPがあらかじめあるのでTからeyeを表示して上面をUVに変更。そこからポリゴンを全部選択してレイヤー2に移すと楽。レイヤー2に移したら、右目を選択した状態でウェイトマップを新たに作る。左目も同様に作る。レイヤー1に目を戻す前にレイヤー1の体全体を選択してこれもウェイトマップを作っておく。スケルゴンを全て選択した状態でGenoma2編集のセットからスケルゴンウェイトマップを押して先程の体全体のウェイトマップを選択する。そのあと目をレイヤー1に戻して右目のボーンを選択してスケルゴンウェイトマップから右目のウェイトマップを選択。同じように左目もやっておく。

これでモデラーの大体は終わった。あとはモーフで呼吸の仕草(胸やお腹が膨れた状態)や目の閉じた状態、口を開けた状態を作っておくとよい。口はボーンで動かすよりモーフでコントロールしておいた方が不自然さを回避できる。


レイアウトにオブジェクトを送りセットアップタグからGenomaその他内のリグ作成を押すとボーンが読み込まれる…のだが、初めての場合はうまく読み込めないと思う。まずはユーティリティタグからプラグイン編集でnullを検索。その中のconvert_tags_to_nullsを選択してスキャンディレクトリを押す。すると何処に格納されているのか選択しないといけないので

C>programfile>NewTek>Lightwave_2018>support>plugins>scripts>Python>layout>Genericを選択するとプラグインが正常に起動するようになる。これでGenoma2がきちんと読み込まれるようになる。


一度レイアウトを再起動させ、オブジェクトを読み込み、リグ作成を押す。今度は正常に読み込めると思う。手や足がうまく動くか確認してみてOKならいいが、上手くいっていたとしても手を動かすとお腹や首や耳が変な方向に曲がってしまうと思う。なのでもう一度モデラーで動かないようにボーンを追加していく。私の場合は左右対称で腹に2対、首に1対、耳に1対の8つボーンを追加した。追加したら新しく作ったボーンを選択してGenomaに変換していく。Genoma編集のセットからデフォルトタグを選ぶ。するとボーンがGenomaに変換される。その後、その設置したボーンに近いボーンをGenoma編集プロパティから親に設定しておく。終わったらセーブしてもう一度レイアウトへ。

変なところがないか確認して調整が終わったら、目をコントロールするためにnullを作る。編集からボールを選んでサイズを0.05mにして決定。目の座標まで持っていったら右目のボーンからモーションプロパティを開き、目標オブジェクトをnullに選択する。同じように左目も設定する。これでnullを動かせば両目がそれに追従していくようになる。

以上でGenoma2による設定とアニメーションの説明と終了とする。


次は髪の毛をファイバーFXで作っていこうと思う。


ある程度Lightwaveの色編集にも慣れてきたので改めてMakeHumanで1から作り直す。

前回はオブジェクトをそのままレイアウトで出力して扱っていたが、今回はモデラーに出力してUV編集とテクスチャを再設定してレイアウトに出力してみた。

きっちり画像を編集してアルファ用の画像も作って出力してようやく見られる顔付きになった。

特に眉、まつ毛、目、髪は扱いが難しく、髪はボリュームを出すために色編集で両面にチェックを入れた。レンダリング時間は10分とそれなりに時間が掛かったが特にノイズもなく綺麗に表現されている。

今回は木の作成について記述していこうと思う。

木の作成にはモデリングで普通に作っていってもいいのだが、葉を複製して一枚一枚座標を設定するのは色々と面倒なため、プラグインを使うのをオススメしたい。

DP Verdureという無料のプラグインを使う。英語なので翻訳して読んでくれ。

まずはDownload DP Verdure version 1.33をダウンロードする。

ダウンロードしたらLightwave3Dフォルダのpluginにデータを移してモデラーを起動。

ユーティリティのプラグイン追加からダウンロードしたファイルを選んで読み込む。

そのままでは使えないので編集→メニュー編集でDPを入れて検索。すると3つのDP toolがあると思うので空いている場所を選択して追加しておこう(ユーティリティタグ内に設定しておいた方が探しやすいと思う)

DP Verdureのサイトを読めば分かるがこのプラグインは木と葉、それと草が作れる。まずは木から作っていこう。

始めにレイヤー2を選択して球をモザイクで作る。木の頂点から一番下の木の枝が生えるくらいの大きさの半球にするので、木の全長の4/3位が無難。木が9mだとしたら球の直径は12m。

直径12mの球を作ったら背面から球の下半分を消して頂点をY軸9mにセット。半球の形が枝の最終ポイントになるので気になるのなら適当に修正する。

レイヤー1に移してレイヤー2をバックグラウンドに設定しておく。先程設定したDP treeを選んでNを押して設定していく。

まずRenderをlineからSubDに変えてinteractive treeにチェックを入れる。枝の数は大体500以上にしておいた方が木らしくなる。見た感じだと200位でも行けそうな気もするが葉を付けてみるとかなりスカスカになってしまう。他はお好みな感じでいいと思う。分からなかったらDP Verdureのサイトで調べてくれ。

次に葉だが葉もバックグラウンドから引っ張ることが出来るのでレイヤー3に移って葉を作ろう。しかし葉を大量に作るため、処理を軽くするためにポイントを少なくしなければならない。なので4点か6点のどちらかになると思う。4点は長方形のポリゴンにテクスチャを貼りアルファ設定をして透過処理を施してやるタイプでこれは4点1ポリゴン。ゲームだとこのパターンが非常に多いが表裏が同じになる。6点は箱を潰した感じで6点8ポリゴンになる。多少重量感が出せるようになるが形のバリエーションが殆ど作れない。ただ表裏が作れる。top画像が6点で下の画像が4点となっている。どっちがいいか比べて見てくれ。


ではどちらが優れているのか比べてみよう。実際の木と比べてみるとどちらも欠点があり、要所によるが4点の方が表現力が優れているように見える。枝にランダム設置されているので手直しすればそれなりにリアリティーに近づくと思われる。しかし処理速度からしたら圧倒的に6点の方が処理が早い。レンダリングでは草も含めて6点が2分45秒に対して4点は13分35秒という結果が出てしまった。ちなみに6点は1万コピーしている。対して4点は500だ(4点は1枝のテクスチャを使っているので葉の数は1つにつき20枚)

時間がかかるということはそれだけ修正するのに手間が掛かる。

なぜこんなにも違いが出るのかというと、その差は透過処理にある。4点はアルファで余計な空白を透過させなければならないためにやたらと処理が重くなってしまうのだ。対して6点は余計な空白は無いので透過処理は行っておらず処理速度が速いというわけだ。

なのでどちらか好きな方を作る。4点の場合は色編集から両面にチェックを入れておく。レイヤー1を選択してレイヤー3をバックグラウンドに設定。DP Foliageを選択してNで設定をしていく。6点なら5千から1万位をコピー、4点なら500未満で好きなように(以上は推奨しない)ある程度設定が決まったらMake Foliageで葉を生成する。

最後に草についてだが、これはボックスで地面を作ったらDP Grassを選択してNで設定。数は大体5千にしておいてGrass Typeをbasic-Grassに変える。その下のsegmentは2にしてあとはお好みな感じでOK。最後にMake Grassを押して生成する。こちらも4点と同じように色編集で両面にチェックを入れておく。草はサブパッチにすると底が丸くなるので少し地面に埋まるようにしておく。草を全部選択するのが面倒な場合は画面右下のTからGrassを選んで上面をUVに変えてUVをポリゴンで選択すれば草全部が選択出来る。

全部が作れたらレイアウトに配置して出力して完成。テクスチャは公園などの木から写真をとって加工するといい。草は草原を撮ったテクスチャをy軸で貼るとそれっぽくなる。


今回は川の流れを再現するための説明だが、これはネットや動画を探せば見つけることが出来る(ただし英語しか出てこない)ので川の流れに沿って葉っぱを浮かせてアニメーションをするように少し応用してみた。

重要な点は滑らかな水を再現するためにはそれなりのポリゴンが必要という事。

幅2m、高さ0・5m、奥行き1mのボックスを作って分割をX=100 Y=1 Z=50とした。

色はいつも通りプリセットから水を選ぶ。スムージングとサブパッチも忘れずにやっておこう。

ポイントで10万、ポリゴンだと18万程になる。なのでレイアウトで出力するとそれなりに重くなるので気になる場合はプロパティのサブディビジョンからサブパッチレベルを下げておこう。

葉っぱは前回に制作したものをそのまま使う。

まずはレイアウトで川を原点に設置する。次に葉っぱを置くと同時にnullも作っておく。葉っぱをnullの子にしてnullを川の1m程上にセットする。nullのモーションオプションを開いてモディファイヤからノードモーションを選択。RayTraceからレイキャストジオメトリを選択してintersect→positionに接続。レイキャストをダブルクリックして川のオブジェクトを選択したら葉っぱが川のオブジェクトの上に乗った状態になる。レイキャストとはオブジェクトから見えないレーザーを照射して当たった物質に作用するノードで、初期値はY値が‐1なのでオブジェクトの下の物質に作用するという訳である。

なぜnullを作ったかというとこのレイキャストを使うとノードで座標を変えても変化しないので葉っぱだけで設定すると座標の微調整が出来ないからである。

次に川の流れを作っていく。川のオブジェクトを選択した状態でプロパティを開き、変位マップにチェックして選択。プロシージャルに変えて乱流のまま自動サイズ合わせを押す。位置のタブを押してX軸のEを押してグラフを出す。川の流れが1秒間に1m進むとして考えると、30フレームにキーを打ち、値を1mとして後の振る舞いを直線にしておく。こうする事で川の流れを再現する事が出来る。

川のオブジェクトの幅が2mなので2秒間、つまり60フレームで浮いた葉っぱが端から端まで動かなければ不自然なのでnullを0フレーム時に上流付近に合わせ、60フレーム時に下流へ合わせる。合わせるときは一旦ノードモーションを切ってからやっておこう。最後に葉っぱのオブジェクトを選択して、Y軸の調整や回転をグラフで調整し、揺れを再現して完成。

この流れはマグマだったり滝だったり色々応用しやすいので基礎として覚えておくといい。


ある程度のリアリティーを追求した上での1コマ。今回は物理演算を使用して作った。

葉は表と裏の写真を撮り、フォトショの自動選択ツールを使って背景を消してある程度テクスチャとして使いやすいように編集した。画像はpngではなく、Targaの方がテクスチャとしては有用である。


Lightwaveのモデラーである程度形を作り、画像を見つつキャットマルで確認しながら作っていく。3Dのモデリングにおいて重要なのはポリゴンのテクスチャは表にしか貼ることが出来ないという事。なので葉っぱが薄いからといってポリゴンに厚みの無いままでは裏が貼れない。最初にボックスから作っていくか途中で厚みを付けるかはクリエイター次第である。

形が出来たらUVで表と裏に分けてUV展開していく。キャットマルにしながらテクスチャに違和感が起きないようにUVを整える。

バンプ用にテクスチャを加工もしておく。画像編集から複製→インスタンスで複製を作り、彩度を‐1にしてモノクロのテクスチャを作る。バンプは黒が低く、白が高くなるので適切になるように好みでパラメータをいじると良い。バンプで反映されるのはレイアウトのVPRで確認出来るのでそちらで確認するしかない。ただレイアウトでいじっていると高確率でモデラーが強制終了するのでこまめにセーブはしておいた方がよい。

水滴となる水もモデラーで作っておく。これは球を作って色はプリセットの水を選べばいい。レイアウトでも球のオブジェクトは作れるがデータとしては残らないのでシーンを再起動したときにオブジェクトが消えてしまう。なのでシンプルな形でもモデラーで必ず作っておくことが大事である。

レイアウトに移る前に葉のオブジェクトにモーフを付けておく。水滴が落ちるときに葉っぱが曲がるように見せるためだ。物理演算だけでは物を曲げる事は出来ない(出来るかもしれないがやり方は不明)ので加工の曲げるで少し強めに曲げておく(モーフィングの曲がる強弱は%で設定出来るのでやりすぎで丁度いい)

オブジェクトをレイアウトに移して配置。水滴をデフォーミング、葉っぱをスタティックにして物理演算を起動させる。物理演算のプロパティとしては水滴の摩擦とボリューム維持率を100%にして水らしさを表現させる。他のパラメータはお好み。葉っぱをオブジェクトのプロパティからモーフミキサーを選択して先程のモーフを読み込みアニメーションさせる。パラメータはEからグラフで編集していく。まず水滴が葉に落ちた瞬間の衝撃を表すようにグラフを調整する。そのあと水滴が流れ落ち重さで垂れる。水が落ちたら反動で戻るように調整する。

物理演算はnullで修正しにくいためノードで修正していく。何を修正するのかというと衝突マージンによって物と物との間に隙間が出来てしまっているので、これをきちんとくっついているように見せるためにノードを使う。

水滴のプロパティからノード変位を選び、Math→Vector→加算を選び出たノードをresultをinputに繋ぐ。ダブルクリックしてXYZ軸のパラメータをEのグラフでキー設定していく。

後は満足いくまで修正を続けて完成させる。


今回は物理演算を使っているのでパラメータがこの設定なら大丈夫と断言することは出来ない。なぜならオブジェクトの大きさ、あるいは配置の違いによってパラメータを適切に変えていかなければそれらしさというのが作れないためである。



前編からの続きで、まずは表示形式をテクスチャソリッドからVPRに変更する

するとモデルの顔が悲惨なことになっているので、これを修正していきます。

まずはレンダータブからオプションのレンダープロパティを選択し、その中の大域照明タブを選択

モンテカルロ内の光線を初期は1となっているので、20以上に上げましょう。すると光の粒が消え肌がはっきりします。(上げすぎると重くなるので注意)

次に編集の中の色・質感編集を選択し、マテリアルを全て選択した状態でスムージングにチェックを入れます。

そうすることで綺麗な曲線になり、本物らしくなります。

ですが髪、眉、まつ毛、目が白くなっていて変なので、透明度を上げてテクスチャのアルファ設定をしていきます

今回MakeHumanで私が選んだパーツは

base.obj 肌

eyebrow004.obj 眉毛の4番目

eyelashes01.obj まつ毛の1番目

high-poly.obj 目

male_casualsuit03.obj 男のカジュアルスーツの3番目

shoes01.obj 靴の1番目

short02.obj 短髪の2番目

teeth_base.obj 普通の歯

tongue01.obj 舌の1番目

のマテリアルとして表れています。なのでeyebrow004.objとeyelashes01.objとhigh-poly.objとshort02.objを選択した状態で透明度を100%にします。

するとテクスチャが隠れてさっぱりした感じになります。今度は眉毛だけを選択して透明度の上にある色のその右にある青く光ったTを押します。

テクスチャ編集パネルが開くので、そこからコピー→現在のレイヤーを選択します。次にそのまま眉毛を選択した状態で透明度の右のTを押します

今度はコピーの隣の貼付けを選択し、現在レイヤーに置き換えを選びます。そうすれば眉毛がしっかりと表示されます。これと同じことをまつ毛、目、髪も繰り返します。

髪まで終わった状態がこのようになっていればOKです。これで殆ど終わりですが、もう少しだけやります。

編集の背景から環境プラグインを押してスカイトレーサー2を選びます。するとモデルの目が以上に光ってしまっているのが確認できるのと、ノイズが少し出てしまっているのでそこを直してしまいましょう。

レンダープロパティを開き、レンダータブの反射回数の制限を6から2に変えます。すると目の反射が抑えられます。ノイズは大域照明タブの重点サンプリングにチェックを入れれば直ります。

モデルのオブジェクトを選んでShift+Aで中心に固定しておかしな所が無いか確認します。

どうやら髪の毛が透けてしまっています。なので色・質感編集の髪を選んで透明度の下の屈折インデックスを上げていきます。今回は1.2の値で直りました。ついでにちょっとズラっぽくなっているので反射光を0%にします。目の反射光も50%にして虹彩が見やすい感じに変更して、鏡面反射率を20%に上げます。ここら辺はお好みで大丈夫です。

結果がこのようになります。最終的な好みは人によって違うので色々設定をいじって自分なりの答えを探してみてください。以上で後編は終わりとなります。保存する場合は保存から全保存を選んでください。シーンだけを保存した場合、マテリアル設定は引き継がれないので注意です。

何時ぞや紹介したMakeHumanをLightwaveで動かしてみようと思って海外の動画とか漁ってみたが、新しいバージョンでの情報が無く、詳細も殆ど無かったので色々試し、まずまず公開出来る結果が出来たので記しておこうと思う。

前編という事で今回はMakeHumanとレイアウトへの出力についてを、次回の後編はレンダー設定や色設定を教えていきます。


ではまずMakeHuman(海外サイト)から

MakeHuman(今はv1.1.1が最新)をダウンロードします。ダウンロードしたzipファイルを解凍(解凍ソフトの無い方はこちらの7zipで)し、解凍したファイルの中のmakehuman.exeを起動します。

始めに英文とチェックボックスが出るのでチェックを入れ、YESを選択。

日本語化するためにsettingsタグを選び、その下のgeneralタブが選択されている事を確認したら、右側のlanguageの中にあるJapaneseを選択。出てくる指示に従って一旦MakeHumanを閉じます。

もう一度exeで起動すると日本語化されているので自由にモデルを作ってください。ボーンはデフォルト、服を着せた場合は体を消した方が無難です。

設定が終わったらファイルタブからエクスポートします。


基本的にフォーマットはfbxを選ぶのが無難です。右側の設定は足を地面に付けるデシメートルにチェックが入っていればOK。それ以外にはチェックを入れないでください。それ以外にチェックを入れると形が崩れたり、サイズが変わってしまいます。モデルはLightwaveのコンテンツディレクトリに設定してあるobjectsフォルダに作ってください。

これでMakeHumanでのモデル作りが終わりました。


次にLightwaveのレイアウトを起動します。

まずはファイルの開く入力FBXファイル入力で先程作ったモデルを読み込みます。


その際スケールシーンにチェックを入れず、回転の入力を回転のベイク、ジョイントの入力をLightwaveジョイントにして続行してください。

そうすると少し掛かりますがモデルが読み込まれます。ですがウェイトマップがしっかりとされていないのでモデルがぐちゃぐちゃになっています。なぜならこの読み込み方だとレイヤーが分かれてしまっているのでボーンが正確に対応されていない為です。ですがこのやり方でないとボーンが作れないので、一旦ボーン以外を消します。

オブジェクトのアイテム横の▯を押してボーン以外のオブジェクトを選択し、で全て続行を選んで消して下さい。そうするとボーンだけが残ります。

+を押してオブジェクトファイルから同じFBXを選んで読み込みます

別々のレイヤーにオブジェクトを開くにチェックを入れずに続行をしてください。そうすることでひとつのレイヤーとしてモデルが出力されます。(このやり方だとボーンは出てこない)

出力されたモデルとボーンが重なっているが、ボーンを動かしてもモデルは動かないので動くように設定していこう。

編集の中のシーン編集シーン編集MakeHuman_default_skeletonをクリックしながら読み込んだモデルの文字の上にドラッグして子にします。

次にMakeHuman_default_skeletonの横の▽を押して子を2回表示してfbx_base_bone_transformerを右クリックし、選択→子アイテムを選択(繰り返し)を選ぶ

選んだらそのままセットアップタブの変形の中のその他→オリエンテーション→ボーンの固定位置を記録を押す。

シーン編集は閉じていいので、モデルのボーンを動かしてちゃんと動くか確認してみよう。

多少変に曲がる箇所があると思うがモブレベルなら十分に起用出来るレベルで動かせる。少しやりにくいが目や口も動かせるので試してみてほしい。

これでボーン編集は一旦終わり。細かい設定は機会があればいずれやるかもしれない。

後編に続く


前回の失敗を踏まえて簡易的なモデルにパーティクルエミッターを16に増やし各々をコントロールをすることで大体のイメージ通りの結果となった。とりわけ難しい点は無かったが、ブレンディングという機能を使わなければ16の独立したエミッターは合成されず、1つ1つが重なった状態で出力されてしまうので注意が必要。

ハイパーボクセル内のジオメトリタグにあるブレンドモードをオフから加算にすると複数のエミッターが1つのパーティクルのように扱い、きちんとした形となる。