ファンタジーな世界を作ろう(1)モデリング編

画像はクリックすると拡大されます。また略語は以下のとおりです。戻る   デジタル降魔録へ   次へ

After Effects(以降 AEと書きます)にバンドルされていた Cinema 4d Lite(以降 C4d Lと書きます)に手を出して 3年が過ぎました。そこでこれを一つの節目として総集編となるものを作りましのでご覧ください。題して『ファンタジーな世界を作ろう』です。



 ファンタジーな世界、簡単に言えば、単色で塗られたオモチャのような世界球です。地球ではなく架空の陸地を球体に丸めて、海あり、ビルあり、山あり、と箱庭風の3D映像を作りました。

 完成に至るまでの主な作業は二つ。一つはモデリング。
 オブジェクト(ここでは C4d Lで処理するあらゆる物体や物をそう呼んでいます)を作って、組み立ていく工程です。
 もう一つはアニメーションとカメラワーク。静止画ではなく動画ですので、カメラを使ったなめらかな動きを作ります。実際はこの後に効果音の挿入という作業もあるのですが、今回は省きました。



 まずはオブジェクトのモデリングからです。

 個々の構成と製作方法を並べましたので、これから 3Dモデルに手を出そうと思っている方の手助けになりましたら幸いです。

 C4d Lでのモデリングは、ポリゴン化して行う作業が正規版と比べてとても貧弱ですので、ワタシはスプラインで作ったオブジェクトを利用したり、プリミティブオブジェクトの立方体、球体、円柱、トーラスなどを利用してデフォーマで変形させたり、ジェネレーターブールで切り抜いたりして物体を作っています。なかでもジェネレーターの【ロフト】や【スイープ】、【押し出し】などは、スプラインで作った任意の平面を立体に持ち上げてくれるのでとても便利です。

 以下は今回製作したオブジェクトの一覧です。詳しい説明は各リンク先をご覧ください。

 なかでも最も重要だと感じたのは、球体の表面に平らなオブジェクトを配置することの難しさです。
 そのためにヌルを利用するのですが、詳しくは次の【架空の陸地と海】の説明をご覧ください。球面に沿って船が動いているのもこの原理でアニメーションしています。




架空の陸地と海

どこかで見かけた風車

よくある洋風なお城

凱旋門みたいな凱旋門

見覚えのある鉄塔

よくある吊り橋

近所のアーチ橋

小さな空港

今日も飛んでいる飛行機

タンカーだって浮かんでる

立ち並ぶビル










架空の陸地と海このページのメニューへ戻る

舞台となる球体は、プリミティブオブジェクトの中にある『地形』を使って作ります。
 下の写真が【地形】オブジェクトの設定場面です。


地形の設定

やったことないけど 3Dでも始めてやろう、と思ってここを訪れた方はショックを受けたかもしれません。あるいは疑問符を大量におっ立てたかもしれません。c4d Lでは Ai(Adobe illustrator)や Ps(Photo shop)などと異なって、陸地を作るのにパスを引っ張らなくても絵が描けます。上記のように、属性マネージャと呼ばれるエリアにずらっと並んだ各種設定値を触ればリアルに反応して、険しい山から丸い丘、平たい平地までいろいろな形になります。好みに合わせて数値をいじるだけです。

 もちろんもっと想像的な陸地を作るのでしたら、C4d Lでもパスを引くことはありますが、それだって陸地の底面と頂上の平面図を描くだけで、その中間は C4d Lが補完してくれます。
 この後に出てきますが、飛行機の翼だって全体のパスは描いていません。根本と中間の数か所、それと先端の平面図だけで作られています。詳しくはそちらをどうぞ。


 今回は球状の地形が欲しいので、属性マネージャにある【球状】にチェックを入れます。できた陸地にはいろいろなオブジェクトを置きますので、大地としての平面が必要です。そこで南極の氷山みたいに、隆起した面の上が真っ平になるように属性マネージャの数値を調整して、あらためて別に作った小さな山をところどころに埋め込んでいます。

 全体の形や大陸の配置が気に入らないときは【シード】の数値を変えると別の形に変化します。

