Skip to content

カテゴリ: 講座テキスト

MoGraphとダイナミクス: 4.ダイナミクスのアニメーション

ダイナミクスのアニメーションについて学びます。

前の章

Step 1

ダイナミクスの効果を切る

 まず始めに、アニメーションの途中でダイナミクスの効果を入れたり切ったりする方法を二つ説明します。ダイナミクスの効果を切る一番の理由は、「切らない限りオブジェクトを動かせない」からです。言い換えると、ダイナミクスの効果が続いている限り、オブジェクトをマウスでつかむことはできず、またキーフレームやエフェクタによって位置や角度の値を操作することもできません。

 

1. 「ダイナミクス -> 有効にする」

「有効にする」のチェックを外すと、全てのダイナミクス計算が停止します。

図624-1

したがって、ダイナミクスの働きによって移動、回転していたオブジェクトは、「有効にする」のチェックを外すと、即座に初期位置に戻って静止します。ダイナミクスの計算が完全に停止しているので、他のオブジェクトと衝突することもありません。また、コネクタや場、モーターなどの機能も全て無効になります。

「MoGraph選択範囲」を使うと、一部のクローンだけを有効にしたり、無効にしたりできます。

 

2. 「ダイナミクス -> ダイナミクス」

「ダイナミクス」を「オフ」にすると、ダイナミクスによる移動と回転の効果が停止します。しかし、他のオブジェクトと衝突し、コネクタやモーターなどの機能も全て有効です。つまり、ただ「動かない」だけであって、ダイナミクスのその他の機能は正常に働いているわけです。この機能は、「障害物」を作る時よく使います。

図624-2

次に、アニメーションの途中でダイナミクスをオフにすると、それまでダイナミクスの働きによって移動、回転していたオブジェクトは、ゆっくりと初期位置に戻って静止します。ゆっくり戻せるのはダイナミクスが働いているからです。この時、初期位置に戻るまでの時間を「ダイナミクス -> トランジッションの間隔」で指定できます。また、戻る時に、衝突を考慮するかどうかを「ダイナミクスの切り替え」で指定できます。

次に、「コネクタ」を使ってダイナミクスをオフにしたオブジェクトをダイナミクスがオンのオブジェクトにリンクすると、間接的ではありますが、ダイナミクスがオンのオブジェクトをマウスやキーフレームで操作できるようになります。これは非常に重要な機能です。

また、「MoGraph選択範囲」を使うと、一部のクローンだけをオンにしたり、オフにしたりできます。

 

このような理由から、普通はダイナミクスのオンオフでダイナミクスの効果をコントロールすべきだと言えます。しかし、このパラメータはオフにしても内部で計算が継続しているため、処理が重くなります。また、計算が継続していることが目に見えないため、思わぬトラブルの原因となるかもしれません。

したがって、複雑なシーンにおいて「このフレームではダイナミクスを全く使わない」とはっきりわかっている場合は、そこで無効にしておくといいでしょう。

また、シーンに非常に多くのクローンがあり、その一部にしかダイナミクスを適用しない、とはっきりわかっている場合は、「MoGraph選択範囲」を使って関係ないクローンのダイナミクスを無効にしておくといいでしょう。

 

 

Step 2

初速

 ダイナミクスの計算では、「初速」を与えることができます。初速とは、ダイナミクスの計算が始まった時にあるオブジェクトが持っている速度のことで、「移動」と「回転」のそれぞれに初速があります。初速の与え方はいろいろありますが、ここでは代表的な三つの方法について説明します。

 

1. 「ダイナミクス -> カスタム初期速度」で直接初速を与える

「カスタム初期速度」をチェックすると、「初期線形速度(初期速度)」と「初期回転速度(初期角速度)」の二つのパラメータが表示されます。ここで、初速を直接ベクトル形式で指定できます。

図624-3

 

2. キーフレームアニメーションから初速を引き継ぐ

キーフレームによって動いているオブジェクトに対して、あるフレームで「ダイナミクス」を「オン」にすると、それ以降はダイナミクスの計算が支配的になり、キーフレームの働きが無視されるようになります。

ただし、ダイナミクスがオンになった時にオブジェクトが持っていた「速度」は、初速としてダイナミクスに引き継がれます。

図624-4

 

3. エフェクタから初速を引き継ぐ

エフェクタによって動いているクローンに対して、あるフレームで「ダイナミクス」を「オン」にすると、それ以降はダイナミクスの計算が支配的になり、エフェクタの働きが無視されるようになります。

ただし、ダイナミクスがオンになった時にクローンが持っていた「速度」は、初速としてダイナミクスに引き継がれます。

図624-5

 

 

Step 3

キーフレームアニメーションとダイナミクスを合成する

 私はステップ2において、「ダイナミクスをオンにすると、キーフレーム等の働きは無視されるようになる」と書きましたが、「フォース -> 位置追従、角度追従」の値を大きくすると、キーフレームやエフェクタの働きがダイナミクスの計算に影響を与えるようになります。

この場合、キーフレームやエフェクタの働きは「一種の外力」として働きます。例えば、キーフレームによって指定された位置と、ダイナミクスによって指定された位置との間にズレがある場合、そこに「仮想的なスプリング」が追加され、そのスプリングの強度を「追従」の値で調整するわけです。

デフォルトでは、「追従」の値が「0」になっているので、このスプリングの働きは全く見えません。

図624-6

 

この機能を使うと、キーフレームアニメーションとダイナミクスアニメーションの中間的な動きを表現できます。またこの機能を使えば、エフェクタやXPresso等が生成した動きをダイナミクスに影響させることができます。

 

 

Step 4

ダイナミクスが適用されたオブジェクトをリンクする

 ダイナミクスの「コネクタ」オブジェクトを使うと、ダイナミクスが適用された2個のオブジェクトをリンクできます。コネクタでリンクできるのは、主としてリジッドボディです。ソフトボディは一応リンクできますが、リンクした部分がかなり「ぶよぶよ」するので、使い方に注意する必要があります。

コネクタの第一の目的は、「自動車の車体と車輪のように、リンクされたオブジェクトを表現する」ことですが、もう一つ「キーフレームやエフェクタ、XPresso等でコントロールされたオブジェクトの動きを、ダイナミクスでコントロールされたオブジェクトに伝える」という重要な働きがあります。この場合、キーフレーム等でコントロールするオブジェクトの「ダイナミクス」は必ず「オフ」にしておいて下さい。

次に、コネクタはMoGraphオブジェクトを使って複製できます。つまり、コネクタを適用したオブジェクトを複製すると、全てのクローンに対してコネクタが働くようになります。

コネクタはいろいろな方法(タイプ)でオブジェクトをリンクできますが、ここでは、よく使う三つの方法について説明します。

1. ヒンジ

「ヒンジ」は、「回転軸」です。この場合、自由な回転軸は一つだけです。回転角度を制限することもできます。

図624-7

 

2. ボールとソケット

「ボールとソケット」は、「ボールジョイント」です。自由な回転軸は三つです。

制限付きのボールジョイントを使いたい場合は、「ラグドール」を選択して下さい。また、自由な回転軸を二つに制限したい場合は、「カルダン」を選択して下さい。

図624-8

3. 固定

「固定」は、その名の通り二つのオブジェクトを固定します。自由な軸はありません。複数の部品で構成されたオブジェクトをダイナミクスで計算する場合、普通は親オブジェクトにダイナミクスボディタグを付け、「衝突判定 -> タグの継承」で「衝突判定形状を合成」機能を使って子オブジェクトを認識させます。

しかし、この方法では、全ての部品に同じ「物性」が適用されます。もし、一部の部品の物性を変えたり、リジッドボディとソフトボディを組み合わせたい場合は、XPressoを使うか、コネクタでリンクするしかありません。

図624-9

 

 

Step 5

リンクしたオブジェクトにスプリングを仕込む

 ダイナミクスの「スプリング」オブジェクトを使うと、「コネクタ」でリンクしたオブジェクトの間にスプリングを追加できます。

スプリングのタイプには、「リニア」と「回転」の2種類があります。ただし、スプリングにはコネクタの機能はないので、「リニア」の場合は「スライダー」コネクタ、「回転」の場合は「ヒンジ」コネクタでリンクしておく必要があります。

図624-10

また、スプリングはMoGraphオブジェクトを使って複製できます。つまり、スプリングを適用したオブジェクトを複製すると、全てのクローンに対してスプリングが働くようになります。

 

 

Step 6

リンクしたオブジェクトにモーターを仕込む

 ダイナミクスの「モーター」オブジェクトを使うと、「コネクタ」でリンクしたオブジェクトの間にモーターを追加できます。

モーターのタイプには、「リニア」と「回転」の2種類があります。ただし、モーターにはコネクタの機能はないので、「リニア」の場合は「スライダー」コネクタ、「回転」の場合は「ヒンジ」コネクタでリンクしておく必要があります。

