はじめまして!
VD部CGデザイナー/モーショングラフィックデザイナーのみやうち(@miya_kosuke)です。
普段はコンテンツ内の演出を作ったり、UIモーションを作ったりしています。
今回、仕事とは別の自主制作プロジェクトで作成したキャラクターのリギングで行き詰まり、色々調べるうちに「案外これ面倒な手順&Youtubeとかのチュートリアルにないかも」と思ったリグのセットアップについて書きたいと思います。
尻尾やマントをサイン波状に波打たせたい
ボーンが綺麗に揺れる動きを作りたくて色々探してみたところ、MayaのプラグインでMANSURというところが出している Variable FK Tail というリギングモジュールがありました。
これは尻尾の揺れをコントローラーで制御することができるという優れものになっています。
今回はこんなような感じのものをCinema4Dで再現できないかと試してみます。
数式で揺らすいくつかの方法
Cinema4Dには数式デフォーマーや数式エフェクトがあるため、オブジェクトにポイントレベルでトランスフォームさせたり、MoGraphで生成されたオブジェクト群の位置や回転、スケールを制御することができます。
難しい式を書くこともできますが、最初からサイン波の数式が記述されているため、難しいコーディングや式を書かずともサイン波を作り出すことが可能です。
・スプラインに数式デフォーマーを適用したもの

・クローナーに数式エフェクトを適用したもの

今回はまっすぐに整列しているボーンをサイン波でゆらゆらする動きをつけたいと考えています。
Pythonタグなどを利用し、各ボーンの回転角を制御すれば可能かもしれませんが、僕にはPythonの知識がないため上記の2つ「数式デフォーマー」「数式エフェクト」どちらかを使って再現できないか試します。
スプラインIK
Cinema4DにはSpline IKというリギング用のタグがあり、スプラインの上にボーンを揃えたり、スプラインの制御点(ヌル)を作り動かすことができる機能が備わっています。
これは尻尾などを作るときに非常に使いやすいツールとなっています。
・らせんスプラインにボーンを沿わせる

・スプラインの制御ポイント(ヌル)を作ってスプラインを変形させる

ヌルで動かすことができれば、かなり見えてきました。
制御ヌルを破砕ジェネレーターに入れ数式エフェクトで揺らせば完成です。
破砕はジェネレーターなので制御ヌルは別オブジェクトとして認識されてしまう
文字通りです。破砕はジェネレーターなので、スプラインIKから作成されたヌルを突っ込んでも、見た目上は数式エフェクトで位置が動いて見えますがスプラインの方では制御ヌルの位置は変わっていないのです。
・破砕に突っ込んだ制御ヌルが動いているように見えるが、スプラインが変形しない

ならば、スプライン自体を数式デフォーマーで変形させればいいか。と思ったのですが、これまた同じです。スプラインが変形はしますがスプラインIKは元のポイント座標を見に行くので変形した後のポイント座標は認識しません。
・スプラインのデフォームをしてみる

(@MAXON_japan 情報ご提供ありがとうございました!)
Xpressoで破砕ジェネレーターのヌル群を参照する
これは仕事でもよく使う手順なのですが、Unityなどにもっていくにあたって、mographのトランスフォームなどを全てキーフレームにベイクし、それをfbxなりに書き出す というものです。
あれはmographで生成しているものと同じ数ぶんのオブジェクト階層を用意し、mographで制御した動きを参照しベイクするという方法です。
この参照する手法で成功しました。
・破砕を参照するXpressoで制御ヌルを動かす

ここまでこれば後は料理しやすくなりました。線形フィールドで尻尾の根本を固定できたりします。

最後に
いかがでしたでしょうか。
こういったシンプルな動きは意外にも作るのが面倒で手間がかかりますね。とはいえ構造自体は結構シンプルにできた気がすることと、破砕で制御できるのは案外汎用性がある構造ができたんじゃないかと思っています。
・数式エフェクターとスプラインエフェクターの組み合わせ

こちらは現在制作中のキャラクターのセットアップ

ルックにもよりますが、シミュレーションの方がよい選択となる場合もあると思います。リアルなシミュレーションによる布の揺れ方とは違う、とりまわしがききやすく修正・調整がしやすいものが欲しかったのでこのようなリグを作ってみました。
長々と大変失礼しました!