アニメーションソフト「Cascadeur」のすすめ
UEC 2 Advent Calendar 2024 1日目の記事です。
新しくソフトを触り初めて2週間。苦しい時期に入る前の気分のいい時に、と思いきや既に沼に入り始めたので、知識整理を兼ねて。ゲーム制作をされる方は、もしかしたら触る機会があるかも?
1. Cascadeurとは
Our core mission is to get AI to help and assist the animators and not replace them, simplifying the animation process while preserving the creative spirit. - Eugene Dyabin
Cascadeur(カ\スケダー[1])とは Nekki が開発を手掛ける3Dアニメーションソフトウェア。
内部の物理ツールやAIツールの駆動によって、リアルでそれらしいアニメーションを1から作成でき、また物理演算を反映させながらのモーキャプデータの編集ができる、とのこと[2]。アプリの操作感は上の動画をご覧いただきたい。
対応OSは、Windows・Linux・Mac。iOSモバイルアプリ版も最近リリースされた。
料金は下記の通り。
公式サイトより
Free(無料)版ではデフォルトの.casc形式でしかデータを保存できない。年間99ドルのIndie版では.fbx形式と.dae形式での出力に対応している。ダウンロード後使用するにはアカウント登録が必要なので注意。
2019年にベータ版がリリースされたのが始まり。直近では、2024年11月28日にragdoll機能が新たに追加された(バージョン2024.2.3)。
Cascadeurというソフトウェア名は、スタントマン(stuntman)を表すフランス語「cascadeur」からきており、開発当初の『究極のスタントマン(の代わり)になるソフトを作る』という目的に由来する[3]。
公式サイト等
- 公式サイト ソフトのダウンロードや、チュートリアル
- ソフトウェアTwitter ソフトウェアの公式アカウント
- 創設者Twitter Eugene Dyabin氏のtwitter
- Youtube チュートリアル
- ドキュメント 公式ドキュメント
2. 実際に使用してみて
このソフトについてまだまだ体系的な理解はできないため、気になった8項目について、正直な使用感などをまとていこうと思う。
2.1 Sceneを複数作成できる
1ソフトに対して複数のSceneを並立して作成できる。サンプルのSceneの保存先は、デフォルトで別のフォルダを選択させるようになっており、サンプルファイルを上書き保存してしまう心配は無い。
2.2 学習素材が充実...?
チュートリアルは、公式サイトにあるドキュメント形式のものと、公式Youtubeチャンネルにある動画の2種類。ソフト起動時の表示から各学習素材とサンプルへのアクセスがしやすくてよい。
スタートアップ時の表示
- 他アプリユーザー向けのガイドも存在する
- ドキュメント形式の方はステージごとに学習を進めてチェックを付けられる(要ログイン)。説明は分かりやすいが、たまに古い情報が掲載されており、画面内に該当のメニューが見つからないことがある
- Youtubeの動画もよいが、最近の機能紹介以外のチュートリアル的な動画は大抵古い
- ウェブサイトで検索すると大抵ドキュメントがヒットする。これもまた見やすくて良いのだが、「こういう操作ができない」系の質問やその答えがいまいち検索に出てこない。
- discordサーバーが非常に活発。フォーラムへの質問の投稿は多く、何か困ったらフォーラムを探せば答えが見つかる場合もある。ちなみにAuto Physicsに悩まされている人はかなり多い印象
2.3 View/Edit モードが設定しづらい
Viewportからカーソルで選択すればいい話なのだが、ショートカットでやろうとするとこれが少々複雑。
-
Edit Mode とView Mode(リグ等が非表示になる)の切り替えは「S」
現在選択されているView/Edit Mode -
AutoPosing Modeへの切り替えはショートカットがデフォルトで設定されていなかった(多分)ので、自分で割り当てる必要がある(P とか)。
AutoPosing Mode
-
AutoPosingでないEdit Modeは「Node Edit Mode」と「Extra Edit Mode」の2種類
-
Node Edit Mode内での切り替えは「Shift + S」。Point Controller ModeとBox Controller Mode
Node Edit Mode -
Extra Edit Mode 内での切り替えは「Shift + C」。Joint ModeとMesh Mode
Extra Edit Mode -
そして、これらの Node Edit Mode と Extra Edit Mode 間の切り替えが「C」。
- 表示/非表示(Visible Menu)は一番左のアイコンを「右クリック」して表示する。この右クリック後メニューが表示されるまで若干処理に時間がかかるのが難点
Visible Menu
2.4 直感的な編集がしやすい
他のソフトで手付アニメーションを作成しているとき、「画像・動画からのポーズ抽出」「軌道の編集」「自然な体の揺れの作成」がもっと簡単にできればいいなと思っていたのだが、このソフトでそれらが本当に(チュートリアルやデモの投稿で見た通りに)できる点は期待以上であった。
画像・動画からのポーズ抽出
こちらで紹介されている通り。動画のある瞬間のポーズを抽出する場合、数秒でモデルにポーズが適用される。動画については、巷のAIモーキャプのプラットフォームよりもモーション抽出が早いと感じる。この機能の利用方法については3章で詳細をまとめる。
軌道の編集
Trajectory Edit Mode。濃い緑色がキーフレーム
Trajectory Edit Modeは Point Controller Modeでのみ使用できる。他のEdit Modeの時は、Trajectory Edit Modeに切り替えても何も点が表示されないので注意。
シルエット表示
シルエットの出し方・数の変更
間の姿勢を作るとき特に便利。
ショートカット変更
デフォルトからの変更は簡単。
画面上部「Settings」>「Viewport Input Settings」より変更する。変更した場合は、その下にある「Save Current Settings As Default」を押すこと。
もちろんカメラの移動・回転操作のキー(マウス含め)も自由に変えられる。自分の場合、指の押す場所を切り替えるのが好きじゃないので、操作に慣れているMotionBuilderのキーと同じにした(被った操作には元のカメラ操作のキーを一時的に割り当てている)。
変更後のカメラ視点操作キー
2.5 特徴的なAutoPosingと手付けの手軽さ
下は、AutoPosing(Cascadeurの主要な機能の1つ)が有効になっている場合に、ActiveなController(青色の点)からどんな姿勢が決定されるか示したもの。
- Controllerの位置をユーザーが指定すると、そのControllerはActiveになる
- 別のControllerを動かす際、既にActiveなControllerの位置は変わらず、代わりに非ActiveなControllerの位置が変わる
というルールのもと、ポーズ変更の際にはソフト側が最も自然なキャラクターの姿勢へと導く。
毎度の位置指定で「それっぽい自然な姿勢」になってくれるので、目的のポーズを経る過程でキャラが不自然な姿勢になりにくく、最短ルートで手付けができる感覚である。こちらの投稿で実際のポーズの手付け例が確認できる。
もちろんこのAutoPosingはON/OFFの切り替えが可能。勝手に姿勢が変わってしまうのが合わないのであれば、AutoPosingを使わずにポーズ調整すればよい。
2.6 Fulcrum Pointは重要
リグ中の緑で囲まれた点が Fulcrum Point
一見ただの接地を表す緑色の点なのだが、以外にもAuto Physicsの計算結果に大きく影響する。
フレーム上およびフレーム間の補間において、キャラクターの物理を計算する元になるため、適切に設定されていないとキャラクターが意図せず飛び上がったり、地面にめり込んだりするのだ。
Fulcrum Pointが適切に設定されていない例
Fulcrum Pointが表示されている時、Auto Physicsが着地と判定していることを表す。この判定が変わるのは
- 接地対象の面から離れる
- 前のフレームの位置から大きく離れる
ような場合で、上図では左手が前になったときに両足のFulcrum Pointが表示されておらず、その瞬間は接地していない(=空中にいる)と判定され、Auto Physicsの緑色のモデルが飛び上がっている。
接地の表示と修正
左側がfulcrum pointの表示(Show fulcrum points)。
右側がfulcrum pointの修正(Fulcrum Motion Cleaning)。ノイズが入り乱れていた接地が綺麗になる。
接地の判定状況は、画面下にあるTimelineの上部の色で判断
より多くの点で接地するほど、緑色が濃くなる。
- 手足を地面につけている時:深い緑色
- 両足を地面につけている時:緑色
- 片足が浮いている時:黄色
- 両足が浮いている時:オレンジ色
Timeline上のカラー
オレンジ色、すなわち両足が接地面から離れていると判定されているようなキーフレーム間を、Cascadeurはジャンプと解釈する。キーフレーム間が長いほどジャンプは大きくなる。
Fulcrum state & Max speed
Fulcrum Pointを調整する場合は、RigのPointを選択状態にして画面右側「Object properties」>「Fulcrum point」を選択。
- Collision radius:接地と判定される、面からの最大距離。デフォルトは5cm
- Max Speed:接地と判定される、前フレームからの最大移動距離。
これらの値は、Aplly on current frameを押してから編集すると、キーフレームごとに設定できる。
もちろん複数のキーフレームを選択した状態でも一気に値を設定できる
キーフレームごとの設定
Fulcrum state
- Fulcrum:接地の基準を満たしていれば、接地と判定される
- Enforce:状態に関わらず、そのキーフレームでは強制的に接地状態とする
- NotFulcrum:状態に関わらず、そのキーフレームでは接地状態としない
この設定は、そのキーフレームから次のキーフレームの直前まで有効。
上記の点は下の動画で詳しく解説されている。
2.7 「キー登録」→「ポーズ指定」の順
チュートリアルに従ってアニメーションを作ろうとすると、どうもポーズ指定しようとするとすぐにデフォルトのポーズに戻ってしまう。最初に「F」キー押さないとポーズ指定ができない。
「ポーズを変えてキー登録」ではなく、「ポーズ指定ありきで最初にキー登録」であるらしい。Fキーを押すことで登録したキーフレーム上でのみ、ポーズの変更が可能。
登録したキーは、再度Fキーを押すと削除(キーフレームからただのフレームに)することができる。
2.8 タイムラインは折りたためる
見た目からはボディ各部のキー登録の様子が見えない。十字ボタンを押して展開して表示する。
サンプル:backflip_animationのAutoPhysicsを解除したキーのデフォルト表示
展開したとき。実際のキー登録は単純ではないらしい
縦方向だけでなく横方向に隠れていることもある。
各部の名称が閉じて見えない状態
展開した状態
また、打ったキーフレーム間の補間はデフォルトでは「Step」。見かけ上補間されていないように見えるので戸惑う。
3. 画像・動画からのポーズ抽出
2.4節で触れた、画像・動画からのポーズ抽出について基本的な流れを解説する。
3.1 事前準備
まず、サンプルのCaskyモデルのSceneを開く。
必ずしもCaskyモデルである必要は無い
続いて、「File」 > 「Import」 > 「Reference Video」を選択。
このメニューでは、使用する動画と、動画のフレーム画像の抽出先フォルダの2つを指定する。
事前に動画と空のフォルダを用意しておく
この設定画面における「To」欄のフレーム値は、メモしておく方がよい。
Reference Videoの設定
インポートが完了すると、Viewerに表示される。
以下では、こちらのリンクの動画を使用した。
インポートした動画は、Mesh Modeにて直接選択できる。または、画面右側のOutlinerにて「MeshObject」を選択すればよい。
動画の選択方法
3.2 実際の使用方法
使用する動画の設定画面において「To」欄に表示されたフレーム数分、再生範囲を広げる。
この部分の値を変えた後、範囲を広げる
あるフレームのポーズを抽出したい場合、Timeline上の1フレームを選択、かつ動画を選択状態にする。
画面上部のアイコンをクリックし、ポーズの抽出を開始する。
初回実行時の注意
初めてこの機能を使う際は以下の表示が出るはず。
「Yes」を選択すればよい。
抽出対象のフレーム数、および抽出にかかる目安の時間が表示される。
処理が終わると、既にポーズが適用された状態になる。
ポーズが適用されるとそのフレームにはキーが打たれ、キーフレームとなる。
確かにキーフレームになっている
複数フレームに渡ってポーズを抽出したい場合、該当のフレームをドラッグして範囲選択をする。全フレームに渡って処理を行いたい場合は、Timelineにおいて、「Casky」をクリックすれば全フレームが選択状態になる。
今回も動画(MeshObject)が選択状態になっていることを確認し、画面上部のアイコンから処理を開始する。
筆者環境の場合、実際は5分しかかからなかった。
選択した区間全てにキーフレームが登録されているため、このままでは編集できない。
フレームを範囲選択したうえで画面上部より『Animation unbaking』を押して、キーが部分的に打たれた状態へと変換する。
Animation unbaking
時間がかかるので注意。
Animation unbakingが完了した状態
Animation unbakingが完了すれば、あとは自由に編集する。このポーズ抽出の機能は、どうやら撮影者が移動していたり、カメラに対して垂直でない方向に移動していたりした場合精度がかなり落ちる模様。
適度にキーを消したり補間を調節したりして対応する。
シルエット表示が役立つ
部分的にポーズ抽出を行って位置がずれたら、落ち着いて合わせればよい。
抽出結果の位置がずれた
ActiveなControllerを全選択し、移動させる
こうして各キーフレームの簡単な編集ができたら、重心や腰の軌道を修正する。
続いてFulcrum Pointを適切に設定する。
そして、キー全体を範囲選択したうえで、Auto PhysicsをONにする。
Auto Physicsの有効化
おわりに
上手く使えたらきっと楽しいだろうなと思いつつ、習得までの道のりが果てしなく長く感じる。
少しずつ慣れていって、製作に活かしたいところ。
明日はSHINNさんの記事です。
内容は未定とのこと、お楽しみに。
-
チュートリアルではこう聞こえるのですが、日本語の正式な発音はあるのでしょうか? ↩︎
-
Revolutionizing Animation: An Interview with Eugene Dyabin on Cascadeur’s AI-Driven Future ↩︎
Discussion