さらにモーターには、「スピードを調節」と「フォースを適用」の二つのモードがあります。両方ともまず「フォース」または「トルク」で指定された力を加えてオブジェクトを動かします。

次に、「スピードを調節」モードの場合は、スピードが「リニアターゲットスピード」または「回転ターゲットスピード」に達っすると、それ以上スピードが上がらないようになります。「フォースを適用」モードの場合は、際限なくスピードが大きくなります。

図624-11

また、モーターはMoGraphオブジェクトを使って複製できます。つまり、モーターを適用したオブジェクトを複製すると、全てのクローンに対してモーターが働くようになります。

 

 

MoGraph基礎: 1. MoGraphとは何か

MoGraphの基本概念を学び、各機能について学んでいきます。

■講座テキスト

  1. MoGraph基礎: 1. MoGraphとは何か
  2. MoGraph基礎: 2. エフェクタ
  3. MoGraph基礎: 3. エフェクタの制限
  4. MoGraph基礎: 4.組み合わせ

Step 1

たくさんのオブジェクトを効率よく動かす

 MoGraphは、簡単に言うと「たくさんのオブジェクトを、効率よく動かす機能」です。ところが、CINEMA 4Dには他にも似たような機能があります。例えば「パーティクル」や「XPresso」、「ThinkingParticles」、「ダイナミクス」などです。それではなぜ、MoGraphという機能が新しく作られたのか、またMoGraphとその他の機能の関係はどうなっているのか、それを理解するには、まずCINEMA 4Dの「歴史」を振り返る必要があります。

1. CINEMA 4D R4以前

多数のオブジェクトを効率よく動かす機能はありませんでした。

2. R5

XLで標準のパーティクル機能が導入され、多数のオブジェクトを効率よく動かせるようになりました。しかし、あまり複雑なことはできませんでした。また、標準パーティクルの機能はR12まで進化せず、現在でもあまり複雑なことはできません。

3. R6〜R7

COFFEEエクスプレッションが導入され、テキストでプログラムを書けばかなり複雑なことができるようになりました。現在でも複雑な表現をする場合はXPressoの中に入っているCOFFEEノードを使います。

しかし、標準のパーティクルにはCOFFEEと連動するための機能がなく、COFFEEだけで多数のオブジェクトを動かすためには、必要な機能を全て自分で作る必要があり、非常に大変でした。

4. R8〜R9

XPressoとThinkingParticles(TP)が導入されました。XPressoはノードベースのプログラム環境で、COFFEEノードを使うとテキストベースのプログラムを混在させることもできます。また、TPはXPressoの中でパーティクルを扱うための拡張モジュール(ライブラリ)です。

XPressoとTPを組み合わせることで、プログラムを書けない人でも、それなりの機能を簡単に作れるようになりました。しかし複雑な機能を作るには、複雑なXPressoを組んだり、COFFEEを使ってプログラムを書く必要がありました。

5. R10〜R12

多数のオブジェクトを効率よく動かすもう一つの方法として「MoGraph」が導入されました。MoGraphには二つの側面があります。一つは、初心者向けに「プログラムを全く書かずに、XPressoやThinkingParticlesの機能を実現する」こと。もう一つは、上級者向けに「XPressoやThinkingParticlesの機能を拡張すること」です。

MoGraphは、一見初心者向けの機能に見えますが、至る所でXPressoやThinkingParticles、ダイナミクス、パーティクルと連動するようにできています。つまり、MoGraphを「新しい拡張モジュール」と考えれば、これまでのXPressoやThinkingParticlesを超える表現が可能になります。

 

このような歴史を鑑みると、現在のCINEMA 4D R12で最も効率のいい方法は、MoGraphで可能な表現はMoGraphだけで実現し、MoGraphを超える表現については他の機能を組み合わせて実現する、ということになるでしょう。

 

 

Step 2

MoGraphの基本

 MoGraphは非常に巨大な機能です。したがって「基本」を理解することが重要です。MoGraphに限らず、巨大なシステムには必ずしっかりした基本があります。MoGraphは巨大ですが、所詮は基本機能の組み合わせに過ぎません。つまり、基本をよく理解すれば自然と全体が見えてくるのです。例えば「言語」がそうです。「文字(音)」が組み合わさって「言葉」となり、言葉が組み合わさって「文章」となります。MoGraphも同じです。MoGraphの基本は以下の通りです。これについて、以下のステップで詳しく説明していきます。1. MoGraphは、「MoGraphオブジェクト」を使ってクローンを作る。

ここで、「クローン」というのは「たくさんのオブジェクト」という意味です。また、「直接クローンを作る方法」の他に、「何かを参照してクローンを作る方法」や「何かをクローンとみなす方法」があります。

 

2. MoGraphは、「エフェクタ」を使ってクローンをコントロールする。

また、MoGraphには、「MoGraph選択範囲」や「減衰」、「ウエイト」等エフェクタの働きを限定するためのいろいろな方法があります。

 

3. MoGraphは、他のCINEMA 4Dオブジェクトや機能と自由に組み合わせられる。

MoGraphは、普通のオブジェクトを参照して、普通のオブジェクトを作ります。したがって、他のオブジェクトや機能と自由に組み合わせられます。特に「ダイナミクス」や「XPresso、TP」、「Sketch And Toon」との組み合わせは重要です。

 

 

Step 3

直接クローンを作る

1. MoGraphの「クローナー」オブジェクトは、自分の子オブジェクトを複製してクローンを作ります。図601-1オブジェクトを直接複製する「モード」として、まず「線形」や「放射」、「グリッド配列」があります。この場合、「複製数」はクローナーの側で自由に指定できます。

2.  クローナーは複数の子オブジェクトを持つことができます。そして、子オブジェクトは指定した「ルール」にしたがって複製されます。まず、ルールを「反復」と「ランダム」にした場合、以下のように働きます。図601-2

 

次に「ブレンド」ですが、このルールには二つの働きがあります。まず、「同じタイプのプリミティブ」や「ポイント数が同じポリゴン」を入れた場合、ブレンドは「モーフ」として働きます。また、形状だけでなく、ライトに含まれる「色」や「明るさ」等のパラメータもモーフできます。

図601-3

 

また、異なった種類のオブジェクトを入れた場合、ブレンドは以下のように働きます。

図601-4

 

最後に「ソート」ですが、このルールはエフェクタの「クローンを修正」機能を使って操作することを前提としています。したがって、エフェクタを指定しない場合、複数のオブジェクトがあっても最初のオブジェクトしか使われません。

 

3. MoGraphにはクローナーによく似た機能として、「マトリックス」オブジェクトがあります。マトリックスは、言ってみればクローナーの機能の一部だけを取り出したもので、オブジェクトを複製せず、ただ座標だけを作ります。

マトリックスは、座標しか持たない故に「座標だけにデフォーマを適用できる」ことと、「ThinkingParticlesを生成できる」という利点があります。マトリックスについては次のステップ4で詳しく説明します。

 

4. MoGraphの「破砕」オブジェクトを使うと、「既に存在する」たくさんのオブジェクトを直接クローンにできます。この場合、破砕は何も複製しません。

図601-5

 

破砕は、エンジンやキャラクター等たくさんのオブジェクトで構成された複雑なものに、エフェクタやダイナミクスを適用したい場合に便利です。

 

 

Step 4

何かを参照してクローンを作る

1. 他のオブジェクトの上にクローンを並べたい場合は、クローナーのモードを「オブジェクト」に切り替えます。この場合、クローナーはリンクされたオブジェクトを参照し、自分の子オブジェクトを複製してクローンを作ります。参照するオブジェクトには、まず「ポリゴンやスプライン」を指定できます。

図601-6

 

また、「パーティクルやThinkingParticles」も指定できます。

図601-7

 

また、MoGraphの「マトリックス」オブジェクトも指定できます。

図601-8

 

ThinkingParticlesやマトリックスを使うと、間接的にクローナーをXPressoで制御できるようになります。現在のところ、直接クローナーやその他のMoGraphオブジェクトをXPressoで制御することはできません。

また、マトリックスを使うと、「オブジェクトの配列だけ」をデフォーマで変形できるようになります。一般的に、クローナーに直接デフォーマを適用すると、クローンまで変形してしまいます。

図601-9

 

2. 次に、MoGraphの「MoInstance」オブジェクトを使うと、リンクしたオブジェクトの「過去」を参照し、それをクローンにできます。この場合、MoInstanceは「過去のオブジェクト」を複製することになります。

図601-10

 

別の見方をすると、MoInstanceはフレームごとにオブジェクトを新規に複製し、しばらく維持した後消去する、「パーティクルに似たオブジェクト」とも言えます。

MoInstanceは、「時間にしたがって複製する」機能なので、アニメーションを再生していないと働きません。

 

 

Step 5

何かをクローンとみなす

 その他、MoGraphにはオブジェクト以外のもの、つまり「ThinkingParticles」や「文章」、「スプライン内部のポイント」、「押し出したポリゴン」、「ポリゴン1枚1枚」等をクローンとみなし、エフェクタを適用するためのオブジェクトがあります。1. MoGraphの「マトリックス」オブジェクトを使うと、ThinkingParticlesをクローンとみなして、エフェクタを適用できます。図601-11 

