つくって覚えるシリーズ第7回目,今回はCinema 4Dの機能の中でも重要な位置づけにあるデフォーマについて学習していきます.
Youtubeチャンネルのチュートリアル動画はこちら
動画でご覧になりたい場合はこちらをどうぞ.ブログ記事の最後ではサンプルファイルも配布しています.
デフォーマとは?
デフォーマは主に形状を変形させるための機能で,変形アニメーションに適した機能ですが,モデリングでも活用できるため幅広く利用できます.オブジェクトを曲げたりひねったり,伸ばしたり傾けたり,へこませたり爆発させたり色々なことができます.
デフォーマ自体はこれまでのチュートリアルでも何度か使ってきましたが,今回はクローナーを含めて少し応用的な使い方でアニメーションを作成していきます.デフォーマはなんとなく使ったことあるけれど,もう少し応用的な使い方もやってみたい,そんな方におすすめな内容となっています.
このチュートリアルではデフォーマーを使って次のようなアニメーションをつくります.アニメーション自体は90フレーム3秒で終わる短いものとなっています.
つくって覚えるシリーズでは,はじめてCinema 4Dを触る方でもなるべくわかりやすいようにかなり細かく手順を記載していきます.
この記事ではCinema 4D 2023.2.2とRedsfhit 3.5.17を使用していますが,以前のバージョンでも同じことはできます.
プロジェクト設定
新規プロジェクトを作成したら,「プロジェクト設定」(Ctrl + D)を開き,
「プロジェクトスケール」…「cm:センチメートル」
とします.

変形元となる板状のオブジェクトを作成する
作り方は様々ありますのが,これまでのチュートリアルでまだ使っていないスプラインマスクという機能を試してなるべくプロシージャルで作成していくようにしてみましょう.
長方形スプラインを作成します.

長方形スプラインを選択し,「オブジェクト」タブを開き
「幅」…「5㎝」
「高さ」…「30㎝」
「フィレット」…「オン」
「平面」…「XZ」
として,次のような形状のスプラインをつくります.

次に「円形」スプラインを二つ作成します.

それぞれ
「半径」…「3㎝」
「平面」…「XZ」
にします.

それぞれの円形スプラインを選択し,座標タブで
「P.X」を「3.5㎝」と「-3.5㎝」
にして次のような配置とします.

続けて「スプラインマスク」オブジェクトを作成し,3つのスプラインを子にします.この時,子の1番上に長方形,2,3番目に円形の順で配置しておきます.


スプラインマスクは,複数のスプライン形状を切り取ったり,接続するといった処理を行うジェネレータです.
スプラインマスクの使用上の注意点として「各スプラインがスムーズであり,すべてのスプラインが同一平面状にある場合」において良く機能します.
スプラインマスクを選択し,「オブジェクト」タブを開き
「モード」…「AからBを型抜き」
「軸」…「XZ(Y方向)」
とすると,次のようなスプラインを作れます.

スプラインマスクを使うと複雑なスプライン形状を簡単につくれますし,なにより後からでも形状変更が容易なのがメリットです.
押し出しオブジェクトで押し出す
スプラインマスクは内部的にはスプラインオブジェクトそのものなので,押し出しなどのスプライン用ジェネレータを併用できます.
「押し出し」を作成し,スプラインマスクを子にして押し出し形状をつくります.


押し出し形状をよくみるとエッジのところでカクカクとしたシャープなラインが見えていると思います.これは押し出しのPhongタグを選択して,
「シャープエッジを使う」…「オフ」
にすることで解消できます.
Phongタグはシェーディングの角度を調整するタグですが,シャープエッジが不要な場合は「オフ」にしておきます. ※特定のエッジだけをシャープエッジにするといったことが可能です.

押し出しオブジェクトを選択し,
「オフセット」…「-200㎝」
「分割数」…「64」
とします.高い分割数は次の工程でデフォーマで綺麗に曲げるために必要です.

エディタでエッジを確認したい場合は,エディタメニューの「表示」→「グーローシェーディング(線)」に切り替えます.表示モードの切り替えは頻繁に行うため,ショートカットで覚えると良いでしょう.Nキーを押して,対応するキーを押します.グーローシェーディング(線)の場合はN~Bとなります.

屈曲で押し出しを曲げる
それでは屈曲デフォーマで曲げる準備ができましたので,デフォーマアイコンの中から「屈曲」をシーンに追加します.

デフォーマは配置する階層の位置で効果の範囲が変わります.効果がかかる範囲は,デフォーマ自身の親,または同じ階層にあるオブジェクトになります.押し出しオブジェクトに対して効果をかけたい場合は,ヌルオブジェクトを作成して押し出しと同じ階層にします.

また,ヌルオブジェクトの名前は分かりやく変更しておきましょう.作例では「押し出しグループ」としておきます.
続いて屈曲デフォーマの変形範囲を調整していきます.デフォーマの親がジオメトリ情報を持つ場合は「親に合わせる」で屈曲のケージを合わせることができますが,今回は親がヌルなので手動で調整します.
屈曲を選択し,「オブジェクト」タブを開き
「サイズ」…「30㎝,100㎝,30㎝」
「モード」…「無制限」
とします.
「座標」タブを開き,
「P.Y」…「150㎝」
とします.
押し出しの中央から上部を屈曲が覆う状態になります.

この状態で「強度」をあげるとケージの反対側も同様に曲がることが分かります.これは無制限モードを使用しているからで,このような変形をしたい場合に有効です.