地形の規模は、属性マネージャの【サイズ】の左端の数値が X方向=左右の大きさ、真ん中が Y方向=高さ、右端の数値が Z方向=奥行きの大きさとなって平面に伸びますが、球体にしたので X=8000が球体の直径になるようです。つまり半径が 4000mmほどになります。もしも正式にこの物体を現実の世界で実現したとすれば、直径 8メートルの球体になりますが、今回は mmという単位は意味を持ちません。でもこの 4000という数値は重要です。


 さて本題です。

 これまでは作ったオブジェクトを平面に配置するのが主流でした。高さのある状態でも設置するときはだいたい平面の上です。

【補足】
この場合の平面というのは、Aiや Psでいうところの X,Y座標で表した平面とはちょっと違っていて、3Dでは現実の世界と同じ感覚で座標を表しています。X座標が左右で Y座標が高さに、そして奥行きが Z座標になっています。


 ようは XYZ座標だけで場所が決まっていたのですが、球体の表面にXYZ座標でオブジェクトを配置すると変な向きに傾きます。そのためには回転座標も調整しなければいけなくて、オブジェクトが数多くなると統一させるのが難しくなってきます。そして今回のように長さのある橋や滑走路のようなものは、両端が球体の表面から離れてしまってとてもカッコの悪い結果になります。表面に合わせてオブジェクトを湾曲させなければいけないことに気づきます。

 球体表面にオブジェクトを配置するには回転軸だけで位置決めをできるようにすると調整が楽になります。そこでヌルを利用して小細工を施します。

 もし C4d Lが手元にあるのでしたら、次の実験をしてみてください。
 半径 5000mm、分割数を 64にした滑らかな球体を作って、その表面に X,Y,Z=500mmサイズの立方体を置いてみてください。慣れた人ならば 1分もいらないで完了でしょう。

 できたら立方体の複製を作って、それより少し離れた場所に置いてみてください。すぐに気づいたと思いますが、次の立方体は前後あるいは左右に少し回転させないと球体表面と平行にならないのです。


場所が変わると表面から離れだします。



 さらに立方体を増やしていくと、だんだんと困難になってきます。
 それでも一生懸命表面の角度に合わせて回転座標を調整すれば何とかなりますが……。


一つずつに場所と角度の調整が必要です。

とりあえず置けましたが微妙に不揃いですし、それよりも設置するのが苦痛になりそうです。

 オブジェクトが複雑な形になり、数が多くなるとかなり難しくなるということが理解できたと思います。

 そこで、ヌルを使った方法です。
 まず理解しやすいように、球体の中心座標を X,Y,Z=(0,0,0)にします。


ヌルの座標を球体の中心に、立方体は Y=5250にします。

写真は、各立方体それぞれに "alt"+"G"で、親ヌルを作って、子階層に入ったオブジェクトを表しています。
 親ヌルの作り方や、その意味は【親ヌルって?】をご覧ください。

 説明に戻ります。

 次にすべての親ヌルの座標を球体の中心に合わせます。
 球体の中心座標は(0,0,0)ですので、親ヌルの座標も X,Y,Z=(0,0,0)にします。

 この瞬間、子階層の立方体は親に従って、球体の中心部に引き込まれますが、上記の写真のようにヌルではなくて、立方体の Y座標を球体の半径(5000)に立方体のYサイズの1/2(=250)を加えた数値(=5250)にするだけで、今度は球体の表面に張り付きます。

 最後に、親ヌルの回転座標 R.P、R.Bを動かすと、立方体が球体の表面に沿って移動しますので、好みの位置に調整するだけです。

 次の動画がその説明です。