ThinkingParticlesは、直接クローナに参照させることもできるのですが、その場合TPの生成や消滅をTP側で制御する必要があります。ところが、マトリックスオブジェクトの「オブジェクト -> 生成 」で「ThinkingParticles」を指定すると、TPの生成や消滅までマトリックスオブジェクトの側で指定でき、操作が楽になります。

 

2. 次に、MoGraphの「MoText」オブジェクトを使うと、文章の「全て」や「行単位」、「単語単位」、「文字単位」をクローンとみなして、エフェクタを適用できます。

図601-12

 

Almost any element can be combined within MoGraph,
which offers you endless creative possibilities.
So take time out to experiment as much as
you can with MoGraph - no matter how crazy
you think an animation may be!
Creating spectacular effects and animations
using simple Primitives is as easy as
1-2-3 using MoGraph.

 

3. 次に、MoGraphの「MoSpline」オブジェクトを使うと、「スプラインを構成するポイント」をクローンとみなして、エフェクタを適用できます。

図601-13

 

また、MoSplineの場合はエフェクタに加えてパーティクルモディファイア(場)も使えます。

図601-14

 

4. 次に、MoGraphの「押し出し」オブジェクトを使うと、「ポリゴンを押し出した部分」をクローンとみなして、エフェクタを適用できます。

図601-15

 

押し出しは、デフォーマと同様に、自分の親オブジェクトや兄弟オブジェクトに対して働きます。

 

5. 次に、MoGraphの「PolyFX」オブジェクトを使うと、「ポリゴン1枚1枚」や「スプラインの断片」、「スプラインセグメント」をクローンとみなして、エフェクタを適用できます。

図601-16

 

PolyFXは、デフォーマと同様に、自分の親オブジェクトや兄弟オブジェクトに対して働きます。

 

 

Step 6

それ以外のMoGraphオブジェクト、シェーダ、ノード

1. 最後に、MoGraphの「トレーサ」オブジェクトについて説明します。トレーサは、リンクしたオブジェクトの「軌跡」からスプラインを生成します。しかしトレーサは、MoGraphオブジェクトとしては例外的に、クローンを作りません。したがって、エフェクタを適用することもできません。図601-17

トレーサは、他のMoGraphオブジェクトやパーティクルと組み合わせて使うための補助的なオブジェクトですが、とても面白い効果を出すことができます。

2. この他に、MoGraphには専用の「シェーダ」と「ノード」があります。これらについては、別の講座で詳しく説明します。

次の章

MoGraph基礎: 2. エフェクタ


MoGraphのクローナーに対して影響を与えるエフェクタについて学びます。

前の章 次の章

Step 1

エフェクタの値で制御できるクローンのパラメータ

 MoGraphオブジェクトを使って作成したクローンは、MoGraphエフェクタを使って制御できます。このステップでは、まず「エフェクタの値」を使って制御できる「クローンのパラメータ」について説明します。1. エフェクタの値を使って、クローンの「位置」や「スケール」、「角度」を制御できます。図602-1ここで、位置と角度については、「パラメータ -> 空間を変形(制御する座標系)」で制御する座標系を「ノード(クローン)」、「エフェクタ」、「オブジェクト」から選択できます。

図602-2

 

また、スケールについては、「パラメータ -> 変形モード(スケールモード)」でスケールの方法を「相対」、「絶対(ウエイト)」、「再マップ(絶対)」から選択できます。

図602-3

 

例えば、エフェクタの値が「0〜100%」まで変化する場合、スケールの値を「5」にすると、「相対」ではスケールが「1〜6」の間で変化し、「絶対」では「1〜5」の間で変化し、「再マップ」では「0〜5」の間で変化するようになります。

 

2. エフェクタの値を使って、クローンの内部に含まれる「ポイント」や「ポリゴン」の位置を制御できます。

図602-4

 

この場合は、エフェクタを「デフォーマ」として使います。そして、クローナー等のMoGraphオブジェクトに限らず、CINEMA 4Dのどんなオブジェクトにでも直接適用できます。

 

3. エフェクタの値を使って、「カラー」を制御できます。また、シェーダやテクスチャを使ってカラーを変えることもできます。

図602-5

 

ただし、「MoSpline」、「押し出し」、「PolyFX」などは色を変えられません。理由は、これらのMoGraphオブジェクトが、クローンを独立したオブジェクトとして作らず、ポリゴンやスプラインの断片を「クローンとみなす」機能だからです。

また、「クローナー -> 変形(変換) -> 表示 -> カラー」を選択すると、クローンのカラーを「色付きのドット」として表示できます。

 

4. エフェクタの値を使って、「ウエイト」を制御できます。

ウエイトは、「エフェクタの値を増減するパラメータ」です。したがって、この機能はエフェクタAの働きをエフェクタBで制御する場合に使います。また、ウエイトは減衰の働きを増減する目的でも使えます(注1)。

それから、ウエイトは他の値を「スケール(つまり乗算、除算)」するのではなく、「増減(加算、減算)」するように働きます。

図602-6

 

他のエフェクタと組み合わせる際には、必ずウエイトを制御するエフェクタが先になるように注意して下さい。エフェクタの順番は、「エフェクタ -> エフェクタ」フィールドに表示されます。

また、「クローナー -> 変形(変換) -> 表示 -> ウエイト」を選択すると、クローンのウエイトを「色付きのドット」として表示できます。

注1. ウエイトは少し難しい概念です。ちょっといじってみて判らなければ、飛ばして先に進んで下さい。

 

5. エフェクタの値を使って、「U変形、V変形(U(縦)、V(横))」を制御できます。

MoGraphは、プリミティブと同じように全てのクローンにUVW座標を生成します。そして、エフェクタの効果はこのUV座標にしたがって計算されます。したがって、もしこのUV座標を変換すれば、エフェクタの効果も変ることになります(注1)。

図602-7

 

このUV座標は、もちろんシェーダやテクスチャを貼るためにも使われ、UV座標を変換すれば、シェーダやテクスチャの効果も変ります。

他のエフェクタと組み合わせる際には、必ずUやVを制御するエフェクタが先になるように注意して下さい。エフェクタの順番は、「エフェクタ -> エフェクタ」フィールドに表示されます。

また、「クローナー -> 変形(変換) -> 表示 -> UV」を選択すると、クローンのUVを「色付きのドット」として表示できます。

注1. U変形、V変形は少し難しい概念です。ちょっといじってみて判らなければ、飛ばして先に進んで下さい。

 

6. エフェクタの値を使って、「クローンを修正(クローンの順番)」を制御できます。

図602-8

 

この順番は、クローナーが複数の子オブジェクトを持っている場合に、どのオブジェクトを複製するかを決めるための順番です。クローンのIDとは違うパラメータなので、混同しないように注意して下さい。

 

7. エフェクタの値を使って、「時間オフセット(開始時間)」を制御できます。

図602-9

 

キーフレームアニメーションが指定されたオブジェクトを複製してクローンにした場合に、アニメーションがスタートする時間を制御できます。

 

8. エフェクタの値を使って、「可視性」を制御できます。

図602-10

 

可視性をチェックすると、エフェクタの値が50%以下のクローンが見えなくなります。

 

 

Step 2

値を1で固定

 MoGraphエフェクタの多くは「エフェクタの値」を持っています。まずMoGraphの「簡易」エフェクタの場合、イフェクトの値は「1」で固定されています。したがってユーザにできるのは、それを適用するパラメータや減衰を指定することだけです。例えば「Y位置」の値を「200」にすると、クローンのY位置は全て「200」になります。これは、イフェクトの値が1に固定されていて、「200*1=200」だからです。

図602-11

簡単なことしかできませんが、その分処理が軽いのでよく使います。

 

 

Step 3

値をランダムに変える

 MoGraphの「ランダム」エフェクタを使うと、エフェクタの値をランダムに変更できます。例えば「Y位置」の値を「200」にすると、クローンのY位置はデフォルトで「-200〜200」の間でばらつくようになります。これは、イフェクトの値が「-1〜1」の間でランダムに変化し、「200*-1= -200〜200*1= 200」だからです。図602-12ここで、イフェクト値の範囲は「エフェクタ -> 最大/最小」で指定できます。

 

また、ランダムモードを「ノイズ」や「タービュランス」にすると、ランダムの値をアニメーションできます。また、ノイズやタービュランスには「スケール」というパラメータがあり、変化のスムーズさや細かさを変えられます。

図602-13

 

 

Step 4

値をシェーダやテクスチャで変える

 MoGraphの「シェーダ」エフェクタを使うと、シェーダやビットマップテクスチャを使ってエフェクタの値を変更できます。例えば「Y位置」の値を「200」にすると、デフォルトでシェーダの値が「0」の位置にあるクローンのY位置は「0」、シェーダの値が「1(100%)」の位置にあるクローンのY位置は「200」になります。

