Fast Ref
Ep.21 — [FAQ] コンストレイントの復元が正しく行われません
Markdownダウンロード 画像込みダウンロード1. 状況(Scenario)
- 現象: アニメーション作業中に Fast-Ref で設定した Link Constraint がリロード(Reload)後に消える、またはデータが正しく復元されない。
- ユーザー体験: 復元されないため、Point Constraint などを手動で使い直す手間が発生する。
2. Fast-Ref のコンストレイント復元アルゴリズム(Logic)
Fast-Ref はリロード時のデータ整合性のため、以下の比較アルゴリズムに基づいて復元するかどうかを決定します。

| 区分 | [Skip] リグの基本状態 | [Restore] Fast-Ref カスタム作業 |
|---|---|---|
| 判断基準 | リグ(Rig)とアニ(Ani)の両方に同じ Link がある | リグにはなく、アニにコンストレイントがある |
| アルゴリズム動作 | 「オリジナルと同一」「オリジナルリグ優先」と判断して無視 | 「ユーザーデータ」と判断して別途記録・復元 |
| 設計意図 | 不要なコンストレイント処理を省略して最適化 | アニへの追加・コンストレイントが自動反映される |
| - [Skip] リグオリジナルと同一の場合: | ||
| - リグ(Rig)ファイル: すでにコンストレイント(Point、Orient、Link など)があり、 | ||
| - アニ(Ani)ファイル: にもコンストレイント(Point、Orient、Link など)がある | ||
| ⇒ リグの基本状態とみなし、復元リストから除外(リグ修正が自然に反映されるため) | ||
| - [Restore] Fast-Ref で作られた新しい変更: | ||
| - リグにないが、作業者が Fast-Ref で追加したコンストレイントはユーザーが作業したアニメーションデータとして別レイヤーに記録し、Replace / Reload 時に参照して復元します。 |
3. 問題の原因(Root Cause)
ご報告の事象は、アルゴリズムの判断ロジックにおける例外です。
- データの誤認識: リグ・アニの両方にすでにコンストレイントがある状態で作業したため、ツールが「ユーザーが新規作成したものではなく、もともとリグにあったもの」と誤認し、復元対象から除外(Skip)しました。
4. 解決方法(Solution)
ユーザーの意図を100%反映するため、次の方法を検討してください。
A案: リグファイルのクリーンアップ(最適化)
アルゴリズムがオリジナルと作業版を混同しないよう、リグファイルをクリーンに保つ方法です。
- 説明: リグオリジナルでは武器(Prop)などにLink Constraint を事前に付けないでください。
- 理由: オリジナルにすでに Link があると、アニメーションファイルでユーザーが新しく設定した Link を「最初からあったもの」と誤認し、復元対象から除外(Skip)されることがあります。
- 推奨: 武器は床に置いたまま(Clean)にし、Link 作業はアニメーターがアニメーションシーンでFast-Ref 経由で行えば、復元は100%確実です。
B案: カスタム Attr(属性)またはドライブ接続
コンストレイント復元ロジック自体を使わない、より専門的なリグ方式です。
- 説明: コンストレイントを復元する代わりに、コントローラのカスタム Attr(例: Switch 0/1)や特定のドライブ(移動値 X など)で接続を制御してください。
- 理由: アニメーションシーンで新しいコンストレイントを作らないため、復元すべき要素が発生せず、データ欠落リスクを根本から防げます。
- 参考: Maya など大手スタジオの基本リグでも推奨される方式ですが、チーム内の専任リガー(Rigging TD)との連携が必要です。