上記の方法で、すべてのオブジェクトが世界球の表面に張り付いているわけです。
 海面を動くタンカーも座標を動かしているのではなく、回転座標を変化させています。

 なぜ表面に張り付くのか、その理由は簡単。球体の中心に置いた親ヌルから 5250mm離れた位置に子階層のオブジェクトを移動させたのです。中心から 5250mmといえば、球体中心から表面までの距離に立方体の中心までの距離を加えたものです。早い話が、立方体の底が球体表面に一致します。

【補足】
このような関係が常に付きまとうので、3D作業は難しいと思われるかもしれませんが、いたって現実的で論理的にできています。
乗り越える方法は一つ。紙に描くのではなく、プラモデルを拵えるとすれば、気が楽になるかもしれません。


 球体の形が複雑に上下していたりする場合は、表面から離れたり潜り込んだりしますが、子階層のオブジェクトの Y座標を調整すれば簡単に合わせることができます。

 先ほどの動画では実験的に立方体一つを親ヌルの子階層に入れていますが、実際はもっと複雑になります。
 実例として、風車の OM(オブジェクトマネージャ)の一部をご覧ください。



風車


風車のオブジェクトマネージャの一部

風車に関して細かい説明はどこかで見かけた風車をご覧ください。

 ここで注目していただきたいのは、もっとも上の階層に置いた『風車』と名付けたヌルが、球体の中心に置いた親ヌルで、そのすぐ子階層にあるもう一つの『風車』というヌルが、風車のオブジェクトを詰め込んだヌルで、【羽】から下に向かってずらっと並んでいます。

【補足】
2階層目のヌルの下階層に【羽 回転KF】と書かれたヌルがあり、そのさらに下階層にプロペラのオブジェクトが詰め込まれています。そしてこの【羽 回転KF】のヌルにも意味があります。詳しくは『【29】アニメーションとカメラワーク編 →風車の回転アニメーションについて』をどうぞ。


 2階層目のヌルの役割は、オブジェクトのグループ化だけでなく、球体表面に置かれるように Y座標を世界球の半径に近い 4000mm~4100mmあたりにして地面に触れる範囲で調整しています。さらにそれだけでなく、包含するオブジェクト群の親として全体の微調整も可能にしています。つまりその場で平面回転したり、前後左右に角度を傾けたりして、オブジェクト群を地形になじませることができます。

 また回転させる親ヌルを二つに分けるのもジンバルロック現象の対策になり都合が良くなります。
 ジンバルロック現象とは 3Dアニメーション特有の問題で、あまり無茶な方向にオブジェクトを回したアニメーションを作っていると、そのうち意図しない回転を始めてアニメーションが続けられなくなる現象です。

 なぜそうなるのか目で見えるようにしてみます。
 ジンバルロックに陥ったら、オブジェクトを選択してから回転ツールに切り替えてください。
 次に属性マネージャの【ツール】→【回転】→【軸】→【オブジェクト軸】にある、【ジンバル回転】にチェックを入れると一目瞭然になります。それまで表示されていた赤青緑の回転バンドのいずれかが、他の回転バンドと同じ位置、あるいはほとんど近い位置に傾いていて、回せない方向ができています。ひどい時は水平回転と前後回転しか動かなく、横倒しにすることができなくなります。

 ワタシ個人の意見ですが、オブジェクトの構造を最低でも二階層にして、動けない方向を別の階層で補うという対策がいいかなと思って実行しています。
 そんな理由もあって、すべてのオブジェクトは親ヌルを二段階構造にしているわけです。

 この現象の原因にたどり着くまでの長い話は『【11】回転は迷宮への路 その2』から書かれています。



 海はマテリアルの透過チャンネルにある透明度を70%にして、屈折率は1.02にした半透明の青い球体です。陸地の球体と同じ座標にして、陸地より半径を少し小さくしてあります。
 屈折率を 1.02にした理由は単純で、海中に沈む橋脚をよく見せたかったからです。屈折率を上げていくと橋脚が短く見えだすのは、コップに突っ込んだスプーンの柄が折れ曲がって見えるのと同じ理由です。

 海には波のシミュレーションも入れていたのですが、ほとんど見えないことが判明しましたので、本番では波は立っていません。次の動画は波が立っているのを見せるためにカメラを海岸近くまで下ろしてあります。