図602-14

 

Step 5

値をサウンドで変える

 MoGraphの「サウンド」エフェクタを使うと、サウンドファイルを使ってエフェクタの値を変更できます。

図602-15

 

サウンドは、周波数ごとにエフェクタの値を変えることができます。この時、低音側が小さなIDのクローンに対応し、高音側が大きなIDのクローンに対応します。また、エフェクタの値は音の強度によって決まります(サウンドファイル)。

 

 

Step 6

値をIDで変える

 MoGraphの「ステップ」エフェクタを使うと、クローンのID(番号)を使ってエフェクタの値を変更できます。

図602-16

 

クローンのIDは、「ウエイト」や「UV座標」とはまた違ったパラメータなので、混同しないように注意して下さい。

ステップの場合、エフェクタの値は「ID/クローンの総数」になります。

 

 

Step 7

値を時間で変える

 MoGraphの「タイム」エフェクタを使うと、時間(CINEMA 4Dのタイムライン)を使ってエフェクタの値を変更できます。タイムを使うと、キーフレームを打たずに、クローンに連続的な動きを指定できます。図602-17タイムの場合、「1秒」がエフェクタ値の「1(100%)」に対応します。

当然ですが、タイムは「時間にしたがって変える」機能なので、アニメーションを再生していないと働きません。

 

 

Step 8

値が戻るのを遅らせる

 MoGraphの「ディレイ」エフェクタは、他のエフェクタによって変更されたクローンの「位置」や「スケール」、「角度」の値が元に戻るのを遅らせる働きをします。つまり、ディレイ自身は何もしないので、必ず他のエフェクタと組み合わせる必要があります。

図602-18

 

ディレイを他のエフェクタと組み合わせる際には、必ずディレイが後になるように注意して下さい。エフェクタの順番は、「エフェクタ -> エフェクタ」フィールドに表示されます。

また、ディレイは他のエフェクタの働きを「時間にしたがって変える」機能なので、アニメーションを再生していないと働きません。タイムマーカーが止まっている場合、結果的に他のエフェクタの働きも止まってしまうので、注意して下さい。

また、このエフェクタは固有の「値」を持たないので、それ以外のパラメータを変更することはできません。

 

 

Step 9

ターゲットオブジェクトから情報を継承する

 MoGraphの「継承」エフェクタは、リンクされたオブジェクトの「位置」、「スケール」、「角度」の値を直接クローンに入力します。また、ターゲットオブジェクトがキーフレームアニメーションを持っている場合、継承の「遅れ」を指定することもできます。図602-19ただし、このエフェクタは固有の「値」を持たないので、それ以外のパラメータを変更することはできません。

 

 

Step 10

スプラインに沿って並べる

 MoGraphの「スプライン」エフェクタを使うと、スプラインに沿ってクローンを並べることができます。

図602-20

 

ただし、このエフェクタは固有の「値」を持たないので、それ以外のパラメータを変更することはできません。

 

 

Step 11

ターゲットオブジェクトの方向を向ける

 MoGraphの「ターゲット」エフェクタは、リンクされたオブジェクトの方向にクローンを向けます。

図602-21

 

また、ターゲットオブジェクトが近づいた場合に、それを避けるようにクローンを移動させることもできます。この機能をカメラに適用すると、カメラがクローンにぶつからなくなります。

ただし、このエフェクタは固有の「値」を持たないので、それ以外のパラメータを変更することはできません。

 

 

Step 12

その他のエフェクタ

1. MoGraphの「グループ」エフェクタを使うと、複数のエフェクタをグループ化し、一つのエフェクタとして扱うことができます。2. MoGraphの「COFFEE」エフェクタを使うと、COFFEEスクリプトを使ってエフェクタの値を変更できます。

 

3. MoGraphの「数式」エフェクタを使うと、エフェクタの値を数式で変更できます。

 

4. MoGraphの「ボリューム」エフェクタを使うと、ポリゴンオブジェクトの内部にあるクローンに対してエフェクタの値を「1」にします。

 

前の章 次の章

MoGraph基礎: 3. エフェクタの制限


エフェクタの働きを制限するための機能であるMoGraph選択範囲と減衰について学びます。

前の章 次の章

Step 1

MoGraph選択範囲

 MoGraphには、エフェクタの働きを制限するための方法がいくつか用意されています。一番直感的なのが「MoGraph選択範囲」で、クローンを直接クリックして選択範囲を作成できます。図603-1

MoGraph選択範囲の使い方は、基本的にCINEMA 4Dのポリゴン選択範囲やポイント選択範囲と同じです。つまり、選択範囲を作るとクローナーの右側に「MoGraph選択範囲タグ」ができます。このタグをエフェクタの「選択範囲」フィールドにドラッグアンドドロップして下さい。

MoGraph選択範囲はいくつでも作成できます。また、MoGraph選択範囲の値は、「選択されている、いない」のどちらかで、中間値は持てません。

 

次に、MoGraph選択範囲は、クローナーやエフェクタからは変更できません。また、キーフレームアニメーションもできません(注1)。ただし、XPressoの「MoGraph選択範囲」ノードを使うと、値を取り出したり書き換えることができます。これはMoGraph選択範囲の利点です。

注1. 複数のMoGraph選択範囲を作成し、それらを切り替えるアニメーションは作れます。

図603-2

 

次に、MoGraph選択範囲を使うとダイナミクスの働きも制限できます。これがMoGraph選択範囲の最大の利点です。

図603-3

 

 

Step 2

減衰

 エフェクタの側に「減衰」を指定すると、エフェクタの働きを「ある範囲、領域」に限定できます。減衰はエフェクタの側で指定するもので、基本的にはCINEMA 4Dのデフォーマやパーティクルモディファイアが持っている影響範囲の機能と同じです。

図602-4

MoGraph選択範囲と違って、減衰は中間値を持てます。また、減衰は、キーフレームアニメーションをつけたり、XPressoで制御することができます。ただし、エフェクタからは制御できません。

また、当然のことですが、減衰はエフェクタの側に指定するものなので、クローン一個一個を区別して働きを変えることはできません。

 

次に、減衰で指定できるほとんどの形状は閉じていて、つまり「内側」と「外側」があります。そして、内側と外側のどちらの働きを制限するか指定できます。

図602-5

 

ただし、「線形」形状だけは開いていて、世界を「前」と「後」の半分に分け、どちらかの働きを制限できます。

図602-6

 

次に、エフェクタと同様に、減衰もウエイト機能を使って制限できます。

図602-7

 

ただし、ウエイトの値は乗算ではなく加算されるので、実質的には「減衰の強度」を変えるというよりも、「減衰の範囲」を変えるように働きます。

 

 

Step 3

ウエイト

 ウエイトは各クローンが持っている値で、「エフェクタの影響を受ける程度」を決定します。まず、クローンが作られた段階では、全てのクローンが「1(100%)」のウエイトを持っています。そして、エフェクタの影響を完全に受けます。したがって、クローンがエフェクタの影響を受けないようにするには、「-1」のウエイトを追加(加算)してウエイトの値を「0」にする必要があります。

図603-8

 

減衰と同様に、ウエイトも中間値を持てます。また、ウエイトはエフェクタを使って自由に制御できます。これがウエイトの最大の利点です。ただし、XPressoで制御したり(注1)、キーフレームアニメーションをつけることはできません。

注1. XPressoを使うと、ウエイトの値を取り出すことができます。しかし、値を書き換えることはできません

 

前の章 次の章

MoGraph基礎: 4.組み合わせ


MoGraph同士やモーグラフと他のオブジェクトや機能との組み合わせを学びさらに表現の幅を広げます。

前の章

Step 1

MoGraphの階層化

 MoGraphは「普通のオブジェクト」です。つまり、MoGraphは普通のオブジェクトを参照し、普通のオブジェクトを子オブジェクトにし、普通のオブジェクトを生成します。当たり前のことと思うかもしれませんが、実はこれが一番重要な機能です。なぜなら、インターフェイスが「普通のオブジェクト」で統一されているおかげで、MoGraphを自分自身や、またCINEMA 4Dの他のオブジェクトと自由に組み合わせられるからです。これによって、MoGraphの表現の幅は「爆発的に」広がります。1. MoGraphは、自由に階層化できます。つまり、MoGraphは他のMoGraphオブジェクトが生成したオブジェクトを複製できます。図604-1 

2. MoGraphは、他のMoGraphオブジェクトが生成したオブジェクトを参照できます。

図604-2

ただし、参照するオブジェクトは「一個」でなければならないので、「一体化」オブジェクトを使って多数のクローンを一個にまとめて下さい。

 

 

Step 2

デフォーマと組み合わせる

1. MoGraphが生成するポリゴンやスプラインは、デフォーマで変形できます。図604-3

この場合、デフォーマを適用する相手は、「元オブジェクト(立方体)」の他に「参照するスプライン(円形)」や「MoGraphが生成したポリゴン」の3通りがあるわけです。

 

