• ゲーム
  • Industry
  • リソース
  • コミュニティ
  • 学習
  • サポート
開発
Unityエンジン
任意のプラットフォーム向けに2Dおよび3Dゲームを構築
ダウンロードプランと価格
収益化
アプリ内課金(IAP)
ストア全体でIAPを発見し、管理する
Mediation
収益を最大化し、マネタイズを最適化する
Ad Quality
アプリのユーザーエクスペリエンスを保護する
Tapjoy
長期的なユーザーの忠誠心を構築する
すべてのマネタイズ製品
詳しく見る
詳しく見る
発見され、モバイルユーザーを獲得する
UnityベクターAI
プレイヤーを適切なゲームに接続する
Auraのオンデバイス広告
ピークエンゲージメント時にデバイス上のユーザーにリーチする
すべての成長製品
活用事例
3Dコラボレーション
リアルタイムで3Dプロジェクトを構築およびレビューする
没入型トレーニング
没入型環境でのトレーニング
顧客体験
インタラクティブな3D体験を作成する
すべての業界ソリューション
業界
製造業
運用の卓越性を達成する
小売
店内体験をオンライン体験に変換する
自動車
革新と車内体験を高める
全業界
技術ライブラリ
ドキュメント
公式ユーザーマニュアルとAPIリファレンス
開発者ツール
リリースバージョンと問題追跡
ロードマップ
今後の機能をレビューする
用語集
技術用語のライブラリ
インサイト
ケーススタディ
実際の成功事例
ベストプラクティスガイド
専門家のヒントとコツ
すべてのリソース
新機能
ブログ
更新情報、情報、技術的ヒント
お知らせ
ニュース、ストーリー、プレスセンター
コミュニティハブ
ディスカッション
議論、問題解決、つながる
イベント
グローバルおよびローカルイベント
コミュニティストーリー
Made with Unity
Unityクリエイターの紹介
ライブストリーム
開発者、クリエイター、インサイダーに参加する
Unity Awards
世界中のUnityクリエイターを祝う
すべてのレベルに対応
Unity Learn
無料でUnityスキルをマスターする
プロフェッショナルトレーニング
Unityトレーナーでチームをレベルアップ
Unity初心者向け
スタートガイド
学習を開始しましょう
Unityエッセンシャルパスウェイ
Unity は初めてですか?旅を始めましょう
ハウツーガイド
実用的なヒントとベストプラクティス
教育
学生向け
キャリアをスタートさせる
教育者向け
教育を大幅に強化
教育機関向けライセンス
Unityの力をあなたの機関に持ち込む
認定教材
Unityのマスタリーを証明する
サポートオプション
ヘルプを得る
Unityで成功するためのサポート
Success Plan
専門的なサポートで目標を早く達成する
FAQ
よくある質問への回答
お問い合わせ
私たちのチームに連絡する
プランと価格
言語設定
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
ソーシャル
通貨
購入
  • プロダクト
  • Unity Ads
  • サブスクリプション
  • Unity Asset Store
  • リセラー
教育
  • 学生
  • 教育関係者
  • 教育機関
  • 認定資格試験
  • 学ぶ
  • スキル開発プログラム
ダウンロード
  • Unity Hub
  • ダウンロードアーカイブ
  • ベータプログラム
Unity Labs
  • ラボ
  • 研究論文
リソース
  • Learn プラットフォーム
  • コミュニティ
  • ドキュメント
  • Unity QA
  • FAQ
  • サービスのステータス
  • ケーススタディ
  • Made with Unity
Unity
  • 当社について
  • ニュースレター
  • ブログ
  • イベント
  • キャリア
  • ヘルプ
  • プレス
  • パートナー
  • 投資家
  • アフィリエイト
  • セキュリティ
  • ソーシャルインパクト
  • インクルージョンとダイバーシティ
  • お問い合わせ
Copyright © 2025 Unity Technologies
  • 法規事項
  • プライバシーポリシー
  • クッキーについて
  • 私の個人情報を販売または共有しないでください

「Unity」の名称、Unity のロゴ、およびその他の Unity の商標は、米国およびその他の国における Unity Technologies またはその関係会社の商標または登録商標です(詳しくはこちら)。その他の名称またはブランドは該当する所有者の商標です。

Hero background image

Unityでアニメーターコントローラーを構築するためのヒント

このウェブページは、お客様の便宜のために機械翻訳されたものです。翻訳されたコンテンツの正確性や信頼性は保証いたしかねます。翻訳されたコンテンツの正確性について疑問をお持ちの場合は、ウェブページの公式な英語版をご覧ください。
ここをクリックしてください。

スクリプトのようにキャラクターのためのアニメーターコントローラーを作成します。再利用、サポート、デバッグが簡単になるように、開発サイクル全体で使用できるようにします。