少々波の動きが速いですが、これはご愛敬です。








どこかで見かけた風車このページのメニューへ戻る


風車

ここはファンタジーな世界ですので、どこかで見たことのあるものが並んでいますが気にしないでください。これもその中の一つで大きな風車です。
 動画を見ていただけると分かりますが、ちゃんと羽が回転していますし、風車の裏側もきっちり作ってあります。

このオブジェクトの特徴は巨大な風車の羽が少し湾曲している部分です。これはデフォーマの【屈曲】を使って、羽を構成する厚みのほとんどない立方体オブジェクトの端のほうを歪めています。

 どのような構造になっているかは次の OM一覧をご覧ください。これだけのパーツで組み立てられています。


風車のオブジェクトマネージャ一覧


【羽】と書かれたヌルの子階層に 4枚の羽(プロペラ)が入っています。

 羽オブジェクトが網目のようになっているのは、Aiで作った網目模様の png画像をマテリアルのアルファチャンネルに使用して、【ぺら】ヌル(4つの【ぺら】を入れた親ヌル)のテクスチャとしています。
 親ヌルにマテリアルを適用させると、子階層すべてに適用されます。白が不透明で黒が透明になることを利用して網目にしています。そして同じマテリアルのカラーチャンネルでオブジェクト自体の薄水色の色を出しています。

 他にも風車の回転軸と接続される羽の十字は、スプラインの押し出しで作ってありますし、窓ガラスは窓枠とガラスとなる平面を別に拵えて、窓枠と組み合わせたものをインスタンス化することで、修正と製作時間の手間を省いています。今回はそれを 6個使用していますが、調整するのはマスターとなった一つだけで済みます。


 余談ですが、海を渡ったあちらにある本物の風車は反時計回りだそうですが、こちらはあえて時計回りにしています。







よくある洋風なお城このページのメニューへ戻る


千葉県にあるお城ほどではありませんが。

空を突き刺す勢いでそびえる尖塔が特徴の洋風のお城です。これも簡単に作るためにプリミティブオブジェクトの組み合わせで拵えています。窓や城壁の模様などもすべて Aiで拵えた png画像をテクスチャとして貼ってあるだけなので、近くで見るとつるんとしています。
 門として大きく開け放たれた空間は、直方体オブジェクトにフィレットで角を丸めた抜き型を押し込んでブールで切り取っています。
 ブールや抜型については 抜き型ってなんじゃ?をご覧ください。







凱旋門みたいな凱旋門このページのメニューへ戻る


どうみてもあの門ですが。

またまたどこかにあるものとよく似ていますが、ただの凱旋門です。
 凱旋門と聞くとどうしても西ヨーロッパのあの国を思い出しますが、戦いに勝った軍隊をたたえるために作られた門だそうで、あまりにもあの国の凱旋門が有名になりすぎているだけのことで、世界各地にあるそうです。このオブジェクトもその中の一つだと、無理やり思ってください。

 へこんだりくりぬいたりしているのは、その形に作ったオブジェクトを抜き型として突っ込んでブールに掛けているからです。
 なかでも、門の前後と左右にアーチ型の切り抜きをしていますが、これはアーチ型に変形させた二つの円柱を十字にクロスさせて、ブールの『AとBを合体』で一つのものとしてから、切り取り用のブールに掛けて抜いています。
 ブールや抜き型については 抜き型ってなんじゃ?をご覧ください。

 屋根のように出っ張った段差は下方向に小さくなる台形になっていますが、これは大きさの異なるスプラインで作った四角形を上下に離して、ロフトを掛けて作りました。