デフォーマもMoGraphもオブジェクトの階層構造を利用して機能します。例えば、デフォーマをMoGraphオブジェクトの「子オブジェクト」にした場合、もちろんデフォーマは正しく働きますが、同時にMoGraphによって複製されてしまいます。そして、これは正しくありません。

このような問題を解決するために、デフォーマは「兄弟オブジェクト」にも働くように設計されています。つまり、ヌルオブジェクトを作ってその中にMoGraphオブジェクトとデフォーマを並べれば、デフォーマは正しく働き、複製されることもなくなります。

図604-4

 

また、実はMoGraphオブジェクトには、リンクを指定しなくても親オブジェクトを参照する機能があります。しかし、参照するオブジェクトを階層構造で指定すると、アニメーションをつけたり、デフォーマやモデリングオブジェクト、NURBSなどを適用する際に機能がぶつかる可能性があります。なぜなら、これらの機能も階層構造を利用して機能するからです。

したがって、参照するオブジェクトを指定する場合は、なるべく階層構造を使わず、直接リンクで指定するようにして下さい。

図604-5

 

 

Step 3

NURBSと組み合わせる

1. MoGraphが生成するスプラインは、「押し出しNURBS」や「回転NURBS」、「ロフトNURBS」、「スイープNURBS」と組み合わせてポリゴンオブジェクトを作ることができます。図604-62.

MoGraphが生成するポリゴンは、「HyperNURBS」に入れて丸めることができます。図604-7

 

 

Step 4

モデリングオブジェクトと組み合わせる

1. MoGraphが生成するポリゴンやスプラインは、ブール演算できます。図604-8ただし、ブール演算するとクローン全体が一個の新しいポリゴンに変換されます。そして、この時クローンが持っていた「カラー」などの属性は失われてしまいます。

 

2. MoGraphが生成するオブジェクトは、メタボール化できます。

図604-9

 

ただし、メタボール化するとクローン全体が一個の新しいポリゴンに変換されます。そして、この時クローンが持っていた「カラー」などの属性は失われてしまいます。

 

3. MoGraphが生成するポリゴンは、アトム化できます。アトムは、MoGraphのご先祖様のような機能です。

図604-10

 

ただし、アトム化するとクローン全体が一個の新しいポリゴンに変換されます。そして、この時クローンが持っていた「カラー」などの属性は失われてしまいます。

 

4. MoGraphが生成するオブジェクトは、インスタンス化できます。インスタンスも、MoGraphのご先祖様のような機能です。

図604-11

 

 

Step 5

パーティクルと組み合わせる

1. MoGraphが生成するオブジェクトは、パーティクルで飛ばせます。パーティクルも、MoGraphのご先祖様のような機能で、簡単に使えます。

図604-122.

MoGraphが生成するオブジェクトは、ThinkingParticlesで飛ばせます。ThinkingParticlesは、MoGraphのご先祖様のような機能で、難しいですが、MoGraphの機能を「劇的」に拡張できます。図604-13

 

また、MoGraphが生成したクローンを参照し、そこ(クローンの軸)からTPを飛ばすこともできます。

図604-14

 

ただし、ThinkingParticlesが参照できるのは「編集可能なポリゴン」だけなので、クローンを構成するポイントからTPを飛ばすことはできません。

 

 

Step 6

その他の機能と組み合わせる

1. MoGraphが生成するオブジェクト(クローン)は、XPressoの「新規 -> モーショングラフィックス -> モーションオブジェクト -> データ」ノードを使って値を読むことができます。XPressoも、MoGraphのご先祖様のような機能で、難しいですが、これもMoGraphの機能を「劇的」に拡張できます。データノードの使い方については、前のステップの図604-14を参照して下さい。ただし、XPressoを使って直接クローンを制御することはできません。XPressoでクローンを制御するには、「ThinkingParticles」か「マトリックスオブジェクト」、「ダイナミクス」を間にはさむ必要があります。

また、「MoGraphオブジェクトそのもの」や、「MoGraphエフェクタ」、「MoGraph選択範囲」などは、XPressoで自由に制御(読み書き)できます。その場合は「MoGraph選択範囲」や「サンプル」、「減衰」ノードを使います。

 

2. MoGraphが生成するオブジェクトは、ダイナミクスを使って物理シミュレーションすることができます。

図604-15

 

ダイナミクスの働きは、MoGraph選択範囲を使って制限できます。また、XPressoで「新規ノード -> ダイナミクス -> 一般 -> ダイナミクスボディ状態」ノードを使うと、ダイナミクスの働きを自由に制御(読み書き)できます。

 

3. MoGraphが生成するオブジェクトは、Sketch And Toonを使って線画にできます。Sketch And Toonも、実はMoGraphのご先祖様のような機能で、難しいですが、MoGraphと組み合わせることによって、これまでにない表現が可能になるはずです。

図604-16

 

以上、三つの機能については、別の講座で詳しく説明します。

 

前の章

モデリング基礎 1: 準備

■講座テキスト

  1. モデリング基礎 1: 準備
  2. モデリング基礎 2: 前面ガラス
  3. モデリング基礎 3: ホームボタン
  4. モデリング基礎 4: ボディ
  5. モデリング基礎 5: 背面カメラ
  6. モデリング基礎 6: スイッチ
  7. モデリング基礎 7: コネクタ
  8. モデリング基礎 8: スタジオ撮影
題名 内容、及び関連する章 作成日/注記
101 1_準備 作るものを決める、iPod Touch 4、資料を集める、図面を描く、ダミーオブジェクト、テクスチャを作る、テクスチャプレビュサイズ、 2011.8.14

 

Step 1

作るものを決める、iPod Touch 4

CINEMA 4Dで何かを「モデリング」する際に、まず最初に考えなければいけないのは、「それを作るべきか」ということです。3DCGに限らず全ての技術に共通することですが、技術には必ず「得意」と「不得意」があります。また、3DCGにおいても、各ソフトごとに得意、不得意があります。例えばCINEMA 4Dで建築CGを作る場合、「建築物本体」は簡単に作れます。しかし、「添景」であるはずの「樹木」や「人物」を作るのは非常に困難です。このような場合、可能なら樹木や人物はCINEMA 4Dの中で作らず、レンダリング後に実写画像を2Dで合成してしまった方が楽で、しかも高品質に仕上がります。

今回は、「小物」ということで「第4世代のiPodTouch」を作りますが、その理由は「CINEMA 4Dで作りやすい」からです。同じ小物でも、「ぬいぐるみが付いた携帯ストラップ」などは非常に作りにくいので、余程のことがなければ作らない方がいいです。

中には「仕事なので作るものを自分で選べない」という人もいるかもしれません。しかし、明らかに3DCGに向いていないものを作る仕事が来た時は、理由を述べた上で断った方がいいと思います。無理して作っても、十分な品質に達しなければ、どのみちその仕事は長続きしません。

 

次に、何かを作ると決めた時に考えなければならないのは、「どうやって作るか(方法、手順)」ということと、「どこまで作るか(程度、品質)」ということです。これらは、クライアントの要望、納期や予算、自分の能力などから逆算して決定していくことなので、条件によって大きく変わります。つまり、一概に「この方法が一番いい」とは言えません。

例えば、今回私がこの講座で説明するモデリング方法も、「CINEMA 4Dを少し使える人が2日間で作れる」という条件の中で考えたもので、「この方法が最善である」とか「全ての場合にこの方法が使える」、というわけでは決してありません。

したがって、モデリング作業を始める前に「どうような方法で、どこまで作り込むか」、を十分に決めておくにはかなりの知識と経験が必要です。特に初心者にとっては「全く見当がつかない」かもしれません。しかし、これはとても重要なことなのです。「全く見当がつかないから、行き当たりばったりで適当に作ってみよう」では、いつまでたっても上達しません。見当がつかないなりに、計画的に作業を進めるように心がけて下さい。

 

 

Step 2

資料を集める

何を作るにしても、資料集めは非常に重要な作業です。ここで手を抜くと、作品の品質が下がるだけでなく、作業効率自体も低下します。なぜなら、前のステップで説明した「どうような方法で、どこまで作り込むか」ということは、資料集めをしながら平行して考えるものだからです。考えながら資料を探せば、短期間で必要充分な資料を集められます。それに対して無計画に資料を集めると、「使えない資料ばかりあって、必要な資料がない」ということになります。しかし、昔と違って資料集めはずいぶん楽になりました。インターネットで多くの情報を収集でき、またスキャナやデジカメを使って資料を集めれば、直接それらの資料をテンプレート(下敷き)としてモデリング作業を進められます。今回はiPodTouchの分解写真を公開している次のサイトと、iPodTouchの実物、およびそれをスキャナで取り込んだ画像を元にしてモデリングしました。

1. iPodTouchの分解写真を公開しているサイト

 

2. iPodTouchの実物

図101-1

 

3. スキャナで取り込んだ画像

図101-2

 

 

Step 3

図面を描く