以下のすべてのスクリーンショットは、Campo SantoによるFirewatchのキャラクターHenryのアニメーションからのものです。

  • ブレンドツリーで複雑さを隠す
  • レイヤーをスクリプトクラスとして考えてみてください
  • パターンを再利用する
  • ハブとスポーク
  • 共有のエントリー/共有のエグジットパターン
  • クリティカルセクションとセトルパターン
  • ステートマシンビヘイビアの中に複雑なコードを書かないでください
  • アニメーションイベントが常に発火することを保証するためにステートマシンビヘイビアを使用してください
  • その他のリソース
ブレンドツリー画像

ブレンドツリーで複雑さを隠す

ブレンドツリーは複雑さを隠すのに最適です。ブレンドツリーは、コードに戻ることがないため、状態を持ちません。定義したパラメータに基づいて異なるクリップ間をブレンドします。

これの重要性は、ゲームの他の部分を壊すことを心配せずにブレンドツリーを反復できることです。複雑な状態のウェブを隠し、将来的なバグを防ぐことができます。なぜなら、ブレンドツリーのほとんどのアニメーションに動作を結びつけることができないからです。

アニメーターの状態

レイヤーをスクリプトクラスとして考えてみてください

レイヤーをスクリプトのクラスとして考えると役立ちます。レイヤー内のすべてが同じ論理的および動作的機能を果たすことを望みます。これは、各個別のレイヤーが他のレイヤーをオーバーライドするかどうかを制御するためです。特定のボーンに影響を与えるかどうか、そのレイヤーが加算的であるかどうかなどです。

パターンを再利用する

状態およびサブ状態マシンにおける再利用可能で論理的なパターンは、開発を加速し、デバッグを容易にし、バグを減少させることができ、同時に複数の人が類似のコンテンツを作成できるようにします。

以下のセクションでは、レイヤーを構造化するのに役立つパターンを紹介します。

ハブとスポークのアニメーター

ハブとスポーク

このパターンは、遷移が空の状態に出て戻るのを明確に見ることができるため、デバッグを容易にします。ハブの各スポークは、接触するすべての状態をリセットする必要があります。

スポークは、以下のパターンを使用してサブ状態マシンを作成するのに適した候補です。

エントリーからエグジットのアニメーター

共有のエントリー/共有のエグジットパターン

状態を「イントロ」 – 実行/ループ – 「アウトロ」のパターンにグループ化することで、イントロおよびアウトロの状態にアニメーションイベントやステートマシンの動作をクリーンに接続できます。ブレンドツリーと同様に、ゲームを壊すことを心配せずに内部の実行/ループ状態を反復して変更できます。

セクションとセトルパターン

クリティカルセクションとセトルパターン

中断可能なアニメーション、特にプレイヤー入力駆動のアニメーションの場合、クリップを2つの部分に分けます。まず、常に完了まで再生される必要があるすべての状態変更、効果、およびダメージを含むクリティカルセクションを維持します。次に、アイドルに戻るのが見栄えが良く、新しい入力によって中断できるセトルアニメーションを考案します。

アニメーションが望ましい動作と外観を持つようになったら、アニメーターの状態をゲームの状態にフィードバックする必要があります。以下のセクションで考慮すべき重要なポイントを確認してください。

ステートマシンビヘイビアの中に複雑なコードを書かないでください

ステートマシンの動作は、任意のアニメーションステートに添付できるコードの一部です。それらを使用して、アニメーター自体の状態に直接行動を結びつけます。

その中に複雑なゲームプレイコードを書くことは避けてください。なぜなら、状態の変更がどこから来ているのかを追跡するのが難しくなる可能性があるからです。ステートマシンの動作を使用してゲームプレイコードを駆動している場合は、メッセージングシステムを活用してください。マネージャークラスに話しかけるか、より高いレベルのパラメータからコードをトリガーします。

Debug.Break()は、使用できる最も効果的なステートマシンの動作の1つです。アニメーションのセットアップのどこにでも取り付けることができ、視覚スクリプトシステムのブレークポイントに似たものを持つことができます。

適切な場所でC#コードを使用してください。何百、何千もの遷移を管理したり、あちこちにAnyState遷移を接続したりするのではなく、Animator.PlayまたはAnimator.CrossFadeを使用して、コードから直接遷移を動的に作成します。それでも十分な制御が得られない場合は、コードを使用してアニメーションするための他の方法を見つけるためにUnityのPlayables APIを調べてください。いくつかの例はここにあります。

ステートマシンの振る舞い

アニメーションイベントが常に発火することを保証するためにステートマシンビヘイビアを使用してください

アニメーションイベントは、アニメーションクリップの特定の瞬間をゲーム内の特定の状態の変化に結びつけます。視覚効果や音響効果などの要素を引き起こすために使用できます。ただし、クリップが発火する前に遷移すると、それは決して発火しません。これを解決する方法の一つは、特定の時点に達したときにイベントが常に発火することを保証するステートマシンの振る舞いを追加することです。ゲーム内で他に何が起こっても(または起こらなくても)。

その他のリソース

Unityの技術アーティスト向けの主要なツールとワークフロー

アセットストアのトップ評価アニメーション

ゲームの事例研究

無料のUnity電子書籍とガイド