CGデザイナーのさすらい様からの依頼により1週間弱の期間を使って空中都市を楽しく作らせていただきました。
メイキング内容をブログに載せても良いと許可が下りましたのでここに書き記していきたいと思います。
空中都市の作成は、ラフに沿ってアレンジを加えつつモデリングしていくという作業内容でした。
そこで新しく考えて学び得た事を載せていきます。
【モデリング】
・「レイアウト上で変形状態のオブジェクトを保存」
花のような形状や中心のビル郡の部分はレイアウトでボーン変形させて、この変形状態のオブジェクトを.lwoで保存しています。
このようにレイアウトもモデリングの道具として使えば、モデラーでは難しい変形を容易に行う事が出来ます。
ここで注意する必要があるのは、モデラーで再度サブパッチ化にする為に、.lwoで書き出す時にオブジェクトアイテムのサブパッチレベルを0にしておく必要があります。
またサブパッチをオンにしたまま書き出すと、ハイポリ化になった状態で出力出来るので、様々な用途で利用出来そうです。
・「動力部の発光」
今回はデータの受け渡しの事を考えて画像マップの使用は避けるようにしています。
前記事で書いたウェイトマップ法を利用して、サーフェイスの発光範囲や透過の範囲を付けています。
しかし、ドーム部分の透過が何故か上手くいかなかったので、ここだけは画像マップを使用しました。^^;
・「幹の凹凸やツルの作成」
幹の凹凸にはジッターを使って頂点をランダムに変形。
スカルプトを使わなくても、これだけで樹木の凹凸を出す事が可能です。
あと、ジッターを強めに放射状にしてサプパッチオフにすると竹ボウキのような形状を作り出すことが出来ることが分かりました。
ファー以外で部分的に草むらとかを作るのに良い方法かも。
樹木から反動ユニット部分に繋がっているツルの作成には「貝殻(SeaShell Tool)」を使っています。
LWの機能は名前や使用方法にとらわれずに考えて使うと新しい発見や表現が出来るので面白いですね。
【質感・マップモーション】
マップモーションのほとんどはノードを使って作りました。
けっこう適当な感じで弄っています。(笑)
・「コアに当たるドーム部分」
青とピンクの屋根部分にはHoneycombのノードを使ってグラデージョンを付けています。
その下の金属部分はUnderwaterを使ってメタリックな質感を表現していますが、デフォルトのままだと自動的にマップモーションされてしまうのでWaveSpeedの値を0にして動きを止めています。
LWにはCarpaintというマテリアルノードがあるので、それを利用すれば良いと思いますがレンダリングに負荷が掛かるので3Dテクスチャノードなどで誤魔化しているんです。
フォトリアル系には向きませんが、上の画像のように、環境マップ代わりにちょっとした装飾のメタリック表現には使えるかと思います。
・「外側のドーム」
何かのオーラに包まれた感じで、タービュレンスと透過マップを使って靄のようなマップモーションを付けています。
ビル郡もGrid2Dを利用して簡単に模様を付けています。
・「支柱とコアドームのドアの模様の隙間に見える光」
ノードは従来よりもマップモーションが作り易いのが良いですね。
Planks2DのBgカラーにCrustを接続してランダムなカラーをグラディエントで付けて以下のGIFアニメのようにマップモーションを付けています。
・「支柱の動力ユニット」
これもCrustなどを使って動力が稼動しているような動きを付けてみましたが・・・ブツブツと動いていて炭酸水っぽいですね。(笑)
CrustはTurbulenceと同じくらい利用するノードです。
かなりいろんなもので利用が出来ます。
動力ユニットの内部には二重に面ポリゴンが重なっていて、それぞれのポリゴンのサーフェイスに「Edge_Transparency」を追加しています。
この二つの違いはEdge Transparencyの種類が「Opaque」と「Transparent」と使い分けられていて、Opaqueを適用した方ではCrastのノードが適用されていて内側は透明で外側は黄色く発光するようにしています。
「Transparent」では外側のポリゴンのエッジをぼかした感じに透過して中心にオレンジ色が掛かるようにして擬似コースティクスを演出しています。
・「鈴蘭のような反動力ユニット」
これも「Edge_Transparency」を利用して二重にポリゴンのエッジをぼかしています。
あとは、ライティングは詰めないということを想定して、現状のままでは光と影のコントラストが強過ぎると感じました。
要望では白っぽくするとのことで、全体の色の彩度やコントラストを落とす為に自己発光度と拡散レベルを利用して擬似的に影をソフトにしました。
(メタリックも擬似、コースティクスも擬似、ライティングも擬似・・・これは何もかも全てレンダリングに掛かる負荷を抑えるための、僕のなけなしの知恵と工夫です。)
【セットアップ】
さすらいさんの個人作業の事を考慮してアニメーションを簡単に付け易いようにと思い、勝手ながらリグを組みました。
動画作りの作業効率に少しでも役立てればと思います。
・「全マップモーションは常にオート化」
ずっと動くようにパスの後の振る舞いを「反復のオフセット」にしてあります。
・「ドームの開閉リグ」
ドアのコントローラーを回転させることでドームに沿ってドアが開き、その動きに遅れて後ろの甲虫の羽のような部分が自動的に開くようになっています。
・「反動力ユニットのリグ」
このリグにはRelativityが使われていて、多数のオブジェクトを設定するのに手早くセットアップすることが出来ました。
ただ、考え付くまでに時間が掛かったのでどっこいどっこいでしたが・・・次回、同じ様な作業があった時は早く作れると思います。
使われている数式は以下のような感じで、ポインタ(Null)のY軸移動の値の変化に沿って反動ユニットが様々なピッチ回転を行うようになっています。
[Y]:#a*NOISE(#b*t+#ex*#c)
[A]:Y(pointer_02,t)
[B]:Y(pointer_03,t)
[C]:Y(pointer_04,t)
左のポインタから、[A]はノイズのスケール、[B]はスピード(ノイズの波)、[C]は個々のユニットにランダムな動きを付ける様にしています。
そして、一番右側にある黄色のポインタは反動力ユニットを一括で手付けでピッチ回転を付けるもので、ノイズ用のポインタと組み合わせて動きを付けることが出来ます。
[ボツ案]
最初は「NoisyChannnel2」を使ってExpressionでアイテム制御をしようと試みましたが、「NoisyChannnel2」自体がExpressionとして扱われるので、二重にチャンネルExpressionを適用されることになって正しく制御することが出来なかった。
将棋の二歩と同じでチャンネル+チャンネルは使用できないので、対処方法としてはモーション版Expressionとチャンネル版Expressionを組み合わせて使うのが妥当と判断しました。
その後、Relativityだけで充分に賄える事がわかったので、Expressionの適用数もかなり抑えられました。
8月末から真面目にRelativityを勉強して良かったと思えた瞬間です。(笑)
とりあえず、空中都市のメイキングはこんな感じです。
今回、ここまでスムーズに作れたのはさすらいさんの的確なラフや説明のおかげで、僕が誰かと関わってここまで楽しく作れたのは初めてのことでした。
良い経験をさせていただいたこと、そして声をかけて下さったことに感謝でいっぱいです。
ありがとうございました。^^
[2回]
PR