何を作るにしても、図面書きは非常に重要な作業です。なぜなら、図面を描く作業を通じて、ステップ1で説明した「どうような方法で、どこまで作り込むか」ということをより細かく考えられるからです。また、自分の手で図面を描くことで、モデリングするものの形状、構造、数値などが頭の中に明快に刻み込まれます。最初に図面を頭の中に入れておけば、モデリング中の試行錯誤や失敗を最小限に減らせます。場合によりけりですが、納期の1/4程度は資料集めや図面を描く作業に当てるべきです。ところが、私がこのように言うと、ほとんどの人は「忙しくてそんな時間は取れない」と答えます。しかし、作るものの形状や構造を頭に入れずにいきなりモデリング作業を始めても、「ズレ」や「はみ出し」が頻発し、「失敗」や「作り直し」の連続になります。納期の1/4ぐらいは簡単に失われますし、時間内に全ての「失敗」を修正できず、出来の悪い作品になってしまいます。

忙しいとか、時間がないと言う人は、「なぜ忙しくなってしまうのか」について一度考えてみて下さい。

 

3DCGに限らずなんでもそうですが、「失敗」は「修正するもの」ではなく「発生させないもの」です。つまり、失敗を発見してから図面を確認しているのでは遅いのです。なぜなら、その時には他にもいろんな失敗が発生していて、ただ図面が頭に入っていないあなたにはそれが見えていないだけだからです。発見されない失敗は修正されません。

 

それから、「図面は既にあるので、わざわざ描き直す必要はない」という人もいます。しかし「図面がある」ということと、「図面が頭に入っている」ということは全く別です。その図面を自分が描いたのならいいですが、他人が描いた図面をただ持っているだけではほとんど役に立ちません。その図面を理解するために、自分で描き直すことをお勧めします。

改めて書きますが、図面を描くのは、「早くきれいに」作品を作るためです。また、「図面を描くのが面倒」という人は、そもそも3DCGをやらない方がいいです。図面を描くよりずっと面倒ですから。

 

下の図は、この講習で使う図面の例です。これは講習会用ということでCADソフトを使って清書していますが、みなさんが自分の作品を作る時はもちろん手描きで構いません。私も最初は手描きの図面を使ってモデリングしました。今回は、このような図面を13枚描きました。かかった時間は、資料集めと図面描きに1日(テクスチャ作成も含む)、モデリング(マテリアル作成やレンダリングも含む)が2日です。

図101-3

図面を全てダウンロード(PDF形式)

 

 

Step 4

ダミーオブジェクトを作る

モデリング作業をする時には、「ダミーオブジェクト」を作っておくといろいろな作業を効率よく進めることができます。ダミーオブジェクトというのは、これからモデリングするオブジェクトを直方体などのプリミティブで置き換えたもので、ほとんどの場合「幅、奥行き、高さ」などの値しか合っていません。しかし、このダミーオブジェクトにスキャナで取り込んだ画像を貼ると、そこから部品の位置や大きさ、形状を求めたり、テクスチャを作成することができます。 図101-4

図101-4の下に見えるのがダミーオブジェクトで、それを下敷きにしてボディ背面のロゴや文字を直接スプラインで作成しています。こうすれば、図面を起こす必要がなく、短時間で正確なテクスチャを作成できます。

テクスチャをこのような目的に使う場合、デフォルトのままでは解像度が足りません。マテリアル編集から「エディタ」パネルを開き「テクスチャプレビュサイズ」の値を大きくすると、十分な解像度のテクスチャをエディタに表示できます。

図101-5

ただし、テクスチャプレビュサイズを大きくするとそれだけ多くのメモリを必要とします。とは言っても、現在の標準的なPCであればほとんど気にする必要はありません。

 

 

Step 5

テクスチャを作る

今回は次の4種類のテクスチャを作成しました。テクスチャの作成は基本的に2Dの作業なので、詳細については省略します。私は全てCINEMA 4Dの中で作成しましたが、IllusutratorやPhotoshop等自分の使いやすいソフトを使って下さい(全てのテクスチャをダウンロード)。また、今回は部品をモデリングする時にIBL(イメージベースドライティング)を含んだシーンを使っています。IBLを使うと、オブジェクトのマテリアルがリアルに表現され(特に透過、鏡面反射、ハイライトチャンネルなど)、正確なマテリアルを作れます。IBLを使うにはHDRパノラマ画像が必要です(手持ちのHDR画像がない場合は、照明基礎の講習で使ったHDR画像(24MB)をダウンロードして下さい)。1. フロントガラス背面に印刷してあるマスク

図101-6

スキャナで取り込んだ画像を下敷きにして作成しました。解像度は「1130*2172ピクセル」になっています。フロントガラスの大きさが「56.5*108.6mm」なので、1mmが20ピクセルに相当するようにしました。こうしておくと、Photoshopの単位とCINEMA 4Dの単位がそろうので作業が楽になります。

 

2. 液晶画面

図101-7

iPodTouchのスクリーンショット機能を使って作成しました。iPod Touchでは、「ホームボタン」と「スリープボタン」を同時に押すと、「写真 -> カメラロール」の中にスクリーンショットが保存されます。今回は全部で6枚のスクリーンショットを使いました。解像度は「640*960ピクセル」になっています。

 

3. ホームボタンのマーク

図101-8

スキャナで取り込んだ画像を下敷きにして作成しました。解像度は「200*200ピクセル」になっています。これも1mmが20ピクセルに相当するようにしました。

 

4. ボディ背面にエッチングしてあるロゴと文字

図101-9

スキャナで取り込んだ画像を下敷きにして作成しました。解像度は「1178*2220ピクセル」になっています。これも1mmが20ピクセルに相当するようにしました。

次の章ヘ

モデリング基礎 2: 前面ガラス

題名 内容、及び関連する章 作成日/注記
102 2_前面ガラス 前面ガラス、押し出しNURBS、フィレット、正方形分割、細分化、ブール、テクスチャ、アルファ、選択範囲に限定、平行投影、オブジェクトに合わせる、C1、フレネル鏡面反射、拡散鏡面反射、液晶、 2011.8.14

 

Step 1

前面ガラス(Front_Glass)

それでは前面ガラスからモデリングを始めます。

図102-1

図面(PDF)

完成した部品ファイル

 

作業に入る前に、テンプレートファイルHDRパノラマ画像(24MB)をダウンロードして下さい。

 

前面ガラスは比較的簡単に作れます。まず、図面にしたがって「長方形」スプラインを作成し、押し出しNURBSを使って立体化します。この時、大きさ「0.2」の「フィレット」を与えて下さい。これは現物を見て決めるものなので、元の手描き図面には書いてありませんでした。

また、キャップの分割を「N-gons」から「四角形」に変更し、「正方形分割」オプションを選択します。そして「幅」の値を「2」に指定して下さい。さらに、断面スプラインの「補間法」を「細分化」に切り替え、「最大長」の値を「2」に指定します。こうすることで、複雑なモデリングや変形のアニメーションを追加しても面が壊れなくなります。

図102-2

 

次に、「ブール」オブジェクトを使ってホームボタンが入る穴を開けます。「スプラインマスク」オブジェクトを使って断面スプラインの段階で穴を開けてもいいのですが、そうすると穴の部分にも周囲と同じ「0.2」のフィレットがかかってしまいます。

ブールを使うと、今度は穴の周囲に全くフィレットを取れなくなってしまいますが、「2日間で作れる程度の品質」が前提なのでこれでよしとします。もし、どうしてもフィレットが必要な場合は、ブールを確定させた後ポリゴンモデリングします。

図102-3

 

 

Step 2

前面ガラスのマテリアルとテクスチャ

前面ガラスのマテリアルは少し複雑です。前面ガラスには「マスク(glass_mask)」、「表面(glass_front)」、「裏面(glass_back)」、「エッジ(glass_sand)」の4種類のマテリアルが適用されていて、マスクにはテクスチャも含まれるからです。しかし、幸いなことにこれらのマテリアルは全て「選択範囲に限定」機能を使って簡単に切り分けられます。

まず、「マスク」マテリアルを作成し、アルファチャンネルにマスク画像のテクスチャを読み込み、押し出しNURBSに適用します。しかし、デフォルトの「投影法」が「UVWマップ」になっていて、キャップにはUV座標がないので、テクスチャは表示されません。

そこで投影法を「平行」に切り替え、テクスチャ軸を回転させてキャップに合わせます。そして「オブジェクトに合わせる」機能を使って、マスクの大きさを前面ガラス全体に正確に合わせます。

次に、「選択範囲に限定」に「C1」を指定します。これは「押し出しNURBSの裏側のキャップだけ」という意味です。

図102-4

 

次に、ガラスのマテリアルを作ります。ガラスのマテリアルは、通常裏表で同じですが、iPodTouchをよく見ると、ガラスの表面が光をよく反射するのに対して、裏面はほとんど反射しません。これは、表面が「撥水、発油コーティング」されていて、裏面が「反射防止コーティング」されているためだと思われます。

