Part.3はクロスシミュレーションから固定されたポリゴンオブジェクトを取り出し,プールのシーンを作成していきます.
浮き輪の形状を固定されたポリゴンとして取り出す
次はクロスシミュレーションの結果から静的なポリゴンオブジェクトを取り出していきます.
クロスタグを選択して「キャッシュ」タブを開き
「オブジェクトのキャッシュ」を実行します.
シミュレーションの動きを“録画”して保存しておくことです.
シミュレーション(風で布がなびく、水が流れる、など)はアニメーションを再生させるたびに毎回再計算が必要です.でも計算には時間がかかるし,毎回動きが少しずつ変わってしまうこともあります.
そこで「キャッシュ」を使うと…
- 一度計算した動きを保存しておける
- 再生がサクサクになる
- 毎回同じ動きを再現できる
つまり、安定して速くプレビューできるようになる便利な仕組みです.レンダリング時もシミュレーション結果が変わることはありません.

「シーンのキャッシュ」はシーン内のすべてのクロスタグのキャッシュ計算を行いますが,今回は一つしかないので,どちらでも構いません.
「キャッシュの場所」が「内部」の場合,キャッシュデータはシーンファイルに保存されるのでファイルサイズがその分大きくなります.
複雑なキャッシュを取る場合は外部にして,別ファイルとして保存した方が良いケースもあります.
アニメーションを再生して取り出したい好みのフレームで止めます.今回は「60F」にしてみます.

浮き輪を選択し,オブジェクトマネージャメニューの「オブジェクト」→「現在の状態をオブジェクト化」を実行します.

取り出したオブジェクトはシミュレーションから切り離された単一のポリゴンオブジェクトになります.
元のオブジェクトは残っているので,表示・レンダリングともにオフに変更しておきます.
取り出したオブジェクトの頂点マップとクロスタグは不要なので削除します.


プールの作成(平面で底と水面をつくる)
プール底の作成
シーンはシンプルなプールと水面です.かなり簡略化した形状で作っていきます.
平面をシーンに追加して,
「サイズ」…「1500㎝」,「1500㎝」
とします.
「座標」は
「P.Y」…「-100㎝」
とします.

平面の名前は「プール底」としておきましょう.
水面の作成
水面用にもう一つ平面を作成します.
「サイズ」…「1500㎝」,「1500㎝」
「分割数」…「100」,「100」
とします.
名前は「水面」としておきます.
水面の波はデフォーマで作ることにしましょう.他にもディスプレイスメントやプラグインの海生成などの方法があります.
デフォーマアイコンを長押しして,「変位」デフォーマをシーンに追加します.

変位は水面の子にします.

変位デフォーマの「シェーディング」タブを開き
「シェーダ」に「ノイズ」を適用します.

ノイズシェーダまたはサムネイルをクリックしてシェーダの設定に移動して
「全体スケール」…「280㎝」
「アニメーション速さ」…「1」
「風の方向」」…「1㎝」
「速さ」…「0.5%」
とします.好みの数値でも構いません.
アニメーションを再生するとX方向に移動する簡易的な波を表現します.


Redshiftオブジェクトタグでレンダリング時にサブディビジョンサーフェイスをかける
水面にRedshiftオブジェクトタグをつけて,レンダリングする際にはもう少し滑らかにします.

Redshiftオブジェクトタグを選択し「ジオメトリ」タブを開いて
「上書き」…「オン」
「テッセレーションの有効」…「オン」
にします.

エディタ上では特に変化ありませんが,レンダリングする際にメッシュがさらに細かくなりなめらかになります.
※サブディビジョンサーフェイスジェネレータ(SDS)を使っても差し支えありません.
浮き輪をゆらゆらさせる
浮き輪を水面の動きに合わせてゆらゆらさせていきます.
コンストレイントを使って浮き輪を水面の動きに同期させる
ここではコンストレイントと振動の二つの機能を組み合わせていきます.
浮き輪を選択し,タグメニューから「リギング タグ」→「コンストレイント」タグを適用します.
あるオブジェクトの動きや位置を,別のオブジェクトにくっつけて制限(コントロール)する機能です.たとえば
- 「このボタンが動いたら,こっちのパーツも一緒に動いてほしい」
- 「この手は常にこのオブジェクトを持っていてほしい」
- 「このオブジェクトは,他の動きに合わせて移動したり,回転してほしい」
といったときに使います.
作例では波の動きに合わせて浮き輪の角度をコントロールさせます.

コンストレイントタグを選択し,どのモードを使うか決めます.
「限定」…「オン」
にします.

「限定」タブを開いて
「ターゲット」に「水面」をドラッグ&ドロップ
「限定先」…「サーフェイス」
「整列」…「+Y」
「モード」…「軸を固定」
「対象」…「Phong 法線」
「法線を使う」…「オン」
「位置を固定」…「オン」
とします.

これで浮き輪の軸位置は最も近くにあるサーフェイスの向きに固定されます.再生すると水面の動きに合わせて変わるようになります. ただ,ちょっとアニメーションが固い印象ですね.
振動タグで動きを追加する
そこで,「振動」タグを追加します.
水面を選択してタグメニューの「アニメーション タグ」→「振動」タグを適用します.

振動タグの設定は
「位置を振動」」…「オン」
「振幅」…「100㎝」,「5㎝」,「100㎝」
「周波数」…「0.2」
「角度を振動」」…「オン」
「振幅」…「50°」,「5°」,「10°」
「周波数」…「0.2」
とします.

このままでコンストレイントの方が優先されて振動効果が出てきません.Cinema 4Dのタグは基本的に左から順に適用される仕組みのため,タグの種類によっては位置が結果に影響をあたえるものがあります.コンストレイント後に振動効果を出すためには,振動タグをコンストレイントタグの右側に移動させなければなりません.


もう少しです!
次はマテリアルとライティングをつけてレンダリングです.