見覚えのある鉄塔このページのメニューへ戻る


どこを見てもあのタワーですが。

は~い。そこの人、ざわつかないでください。よく似ているだけで全然違いますよ。まずエレベータがありません。どうやって展望台へ上るんでしょうね。
 あ。鉄骨をよじ登る。それ、正解です。

 ま、そんなことは横に置いておいて、このタワーの構造をタネ明かしすると笑うぐらい簡単です。
 基本になっているプリミティブは、三角の先を鋭くとがらせたピラミッドオブジェクトです。


ピラミッド型がベース



 そしてクロスに組んだ鉄骨はこれ。


しょぼい……。


 Aiで拵えたしょぼい絵です。白色が鉄骨になる部分で黒は見えにくいから置いてあるだけで、実際は背景を透明にした png画像です。それを鉄骨マテリアルのアルファチャンネルに読み込んで、編集可能状態にしたピラミッドオブジェクトの各面に貼り付けただけです。簡単な割にきれいに透明部分が反映されて、いかにもクロスに組んだ鉄骨で作られているように見えます。
 編集可能状態(ポリゴン化)すると、各面にマテリアルを指定できるようになります。詳しくは【任意のポリゴンだけにテクスチャを貼る】をご覧ください。


 鉄骨マテリアルは下記のような設定です。


アルファチャンネルを使うにチェックを入れています。

アルファチャンネルを使用したマテリアルはカラーチャンネルも使えます。


 png画像をマテリアルに入れるときの画像サイズですが、マテリアルの投影法の設定でいくらでも調整できますが、貼り付け先のサイズの縦横比を狂わさないようにして画像データを作るのがコツです。狂わすと歪みます。あと、あまり小さいサイズだと映像にしたときに画像が荒くなりますので、ワタシは C4d L上での実サイズと同じか 20%ほど大きくしています。大きいほうがきれいに張り付きますがデータ容量が巨大になります。今回はオブジェクトと同サイズとしました。

 マテリアルの投影法は【平行】が理想的かもしれませんが調整がめんどくさいので、【UVW マップ】で済ませています。







よくある吊り橋このページのメニューへ戻る


吊り橋

もう説明は必要ないでしょう。吊り橋のロープはスプラインペンで描いた線に円形スプラインで スイープさせています。道路はデフォーマの屈曲で湾曲させています。真っ平のままだと、とてもかっこ悪いです。三つ並んだ鉄骨の柱は、柱の厚みを出した立方体オブジェクトにフィレットで角を丸めた同じ立方体オブジェクトを抜き型としてブールをかけて切り取っています。







近所のアーチ橋このページのメニューへ戻る


吊り橋

アーチ状の鉄柱は円柱をデフォーマの屈曲で丸めています。吊り橋と同じようにスプラインの線と円形スプラインでも作れますが、意外とデフォーマの屈曲のほうがきれいに丸まり、後々の微調整が楽です。







タンカーだって浮かんでるこのページのメニューへ戻る


タンカー

タンカーと呼べるのかどうかですが……。本人はタンカーだと思っていますので、これはタンカーです。


船の形はスプラインペンとロフトで。

船の形は、真上から見た上部デッキから船底までの形をスプラインペンで 3種類描き、ジェネレーターのロフトでその間を補間して作っています。その他のオブジェクトはコツコツと積み木のように組み立てていくだけです。







小さな空港このページのメニューへ戻る


小さな空港

飾りっ気のない小さなビルがポツンとあるだけの、少々寂しげな空気が漂う空港です。
見るところは湾曲した滑走路ぐらいで、特筆するものはありません。湾曲はデフォーマの屈曲ですが、地表の湾曲と合わせて設置するのに神経を使いました。飛行機については【今日も飛んでいる飛行機】をご覧ください。