細かいことですが、簡単に変更できるので、今回は変えてみました、ガラスの表面と裏面で違っているのは、「透過」チャンネルの「フレネル鏡面反射度」の値だけです。この値が、表面は「100」、裏面は「30」になっています。気にならなければ、表裏同じでも構いません。

図102-5

次に、ガラス周囲のマテリアルを作ります。ガラス周囲の部分は切断した後磨いていないので、砂目になっています。これを表現するために今回は「拡散表面反射」機能を使いましたが、レンダリングが重くなるので「透過」チャンネルを切っています。

計算時間が気にならなければ透過チャンネルを入れても構いませんし、見た目が気にならなければ拡散鏡面反射を切っても構いません。自分の目で見て判断して下さい。

最後に、iPodTouch用に作ったマテリアルを新規レイヤにまとめ、レイヤの名前を「iPodTouch」に変更します。

 

 

Step 3

液晶(LCD)

次に液晶を作ります。これ以降の部品のモデリングは、前に作った部品のシーンファイルを変更しながら作っていくようにします。こうすると、前のシーンで作ったオブジェクトやマテリアルを簡単に流用できます。

図102-6

図面(PDF)

完成した部品ファイル

 

液晶の作り方も簡単です。図面にしたがって、「立方体」と「平面」を組み合わせるだけでできます。

内側に収まっている部品でもあり、分割する必要はほとんどありませんが、「iPodTouchが飛び跳ねる」というようなアニメーションを作る場合を考えて、一応分割してあります。

図102-7

 

次に、液晶にマテリアルを適用します。液晶の本体部分は液晶の表示部分よりも少し大きく、真っ黒です。

液晶の表示部分は、バックライトによって発光するわけですから、マテリアルでもiPodTouchのスクリーンショットを「発光」チャンネルを読み込みます。今回は、オブジェクトがUV座標を持っている「平面」なので、マテリアルを適用するだけで正しく貼れます。

図102-8

 

前の章ヘ 次の章ヘ

 

モデリング基礎 3: ホームボタン

題名 内容、及び関連する章 作成日/注記
103 3_ホームボタン ホームボタン、ブール、スプラインマスク、ナイフ、フレネル、オブジェクトに合わせる、一体化、セグメントを連結、前面カメラ、オイルタンク、スプライン描画、拡散鏡面反射、サイドフレーム、 2011.8.15

 

Step 1

ホームボタン(Home_Button)

次にホームボタンを作ります。

図103-1

図面(PDF)

完成した部品ファイル

 

ホームボタンの形状は、図面からわかる通り「円柱」と「球体」を合成した形状になっています。したがって、作り方としては以下の3通りがあります。それぞれよく使うモデリング方法なので、ここでは全て説明することにします。

1. ブールオブジェクトを使って、直接円柱から球体を引く。

図103-2

これが一番簡単な方法です。しかしこの方法では、球体の分割数を縦横別々に変えられないため、「放射方向の分割数が足りなくなる」という問題が発生します。また、フィレットを取ることもできません。

 

2. スプラインマスクオブジェクトを使って、長方形から円形を引いた断面スプラインを作成し、それを回転NURBSで立体化する。

図103-3

これが二番目に簡単な方法です。スプラインマスクが二つのスプラインを自動的につないでくれるので、編集ツールを使って面倒な作業をする必要がありません。しかし、断面スプラインとして使うには、一度編集可能にしてナイフで半分に切る必要があります。そして、この時スプラインのタイプが「線形」になり、曲線が多数の直線に変換されてしまいます。

 

3. 編集ツールを使って、直接長方形から円形を引いた断面スプラインを作成し、それを回転NURBSで立体化する。

図103-4

これが一番面倒な方法ですが、同時に一番きれいに作れる方法でもあります。今回はこの方法を採用することにします。

スプラインをナイフで切るところまでは前の方法と同じですが、その後二つのスプラインを「一体化」し、接続するポイントを一致させ、「セグメントを連結」機能を使って一本のスプラインにまとめます。こうすると、スプラインのタイプは「ベジェ」のままで、曲線もそのまま保たれます。

 

オブジェクトができたら、マテリアルを作成します。

図103-5

ホームボタンにはマークが付いているので、ベースの部分とマークの部分の二つのマテリアルを作成します。鏡面反射チャンネルにフレネルシェーダを使っているのは、周囲のガラスのマテリアルと反射率を合わせるためです。

マークのテクスチャも、大きさをオブジェクトに合わせて作成してあるので、「オブジェクトに合わせる」機能を使って簡単に貼れます。

 

 

Step 2

前面カメラ(Front_Cam)

次に前面カメラを作ります。

図103-6

図面(PDF)

完成した部品ファイル

前面カメラは、「ボディ」、「レンズ」、「レンズフード」の3個の部品からできています。カメラは、基本的にボディ内部に収まっていて外部からはほとんど見えない部品ですが、その割には目立ちます。理由は、iPodTouchのデザインがシンプルであることと、レンズという部品が元々目立つ性質を持っているからです。

人間に限らず、生物は全て本能的に他の生物の「目」を気にします。そしてレンズは、「丸い」、「透明」、「鏡面反射する」といった生物の目と共通する性質を持っているのです。このような部品は、小さくても丁寧に作る必要があります。

まず、ボディは「立方体」オブジェクトで、レンズは「オイルタンク」オブジェクトで作ります。

図103-7

 

次に、レンズフードは回転NURBSで作ります。断面スプラインは、「線形」スプライン描画ツールを使って作成します。

図103-8

 

オブジェクトができたら、マテリアルを作成します。

図103-9

ボディとレンズフードはABSというプラスチックでできています。表面が微妙にザラついていて、つやのあるマテリアルで、これを表現するために「バンプ」チャンネルと「拡散表面反射」機能を使いました。レンズは、透過チャンネルを省略し、「鏡面反射」チャンネルだけで表現しています。

 

 

Step 3

サイドフレーム(Side_Frame)

次にサイドフレームを作ります。

図103-10

図面(PDF)

完成した部品ファイル

サイドフレームは、スイープNURBSで作成します。

図103-11

オブジェクトができたら、マテリアルを適用します。サイドフレームのマテリアルは、前面カメラで使った「ABS_black」をそのまま使います。

前の章ヘ 次の章ヘ

モデリング基礎 4: ボディ

題名 内容、及び関連する章 作成日/注記
104 4_ボディ ボディ、ガイドスプライン、対称オブジェクト、ポリゴンモデリング、エッジカット、押し出し、縫い合わせる、 2011.8.16

 

Step 1

ボディ(Body)、ガイドスプライン

次にボディを作ります。 図104-1

図面(PDF)

完成した部品ファイル

ボディは、おそらく今回作るオブジェクトの中で最も難しい形状をしています。それは、数値でうまく指定できない不規則な曲面を含んでいるからです。したがって、ポリゴンモデリングで作るしかありません。

ポリゴンモデリングを使えばどんな不規則な曲面でも表現できますが、今度は曲面のスムーズさを保つのが難しくなります。そこで、「ガイドスプライン」を使うことにします。スナップ機能を使ってポリゴンオブジェクトをガイドスプラインにスナップさせれば、少なくともスナップさせた部分についてはスプラインと同等のスムーズさを保つことができます。

 

図104-2

今回は、ボディー外周と裏側の曲面部分の2ヶ所に対してガイドスプラインを作成しました。裏側の曲面は縦横方向とも同じスプラインを使っていて、それぞれ対称オブジェクトで複製しています。

 

 

Step 2

ボディ(Body)、ポリゴンモデリング

ガイドスプラインができたら、次に立方体を元にしてポリゴンモデリングを進めていきます。 図104-3

ポリゴンも実際に作るのは1/4だけで、これを対称オブジェクトを使ってXY軸とYZ軸に複製し、さらにHyperNURBSで丸めています。

 

次に、エッジカットを使って曲面になる部分を細分化し、角のポイントを外周スプラインにスナップさせていきます。

図104-4

スナップのターゲットは「スプライン」でもいいのですが、これだとスプライン上を連続的に動いてしまい、ポリゴンを均等に分割できません。そこで、あらかじめスプラインを等分割しておき、「(スプラインの)ポイント」をターゲットにしました。

最後に全てのオブジェクトをグループ化して裏返しました。こうするとボディー裏側の曲面を編集しやすくなります。

 

次に、ボディ裏側の曲面部分のポイントをガイドスプラインにスナップさせていきます。角の部分は、両方のガイドスプラインの中間的な値になるので残しておきます。

図104-5

 

次に、ボディ裏側の角の部分を整形します。この部分の編集はまさに「目分量」になります。マテリアルを適用する前の段階ではよくわからないので、マテリアルを適用した後で「シワ」、「歪み」等の問題があるようだったらここまで戻って修正して下さい。

ざらついたマテリアルの場合はほとんど問題になりませんが、iPodTouchではこの部分が鏡面になっているので、ほんのわずかな歪みでも目立ちます。