屈曲アニメーションをつくる
それでは屈曲強度をアニメートさせていきます.
タイムラインを「0F」に合わせます.屈曲の
「強度」…「0°」
でキーフレームを記録します.キーはパラメータ左にある「ひし形のボタン」をクリックして記録できます.


キーフレームボタンが赤く塗りつぶされていればキーが記録されています.
続いてタイムラインを「30F」まで進めます.屈曲の
「強度」…「180°」
にしてキーフレームボタンでキーを記録します.


これにより,30Fで180度曲がるアニメーションとなりました.反対側も曲がるので丁度輪っかができあがります.

シンプルな屈曲アニメーションができました.ここからクローナーとエフェクタを組み合わせて応用していきます.
クローナーを組み合わせていく
シーンに「クローナー」を追加します.

クローナーはCinema 4Dの機能中でも特に重要な機能の1つです.単体の機能としてはオブジェクトを複製する役割があります.
クローナーを作成したら,押し出しを子にします.さらに,クローナーの「オブジェクト」タブを開き
「モード」…「線形」
「複製数」…「15」
「P.X」…「0㎝」
「P.Y」…「0㎝」
「P.Z」…「-30㎝」
とします.線形モードは任意の一方向に対してオブジェクトを複製するモードで,ここでは「P.Z」の「-30㎝」ずつ15個複製する設定になります.


複製されたオブジェクトをクローンと呼びます.各クローンは屈曲のアニメーションもそのまま複製されます.
さらに,クローナーの「トランスフォーム」タブを開き,
「R.B」…「-90°」
にして,クローンすべてを回転させておきます.クローナーのトランスフォームは複製したクローンを一律で移動,回転,スケールするためのパラメータです.

複製されたオブジェクトをクローンと呼びます.各クローンは屈曲のアニメーションもそのまま複製されます.
さらに,クローナーの「トランスフォーム」タブを開き,「R.B」…「-90°」にして,クローンすべてを回転させておきます.クローナーのトランスフォームは複製したクローンを一律で移動,回転,スケールするためのパラメータです.
ステップエフェクタでアニメーションをオフセットさせる
複製直後の状態はすべてのクローンが同じタイミングでアニメーションします.これをステップエフェクタを使って開始タイミングをずらしていきます.
クローナを選択した状態で,「ステップ」エフェクタを作成します.クローナーを選択状態でエフェクタを作成した場合,そのクローナーにエフェクタが適用されます.手動でエフェクタを適用する場合はクローナーの「エフェクタ」タブにシーン内にあるエフェクタをドラッグ&ドロップします.


ステップエフェクタは最初のクローンから最後のクローンまで累積するように効果がかかり,デフォルトでは少しずつスケールが大きくなるようになります.スケールアップの効果は不要なのでここではオフにして,アニメーションの開始時間をオフセットさせます.
ステップエフェクタの「パラメータ」タブを開き,
「スケール」…「オフ」
「時間オフセット」…「50F」
にします.
時間オフセットを50Fにすると,最後のクローンのアニメーション開始フレームが50Fずれて開始されることになります.

ステップエフェクタはデフォルトでは最初から最後のクローンまで一定でオフセットしていきますが,これは「エフェクタ」タブのスプラインUIで調整できます.横軸がクローンの順番を表し,縦軸が効果の強度を表します.次のようにスプライン曲線を変えることでどのクローンに最初に効果をかけるかを調整できます.



スプラインUIは狭いので,UI上で右クリックして「別ウィンドウで表示」すると調整しやすいです.
このチュートリアルではデフォルトの状態で進めます.
クローナー全体を屈曲でさらに曲げる
さらに,クローナー全体に屈曲を適用してクローン群を曲げてドーナツ状にしていきます.クローナーに対して別の屈曲を適用するわけですが,クローナーの場合は子に配置すると複製してしまうので,ヌルをシーンに追加してから,クローンと屈曲を子にします.


クローン全体を曲げるために屈曲のサイズ,位置,角度を調整する必要があります.
屈曲の「オブジェクト」タブを開き,
「サイズ」…「5㎝,450㎝,200㎝」
とします.サイズ.Xが長方形スプラインの幅,Yが長方形スプラインの高さx複製数Zが押し出し量となります.
屈曲の「座標」タブを開き,
「P.X」…「-100㎝」
「P.Y」…「50㎝」
「P.Z」…「-210㎝」
とします.屈曲はのサイズは中心から計算されるので,サイズXに対してー100㎝オフセットさせています.Z方向の値は(クローナーのZ方向の複製ステップx複製数)/2+15cmとなります.入力ボックスには計算式を入力可能なので,(-30*15)/2+15を入力してEnterを押してもよいです.Y方向についてはドーナツ状にするためのオフセットの値です.
角度は
「R.H」…「90°」
「R.B」…「-90°」
とします.角度は屈曲方向を調整するためにこのようになります.

屈曲の「強度」をあげると次のようにクローナー全体がくるりと変形します.

では,この屈曲強度をアニメートさせます.タイムラインを「15F」に合わせて,
「強度」…「0°」
でキーを記録します.

続けてタイムラインを「60F」に移動して,
「強度」…「360°」
キーを記録します.

全体としては次のようなアニメーションができます.デフォームアニメーションはこれで完成となります.

今回はここまでとなります.完成データはこちらからダウンロードいただけます.
次はRedshiftでマテリアルとレンダリングまでを行っていきます.
続きの記事へ:つくって覚える第7回 デフォーマーアニメーション 2/2