今回のチュートリアルではCinema4D 2023の新機能でもあるプリミティブに対する頂点マップを活用したマテリアルのアニメーションを学ぶことができます。頂点マップは多くのシーンで応用できるとても有効な機能です.Cinema 4Dに限らず,3DCGを扱う上でぜひおさえておきたい機能です.
このチュートリアル全3回の記事となり,次のような作例を作ります.第1回目はテキストのアニメーション作成までを行います.
パート1の動画
プロジェクト設定
使用するCinema 4Dのバージョンは2023以降です.それ以前のバージョンではプリミティブやジェネレータに対する頂点マップは利用できないので,注意が必要です.できないことはないのですが,編集可能にしてポリゴン化する必要がでてきます.
新規プロジェクトを作成したら,プロジェクト設定(Ctrl + D)を開き「プロジェクト」タブを開き
「プロジェクトスケール」…「1 cm:センチメートル」
「時間最大」…「120F」
とします.単位は一般設定を開き「単位」セクションで「cm」にしておきます.

シンプルなテキストアニメーションを作成する
まずは簡単なロゴアニメーションを作成するために,テキストオブジェクトを作成します.「テキスト」はそれ自体がMoGraphオブジェクトなので,すでに厚みのある状態で,すぐにエフェクタを適用してアニメーションの作成にとりかかれます.

テキストは任意で大丈夫ですが,文字数や押し出し量は任意で構いませんが,チュートリアルでは3文字,フォントも太めのものを使用します.ここではWin,Macどちらにもある「Impact」を使用しています.
「押し出し」…「50cm」
「行揃え」…「中央」
にしておきます.

テキストオブジェクトを選択した状態で「簡易」エフェクタを作成します.
※テキストはMoGraphオブジェクトなので選択したままエフェクタを作成すると自動的に適用されます.手動の場合はエフェクタを作成後,テキストの「文字単位」の「効果」欄にエフェクタをドラッグ&ドロップします.


簡易エフェクタの「パラメータ」タブを開き,
「角度.R」…「-20°」
とします.この簡易エフェクタは角度.Rを変更するだけでなので,名前を「1_簡易 Rot」としておきます.この簡易エフェクタはアニメーションはさせないことにします.
※エフェクタに限らずオブジェクトの名前付けは重要です.効果がわかるように名前を付けておくと後から見るときにも分かりやすいですし,「分かりやすさ」というのはプロジェクトが巨大になればなるほど恩恵は大きくなります.

さらに別の簡易エフェクタを作成し,テキストに適用させます.こちらは
「位置.X」…「0」
「位置.Y」…「-70cm」
「位置.Z」…「-200cm」
「角度.H」…「0」
「角度.R」…「-90°」
「角度.B」…「100°」
とします.こちらの簡易エフェクタの名前は「2_簡易 Pos Rot」とします.

2番目の簡易エフェクタはフィールドを使ってアニメーションさせるので,「フィールド」タブを開き,「線形フィールド」を作成します.

タイムラインを「0」フレームに移動した状態で線形フィールドを選択し,「座標」タブを開き
「位置.X」…「-370cm」
としてキーフレームを記録します.この数値はテキストの文字数やフォントサイズによっては上手く機能しないので,テキストに合わせて調整が必要です.ちょうどテキストの先頭文字よりもマイナスX方向になるように調整してください.

タイムラインを「120」フレームに移動させ,
「位置.X」…「370cm」
にしてキーフレームを記録します.アニメーションを再生させると線形フィールドが移動するに従い,2番目の簡易エフェクタの効果が消えていくはずです.そして最初の簡易エフェクタの角度だけが効果として残ります.


さらにタイムラインを開き(Shift + F3),Fカーブモード表示にし,線形フィールドのモーションカーブを調整してみましょう.最初は早く,後半はゆっくりになります.(お好みで)

テキストアニメーションはこれでできました.
カメラアニメーションを作成する
カメラアニメーションも先に作成しておきましょう.新規カメラを作成し,「座標」タブを開き,
「位置.X」…「0cm」
「位置.Y」…「80㎝」
「位置.Z」…「150㎝」
とします.

タイムラインを「0」フレームに合わせ,「位置.Z」にのみキーフレームを記録します.

タイムラインを「120」フレームに合わせ,
「位置.Z」…「-700㎝」
にしてキーフレームを記録します.

カメラのFカーブも下記のようにして緩急をつけておきます.はじめは早く移動して徐々にゆっくりになります.

これで以下の様なアニメーションが出来ていると思います.少ない手順なのでシンプルですが,今回は頂点マップがメインのトピックなのでこれくらいで先に進むことにします.

今回までのデータはこちらからダウンロードできます.
次回はこの状態から頂点マップの作成を進めていきます.