今日も飛んでいる飛行機このページのメニューへ戻る


串刺しの飛行機

さて問題はこれですね……。

 何か気になるものが胴体から突き出ていますが、これは地面に突き刺した針金です。3D映像ですので、何も無くても空中に浮遊させることは可能ですが、ファンタジーなオモチャの世界球だというコンセプトから外れないように、地面から伸びた針金を利用して "空中に浮ばせている" としました。

 タンカーは動いとったぞ。と言われるかもしれませんが、それは海中のことでして、海の中に引かれたレールにそって動くオモチャという、無理やりな説明で……もう勘弁してください。


翼はスプラインペンとロフトで。


 上の写真は、ボディを消して、左側の翼関係はロフトをオンに、右側はオフにしてスプラインの形が見えるようにしたものです。

 ご覧のとおり、各翼の形となる物体を根元から先までの数か所、形状に変化が起きるあたりがいいかと思います。そのあたりをスライスにしたと頭の中で想像して、それをスプラインペンで描いてロフトを使って途中を補完します。両翼の先が反り返っているのは最近の飛行機の特徴でして、そのあたりも真似てみました。ここはロフトに掛ける最も先端のパスを回転ツールと移動ツールで上方向に反らしています。






立ち並ぶビルこのページのメニューへ戻る


手抜きビルですね

これも説明はいらないと思います。窓はすべて Aiで描いたpng画像です。仕事のスケジュールが迫っていてファンタジーな世界に掛けられる製作時間は三日しかありませんので。ビルは窓だけで入り口も無ければ細かなディテールも付けません。付けたところで映像では見えませんので、海の波と同じで省略しました。
 ただ、窓の作り方だけを説明させてください。

 窓はAiで拵えた pngデータです。


超手抜きの pngデータ

続いて、C4d LのビルオブジェクトのOMの写真です。
 投影法を【UVW マップ】にした窓のマテリアルを立方体オブジェクトに貼り付けているのですが、同じ立方体にマテリアルタグを二つ付けているのがミソです。


窓のマテリアル

写真のピンク枠で囲った部分がマテリアルタグエリアと呼ばれる部分で、オブジェクトに貼り付けるマテリアルのアイコン(タグ)が並ぶ部分です。

 通常はもっとも右端に置いたマテリアルタグが有効となって、他は無視されるのですが、アルファチャンネルを使用する場合は話が変わってきます。
 アルファチャンネルに利用する画像の設定部分にある【画像の濃度を使う】にチェックが入り、【アルファチャンネルを使う】にはチェックが入っていません。こうすると、画像の濃淡によってアルファチャンネルの透明度が変わるのです。白は完全不透明、黒は完全透明、灰色はその中間ぐらいになります。そのような理由から pngデータでは、ビルの壁を白、窓の枠を灰色、それからガラスの部分を黒にしています。

 そしてここからが重要です。

 OMのマテリアルタグ(写真のピンク枠部分)は左から順にオブジェクトに対して反映するルールです。複数あっても最終的に右端のマテリアルが上書きしてしまい、左のマテリアルは反映されないのですが、アルファチャンネルを使用すると、最終的に上書きしたとしても透明部分は変化無しで、最初に張ったマテリアルが透けて見えることになります。それが Aiで作った画像の黒塗りの部分、ガラスの部分になります。ビルに近づいてみると、写真のように窓枠とガラスとがはっきり浮かんで見えています。

 こうすれば窓枠を 3Dオブジェクトとしてコツコツ作って組み立てることもなく、短い納期で済ますことができる、という手抜きの方法でした。




 モデリング編はここまでです。次回は簡単ですがアニメーションとカメラワークの仕方です。単純にカメラを動かしているのではなく、意外と工夫しているのです。



【28】ファンタジーな世界を作ろう(1)モデリング編   おしまい

戻る   デジタル降魔録へ   次へ