図104-6

HyperNURBSを使ったポリゴンモデリングで一番重要なのは、ポリゴンの構成とその形状です。HyperNURBSを使うと、実は三角ポリゴンも四角ポリゴンも四角ポリゴンに細分化されます。しかし、その形状は大きく異なります。四角ポリゴンでは、元の形状と相似形の四角ポリゴンに細分化されるのに対して、三角ポリゴンでは歪んだ四角形に細分化されます。そして、この歪みは三角形が細長くなる程厳しくなり、またその部分が強く曲がっている程「シワ」となって見えてきます。

したがって、なるべく三角ポリゴンが少なくなるようにポリゴンを分割して下さい。また、三角ポリゴンの形状はなるべく「正三角形」に近づけて下さい。また、なるべく曲率の小さい部分に三角ポリゴンを持ってくるようにして下さい。

 

 

Step 3

ボディ(Body)、押し出し

ベースとなるポリゴンができたら、これを押し出して立体化します。 図104-7

対称オブジェクトを使ってモデリングしているオブジェクトを押し出した場合、断面部分に不要なポリゴンが生じますので、必ず消去しておいて下さい。また、もし断面からズレているポイントがあったら修正しておいて下さい。

 

次に、外周部分の形状を修正します。この部分も、細かい割にハイライトが入ってよく目立つので丁寧にモデリングします。

図104-8

まずエッジカット機能の「オフセット」の値を動かして、適切な位置にポイントを作成します。そして、「縫い合わせる」機能を使って押し出した面を斜めにします。この後さらに、エッジカット機能を使って外周部分にエッジを追加します。これは、HyperNURBSをかけた時にエッジ部分をシャープに保つためです。

 

 

Step 4

ボディのマテリアルとテクスチャ

オブジェクトができたら、マテリアルを作成します。 図104-9

ボディは、よく鏡面加工されたステンレスでできています。また、表面をエッチングすることでAppleやiPodのロゴが入っています。したがって、マテリアルを二つ作り、アルファで切り抜いて重ねます。

ロゴのテクスチャもオブジェクトの形状に合わせて作ってあるので、「オブジェクトに合わせる」機能を使って簡単に貼れます。

実は、ボディにはもう一つ「metal_cut」というマテリアルが適用されています。これはスイッチやコネクタが収まる穴の断面部分に使われているのですが、まだ穴をあけていないので、ここでは作りません。

前の章ヘ 次の章ヘ

モデリング基礎 5: 背面カメラ

題名 内容、及び関連する章 作成日/注記
105 5_背面カメラ 背面カメラ、フィルタ、異方性スペキュラ、照明と異方性シェーダ、自動的に同心円パターン、へアライン、コンポジットタグ、アンチエイリアス、ベスト、AAの精度を指定、穴あけオブジェクト、 2011.8.16

 

Step 1

背面カメラ(Back_Cam)、本体

次に背面カメラを作ります。 図105-1

図面(PDF)

完成した部品ファイル

背面カメラの本体は、前面カメラを複製して作ります。基準面からのオフセットを変更し、レンズフードの断面スプラインを少し変えるだけで簡単にできます。

図105-2

 

 

Step 2

背面カメラ、フィルタ

次に、カメラの前に付いているフィルタとそのフレームを作ります。 図105-3

フィルタのフレームは、レンズフードを複製し、断面スプラインを変えて作ります。細かいですが、外側に「0.05」のフィレットを付けました。また、回転NURBSの分割数を「48」に上げています。

次に、フィルタ本体は「円錐」オブジェクトで作ります。円錐オブジェクトは「円錐台(上端を切った円錐)」も作れます。また、半径の値を少しだけ小さくしています。理由は、透明なオブジェクトの場合、面が重なっているとその部分を正しくレンダリングできないからです。図面通りに作ると、フィルタフレームの内側とフィルタの外側は完全に面が一致してしまいます。

 

 

 

Step 3

背面カメラのマテリアルとテクスチャ

オブジェクトができたら、マテリアルを作成します。背面カメラ本体のマテリアルは前面カメラのマテリアルと全く同じなので省略します。また、フィルタは反射防止コーティングがされたガラスということで、前面ガラスの裏側に使ったマテリアルをそのまま使います。次に、フィルタフレームのマテリアルについてですが、これの制作には今回一番苦労しました。とても小さい部品ですが、円周方向にヘアラインが入っています。このようなヘアラインは特殊な旋盤加工をすることによって生じ、「異方性スペキュラ」という特殊効果を発生させます。

図105-4に示したように、通常の面(つまり異方性のない面)では、ライトが映り込む方向に円形のスペキュラが生じます。しかし異方性のある面では、ヘアラインに垂直な方向に長く伸びた特殊なスペキュラが生じます。

図105-4

左が通常のスペキュラ、右は異方性スペキュラ。

そして、図105-5がiPodTouchの背面カメラのフィルタフレームに生じている異方性スペキュラです。前面カメラの制作でも説明した通り、カメラのレンズというのは「目」ですから、とても目立ちます。Appleもそれを知った上で、デザインの一部としてヘアラインを付けているのです。したがって、省略するわけにはいきません。

図105-5

 

しかし、CINEMA 4Dの標準マテリアルには「異方性スペキュラ」がありません。そこで「特殊効果 -> 照明と異方性」というシェーダを使ってこれを表現します。

図105-6

「照明と異方性」シェーダは、発光チャンネルに入れて使います。今回は「スペキュラ1」チャンネルだけ使用し、他のチャンネルは全て切ってしまいます。また、ヘアラインの投影法は「自動的に同心円パターン」にします。この投影法は原理がよくわからないので、実際に試して決定して下さい。

 

異方性スペキュラを設定するのは簡単ですが、この段階ではまだ金属部品のようには見えません。理由は、スペキュラがライトにしか働かないからです。これは標準のスペキュラでも異方性スペキュラでも同じ原理的な制約です。したがって、周囲に明るいオブジェクトがあってもそれが映り込みません。

そこで、「鏡面反射」チャンネルと「バンプ」チャンネルを追加します。鏡面反射で金属を、バンプでヘアラインを実際に表現するわけで、より現実に近い方法だと言えます。実際、拡大して見た場合はこれで十分に異方性スペキュラを表現できます。しかし、遠くから見ると、バンプチャンネルの効果がなくなり、同時に異方性スペキュラも消えてしまいます。

というわけで、いろいろ試行錯誤した結果、近くから見た場合は鏡面反射とバンプによる異方性スペキュラが表現され、遠目には照明と異方性シェーダによる異方性スペキュラが表現されるように、うまくバランスを取ることにしました。非常に難しい表現であり、これが一番いい方法なのかどうかはわかりませんが、参考にして下さい。

図105-7

 

最後に、「コンポジット」タグについて簡単に説明します。フィルタフレームには鏡面反射と細かいバンプがついているため、「ベスト」のアンチエイリアスを強めにかける必要があります(例えば4*4)。しかし、レンダリング設定を開いてシーン全体のアンチエイリアスを強くすると、当然レンダリング時間は長くなります(4*4の場合は16倍遅くなる)。

このような場合、シーン全体のアンチエイリアスは最低(「1*1」)に下げ、必要なオブジェクトにだけコンポジットタグを追加し、「AAの精度を指定」オプションを使ってアンチエイリアスの値を大きくすると、レンダリング時間を大幅に短縮できます。

図105-8

 

 

Step 4

背面カメラをボディに組み込む

背面カメラとフィルタができたら、それらが収まる穴をボディに開けます。 図105-9

図面(PDF)

まず、図105-10のような「穴あけ」オブジェクトを作成し、ブールオブジェクトを使って穴を開けます。

図105-10

ただし、この作業は簡単ではありません。なぜなら、この部分はボディーの角の曲面部分にかかっていて、背面カメラのフィルタが斜めに収まっているからです。その形状は作った人ごとに違っているはずで、もちろん数値で指定することはできません。目分量で調整することになります。実物を見ても、平面のフィルタを曲面に無理矢理納めているので、多少の段差が生じています。

背面カメラが収まる穴は円柱オブジェクトで作成します。また、その少し右の照度センサが収まっている小さな穴は、フィルタフレームを複製し、断面スプラインを修正して作ります。

 

次に、図面を参考にして背面カメラの位置を合わせます。

図105-11

ただし、この作業は簡単ではありません。なぜなら、この部分はボディーの角の曲面部分にかかっていて、背面カメラのフィルタが斜めに収まっているからです。その形状は作った人ごとに違っているはずで、もちろん数値で指定することはできません。目分量で調整することになります。実物を見ても、平面のフィルタを曲面に無理矢理納めているので、多少の段差が生じています。

位置合わせができたら、2個の穴あけオブジェクトをボディの下の階層に移動し、ブールオブジェクトを使って穴をあけます。ヌルオブジェクトを使ってグループ化しておけば、複数の穴あけオブジェクトを使って簡単にボディに穴を開けることができます。

 

前の章ヘ 次の章ヘ