当サイトを閲覧いただきありがとうございます。
本記事では、Game Creator 2のコア機能のひとつである「Characters」(キャラクターシステム)について詳しく解説します。
Charactersは、プレイヤーやNPCなどシーン上のあらゆる「動く存在」を司るシステムです。Character コンポーネント1つに、移動・ジャンプ・アニメーション・IK・足音・ラグドールといった1キャラクターが必要とするほぼすべての要素がまとまっています。
公式ドキュメント:Game Creator 2 Documentation
Charactersとは
Character コンポーネントを任意のGameObjectに付けるだけで、移動・回転・IK・ジャンプ・落下・足音・アニメーションを備えた存在になります。
主な機能は以下のとおりです。
- Player Input:方向入力、ポイント&クリック、タンク操作など、制御方式を切替可能
- Rotation Modes:カメラ方向/移動方向/特定対象を向くなど、回転方式を複数装備
- World Navigation:Character Controller/NavMesh Agent/Rigidbodyからドライバを選択可
- Gestures & States:Mecanim上の軽量アニメーションシステム
- Inverse Kinematics:足接地や注視先への頭部向きを自動化
- Footstep Sounds:地面のテクスチャに応じた多層ミックス足音
- Dynamic Ragdoll:追加設定なしでラグドール化と復帰が可能
プレイヤーキャラクター
Is Player チェックボックスがONの Character は、Player ユニットを通じて入力を処理します。
シーンにPlayerは常に1体までです。切替はInstruction Change Player で行います。HierarchyメニューやToolbarから「Player」を生成すると Is Player が自動でONになります。
Characterコンポーネントの全体像
Characterコンポーネントは、インスペクタ上で次のブロックに分かれています。
General Settings
- Is Player:プレイヤーキャラとして扱うか
- Update Time:
Game Time(時間スケールに従う)/Unscaled Time(リアルタイム) - 人形アイコン(Mannequin icon):実行時にデバッグ情報を表示する
- 緑=正常/赤=該当する四肢がBusy/赤いドクロ=死亡
Kernel Settings
キャラクター動作の核となる5つのUnit群です。Unitとは Game Creator独自の概念で、キャラクター動作を構成する交換可能なモジュールのことです(公式では “Control Unit” とも呼ばれます)。
Extra Settings
- Inverse Kinematics(IKリグの管理)
- Footsteps(足音システム)
- Ragdoll(ラグドール)
Kernel(5つのUnit)
Kernelはキャラクター挙動を5種類の「Unit」に分割し、それぞれ独立に差し替え可能にした設計です。各Unitはインスペクタ右端のアイコンで実装を切り替えます。
| Unit | 役割 | 主な実装 |
|---|---|---|
| Player | ユーザー入力の解釈。Is Player がOFFなら無効 | Directional/Point & Click/Tank |
| Motion | 速度・加速度・重力などの運動特性と、ジャンプ等のコマンド受付 | Motion Controller(唯一の標準実装) |
| Driver | Motionで算出された動きをTransformに反映 | Character Controller/NavMesh Agent/Rigidbody |
| Rotation (Facing) | 体の向きを決める | Pivot/Pivot Delayed/Look at Target/Object Direction/Towards Direction/Tank |
| Animation (Animim) | 3D/2Dモデルを表示しアニメーション駆動 | Kinematic(唯一の標準実装) |
Player Unitの選択肢
- Directional:カメラ基準でWASD/左スティック入力。最も一般的で、3Dアクション、RPG、アドベンチャー全般に向きます
- Point & Click:マウスクリックで移動。DriverがNavMesh Agentなら障害物回避しながら目的地へ。クラシックRPG、ストラテジー、CRPG向きです
- Tank:前進キーでローカル前方へ移動。RotationはTankが必須。固定カメラ型ホラーなどに使われます
Motion Unitの主なパラメータ
- Speed / Rotation / Mass / Height / Radius / Gravity / Terminal Velocity
- Use Acceleration:加減速を使うか。使わない場合は最大速で即時移動
- Acceleration / Deceleration:立ち上がり/減速の速さ
- Can Jump / Air Jumps / Jump Force / Jump Cooldown:ジャンプ挙動
- 末尾にInteractionセクション(後述)
Driver Unit
- Character Controller:標準。ほぼすべてのケースで妥当
- Navmesh Agent:障害物回避可能だがジャンプ不可
- Rigidbody:Unityの物理エンジンによる挙動
DriverにはAxonometryフィールド(バージョン2.9.36以降)があり、移動を拘束できます。
| モード | 移動制約 |
|---|---|
| Side-Scroll XY | X軸方向に移動、Y軸に重力、Z軸は0固定 |
| Side-Scroll YZ | Z軸方向に移動、Y軸に重力、X軸は0固定 |
| Isometric 8 Directions | XZ平面を45度刻みで移動 |
| Isometric Cardinal | 東西南北(上下左右)のみ移動 |
| Isometric Ordinal | 斜め4方向のみ移動 |
Rotation Unit(Facing)
- Pivot:直近の移動方向を向く
- Pivot Delayed:遅延して回転(スニーク等の低速移動向き)
- Look at Target:特定オブジェクトを常に正面に据え、横移動はストレイフに
- Object Direction:他オブジェクトが向いている方向に合わせる(TPS/FPS向け)
- Towards Direction:ワールド空間の一方向を常に向く(オンレール等)
- Tank:指定キーでその場旋回
- ランタイム切替可:状況に応じて動的に差し替えできます(例:通常はPivot、敵接敵時はLook at Target)
Rotation側にもAxonometryがあり、Driverと値を合わせると整合性が取れます。各モードの回転制約は以下のとおりです。
| モード | 回転制約 |
|---|---|
| Side-Scroll XY | 左右のみ回転 |
| Side-Scroll YZ | 前後のみ回転 |
| Isometric 8 Directions | 45度刻みで回転 |
| Isometric Cardinal | 東西南北のみ回転 |
| Isometric Ordinal | 斜め4方向のみ回転 |
Animation Unit(Kinematic)
- Position / Rotation / Scale:Mannequinのローカル Transform
- Smooth Time:ほとんどのアニメ遷移にかかる秒数。大=なめらか・遅い/小=機敏・スナップ
- Mannequin:Characterと3Dモデルの間に入る中間オブジェクト
- Animator:モデル側のAnimator。標準はGCのLocomotion Runtime Animator Controllerを使う
- Start State:開始時のState(layer = -1)
- Reaction:Shooter/Meleeのデフォルトヒットリアクション
Still pose(1フレームのアイドル)も、Breathing(呼吸)とTwitching(微動)が重なることで生きた動きに見えるよう設計されています。
Extra Settings詳細
Inverse Kinematics
IKはスタック式です。Add IK Rig Layer ボタンでリグ追加し、上から下に適用されます。
標準装備として以下が用意されています。
- Look at Target:頭・首・胸・背骨を動かして注視点を向く(Hotspotと連携)。Humanoid専用
- Align Feet with Ground:足接地と傾斜追従。傾斜が強い場合は腰を下げて両足接地させる
Footsteps
- 足のボーンを配列で登録(デフォルトで人間の2本足を想定、
Add Footで拡張可) - Sound Assetに
Footstep Sounds(Material Soundsアセット)を紐付ける - 音はピッチ/スピードが自動で揺らされ、複数テクスチャが混ざる地面では音量もブレンドされる
Ragdoll
追加設定なしで物理反応するラグドール状態に遷移可能です。Skeletonアセットが必須となります。
パラメータは以下のとおりです。
- Transition Duration:ラグドール → リカバリアニメへのブレンド時間。0.5秒以上推奨(スナップ感を避けるため)
- Recover Face Down / Recover Face Up:体が下/上を向いているときの起き上がりアニメ
アニメーション(GesturesとStates)
Unity Mecanimの上に構築された独自層で、Animator Controllerに事前登録しなくてもアニメーションを動的に再生できる仕組みです。
Gestures(一発再生)
終わったら自動で元のアニメに戻る単発アニメ(パンチ・ヴォルト・手を振るなど)です。Play Gesture Instructionで再生します。
主なパラメータは以下のとおりです。
- Character / Animation Clip:対象キャラとクリップ(必須)
- Avatar Mask:適用する身体部位
- Blend Mode:
Blend(上書き)/Additive(加算) - Delay / Speed
- Root Motion:ルートモーション使用時は入力を無視
- Transition In / Out:フェードイン/アウト秒数
- Wait to Complete:完了まで次のInstructionを待たせるか
Gestureは常にStateより優先度が高いという点が重要です。
States(ループ再生)
- Animation State:1本のクリップをループ再生。Entry/ExitにGestureを仕込めます。バージョン2.5.20以降はOn Refresh Instructionsが末尾にあり、CharacterがStateを追加/削除するたびに下位レイヤーから上位レイヤーの順に呼び出されます
- Locomotion State:速度・方向・落下速度に応じてクリップをブレンド
- Basic State:アイドル+8方向の移動クリップ
- Complete State:アイドル+16方向(半速8+全速8)。アナログスティック想定ならこちら
- Airborne Mode:Single/Circular 8 Point/Circular 16 Point
- Properties(2.9.34以降):State自体に速度・回転速度・ジャンプ・重力などの上書き値を持たせられます。レイヤー番号が小さい順に適用され、上位レイヤーが上書きします
Layers(レイヤー優先度)
Photoshopのレイヤーと同じ発想で、番号が大きいほど優先されます。
例えばLayer 1/2/10にStateがあれば、再生されるのはLayer 10です。Layer 10を除去すればLayer 2に切り替わります。
追加・削除時には**Transition(遷移時間)**を設定するとスムーズにブレンドされます。
Gestureは常にあらゆるStateより優先です。
優先度の全体像は以下のとおりです。
[最高] Gesture(常に最上位で再生)
↑
[高い] State Layer 10
↑
[中間] State Layer 2
↑
[低い] State Layer 1
↑
[基底] Locomotion Controller(ベースアニメーション)
Weights(重み)
State追加は全置換ではなく、%指定でブレンドできます(例:走り+しゃがみ走りを50/50)。ランタイムではChange State Weightで変更可能です。
Stateの開始/停止
- Enter State Instruction:
State TypeでAnimationClip/Stateアセット/Runtime Animator Controllerを選択 - パラメータ:
Layer / Blend Mode / Delay / Speed / Weight / Transition - Stop State Instruction:指定LayerのStateを滑らかに停止。
Delay / Transition指定可
Custom Model
CharacterのAnimationセクションにキャラプレハブをドラッグ&ドロップするだけで差し替え可能です。ランタイムでの差し替えはChange Model Instructionで行います。
Locomotion Controllerを独自のものに差し替える場合は IAnimim インターフェース実装のカスタムユニットが必要です。
Inverse Kinematics詳細
リグ管理
Characterコンポーネント下部の「Add IK Rig」から追加します。上から下の順で実行されるため、同じボーンチェインに触れる後続リグが前段を上書きします。
標準Rig
Feet Align(Humanoid専用)
- 地形の凹凸に合わせて足を接地・回転
- Foot Offset:皮膚メッシュとボーン先端のずれを補正する垂直オフセット
- Foot Mask:接地判定するコライダーのレイヤー(例:水面は除外)
Look at Target(Humanoid専用)
- Hotspotの注視点に向かって頭・首・胸・背骨を回転
- Track Speed(deg/s)/Max Angle(周辺視野)/Head / Neck / Chest / Spine Weight
カスタムRig(Custom IK)
CharacterはレイヤードIKシステムを持ち、複数のリグをスタックして重ね掛けできます。Feet IK(足接地)やLook At(注視)だけでなく、独自のIKロジックを追加することも可能です。
リグへのアクセス
Character コンポーネントの IK プロパティからリグを取得します。該当リグが存在しなければ null が返ります。
// 例:足接地 IK を無効化
character.IK.GetRig<RigFeetPlant>().IsActive = false;
カスタムリグの作成
Game Creatorは2種類のIKラッパーを提供しています。
| 基底クラス | エンジン | 備考 |
|---|---|---|
TRigAnimationRigging | DOTS(Animation Riggingパッケージ) | 推奨。高パフォーマンス |
TRigAnimatorIK | Unity AnimatorIK | レガシー互換 |
いずれかを継承し、以下のメソッドをオーバーライドして実装します。
| メソッド | 呼び出しタイミング |
|---|---|
DoStartup(Character) | 初期化時に1回 |
DoEnable(Character) | リグ有効化時 |
DoDisable(Character) | リグ無効化時 |
DoUpdate(Character) | 毎フレーム |
public class MyCustomRig : TRigAnimationRigging
{
protected override bool DoStartup(Character character) { /* 初期化 */ }
protected override bool DoEnable(Character character) { /* 有効化 */ }
protected override bool DoDisable(Character character) { /* 無効化 */ }
protected override bool DoUpdate(Character character) { /* 毎フレーム更新 */ }
}
Footstep Sounds詳細
Phases(足接地検出)
- Phaseカーブ(アニメカーブ)で足の接地を検出(
Phase-0〜Phase-3の最大4本) - Humanoidはデフォルトで
Phase-0=左脚、Phase-1=右脚 - 値0=空中/値1=接地
- 独自アニメを使う場合はPhaseカーブを手動追加する必要あり(公式のFootsteps Generator拡張で自動化可)
Material Sounds
Create > Game Creator > Common > Material Soundsで作成- テクスチャごとに複数SFXを定義可能。再生時にランダム選択されますが、直前と同じ音は連続しない仕様です
- インパクト地点にパーティクル等のプレハブをプールから生成することも可能
- ピッチ/スピードを毎回微変化させて繰り返し感を抑制
- 複数テクスチャのブレンド地形では音量/ピッチが比例ミックス
- Characterの
Sound Assetフィールドにドラッグ&ドロップで紐付け
On Step Trigger
On Step イベントで歩行に合わせてInstruction実行(足跡を残すなど)が可能です。
RagdollとSkeleton
起動/復帰
- Start Ragdoll Instructionで開始
- ただし入力は残るため、通常は以下2つのInstructionを使います:
- Kill Character:インタラクトを無効化し自動的にラグドール化
- Revive Character:自動で起き上がりアニメを選択して制御復帰
- 下/上向きに応じて
Recover Face Down / Upが再生されます
Skeletonアセット
Ragdollのほか、Melee/Shooterのヒット判定でも使われる基幹アセットです。
Create > Game Creator > Characters > Skeleton で生成し、CharacterのAnimationタブにドラッグ&ドロップで紐付けます。
Skeletonの構成
- Skeleton Configuration Mode:専用シーンでキャラを中央表示。プレハブモデルを下部のフィールドにドラッグ&ドロップし、Change Characterボタンをクリックすることでプレビュー用モデルを差し替えられます
- Physical Material/衝突検出モード
- Volume(ボリュームボーン):
- Box:胸・平面向き
- Sphere:手・頭向き
- Capsule:大半の四肢向き
- 各ボリュームは
Bone Type(HumanoidのドロップダウンorRoot/Spine/...のパス)、体積定義、Joint(関節)で構成 - Create Humanoidボタン:Humanoidモデルをドロップすると Skeletonを自動推定してくれます
Markers(移動目的地)
Characterが向かう目的地を表すコンポーネントです。向きを示す黄色い矢印ギズモ付きとなっています。
- Stop Distance:到達判定の誤差許容。混雑時に押し合いを防ぐ
- Type:
- Directional:矢印と同じ位置・回転で停止
- Inwards:円周上の最寄り点に移動し、中心を向く(アイテム拾得などに便利)
Interaction(相互作用システム)
Character側の設定(Motion Unit内)
- Radius:注目対象と認識する最短距離
- Mode:対象の優先順位付け
- Near Character:Characterのインタラクション中心に最も近い対象を選ぶ。中心位置はオフセットで調整可能(コントローラ向き)
- Screen Center:画面中央に近い(FPS向き)
- Screen Cursor:カーソルに近い(ポイント&クリック向き)
- Interact Instructionで現在注目中のオブジェクトと相互作用
- BusyなキャラはInteractできない点に注意してください
Interactive Object側の設定
- TriggerコンポーネントにOn Interactイベントを置くだけで対象化されます
- On Focus / On Blurイベントで注目開始・解除も検知可
- Hotspotを併用すると、注目時にテキスト表示やプレハブ有効化ができます
Busy(身体部位の使用中判定)
身体の特定パーツが「使用中」か問い合わせる仕組みです。Mannequinアイコンが実行時に緑↔赤で切り替わり、各肢のBusy状態を可視化します。
Instructions/Conditionsから取得・設定可能です。
スクリプトAPI
IsArmLeftBusy : bool
IsArmRightBusy : bool
IsLegLeftBusy : bool
IsLegRightBusy : bool
AreArmsBusy : bool
AreLegsBusy : bool
IsBusy : bool
各肢には MakeLimbXXX()(例:MakeLegLeftBusy())でBusy化します。詳細メソッドは Plugins/GameCreator/Packages/Core/Runtime/Characters/Busy 以下のスクリプトを参照してください。
Handles(プロップ装着位置)
武器などのプロップをどのボーンの、どの位置・回転に装着するかを決めるアセットです。
上から順にConditionを評価し、合致したHandle情報を使います。例えばHumanoidなら右手に剣、非Humanoidならビーストの口に装着、といった使い分けが可能です。
同じ位置情報を複数武器で使い回せるため、アイテム数が多いゲームで有用です。
スクリプティング/拡張
フレーム更新順
Player.Update()→ 入力解釈、MotionのMoveToDirection/MoveToPositionを呼ぶMotion.Update()→ 重力・坂スライド・ダッシュ・ジャンプなど外部力計算Driver.Update()→ Transformを更新Facing.Update()→ 体の向きを計算Animim.Update()→ Animatorパラメータをフィード
各Unitは互いに参照可能(相互に読み出せる)です。
拡張ポイント(インターフェース)
| インターフェース | カスタム対象 |
|---|---|
IUnitPlayer | 独自入力システム |
IUnitMotion | 独自モーション計算 |
IUnitDriver | 他パッケージのCharacter Controller統合 |
IUnitFacing | 独自の向き制御(TUnitFacing 継承がレイヤー機構込みで推奨) |
IUnitAnimim | 独自Animator/Runtime Animator Controller対応 |
Motionのムーブ系メソッド
MoveToDirection/StopToDirectionMoveToLocation(Location)/MoveToTransform(Transform)/MoveToMarker(Marker)StartFollowingTarget(target, min, max)/StopFollowingTarget()Jump():条件を満たせばジャンプ/エアジャンプ
Facingのレイヤー API
int SetLayerDirection(int key, Vector3 direction, bool autoDestroyOnReach);
int SetLayerTarget(int key, Transform target);
void DeleteLayer(int key);
- 初回呼び出しで新規
keyが返ります。以降は同じkeyで更新 autoDestroyOnReach = trueで到達時に自動解除- 存在しない
keyを削除しても例外は出ません
// 特定対象を見続ける(第3引数 false → 到達しても自動解除しない)
IUnitFacing face = character.Facing.Current;
key = face.SetLayerTarget(key, lookAtTransform, false);
// 解除(存在しない key を渡しても例外は出ない)
face.DeleteLayer(key);
モデル変更(スクリプト)
GameObject instance = character.ChangeModel(prefab, default);
第2引数の ChangeOptions 構造体で足音・Skeleton・Animator Controller・オフセットも指定可能です。
IKリグへのアクセス
character.IK.GetRig<RigFeetPlant>().IsActive = false;
該当リグが無ければ null が返ります。
Breathing / Twitching
デフォルトのキャラは呼吸・微振動のプロシージャルアニメを全アニメに重ねています。HeartRate / Exertion / Twitching プロパティで強度を動的変更可能です。
使い始めるためのミニガイド
- Hierarchy右クリック →
Game Creator > Characters > PlayerでPlayerを生成(シーンにカメラとライトがあることを事前に確認) - CharacterのMotionで
Speed/Rotation、DriverでCharacter Controller、RotationでPivotを確認 - Camera Shotを作って
Look Target/Orbit TargetにPlayerを設定 - Locomotion Animator Controllerが標準でAnimatorに設定されているので、CharacterのAnimationセクションにモデルをドラッグ&ドロップするだけで走り・ジャンプが動く
- 足音は
Material Soundsを作り、CharacterのSound Assetにドロップ - 倒れるギミックが必要なら
Skeletonを作ってCreate Humanoidでラグドール準備 - 敵やインタラクションが必要になったらTriggerの
On Interactを設置
Visual Scriptingリファレンス(Instruction/Condition/Event全一覧)
Charactersカテゴリ配下でVisual Scriptingから呼び出せる、すべてのInstruction・Condition・Eventを網羅した早見表です。ノード追加時の検索補助として使ってください。
Instructions(命令)
Visual ScriptingのActionsコンポーネントに追加できる命令群です。カテゴリは Characters > <サブカテゴリ> となります。
Animation(アニメーション)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Change Smooth Time | ロコモーション間のブレンド時間を変更 | Smooth Time(0〜0.5推奨)/Duration/Easing/Wait to Complete/Character |
| Change State Weight | 指定レイヤーのStateの不透明度を時間経過で変更 | Character/Layer/Weight/Transition |
| Enter State | CharacterにState(AnimationClip/Stateアセット/Runtime Animator Controller)を再生させる | Character/State/Layer/Blend Mode/Delay/Speed/Weight/Transition |
| Play Gesture | 単発のAnimationClipをCharacterに再生 | Character/Animation Clip/Avatar Mask/Blend Mode/Delay/Speed/Transition In/Out/Wait to Complete |
| Stop Gesture | 再生中のGestureをすべて停止 | Character/Delay/Transition |
| Stop State | 指定レイヤーのStateを停止 | Character/Layer/Delay/Transition |
Busy(身体部位の使用中管理)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Set Available | 指定のLimbsを利用可能状態に戻す | Character/Limbs |
| Set Busy | 指定のLimbsを使用中状態にする | Character/Limbs |
Combat > Invincibility(無敵化)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Set Invincible | Characterの無敵状態を一定時間ONにする | Character/Duration/Wait Until Complete |
Combat > Poise(怯み値)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Set Poise | CharacterのPoise値を設定 | Character/Poise |
Combat > Targeting(ターゲット管理)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Add Target Candidate | ターゲット候補リストに追加 | Character/Target |
| Remove Target Candidate | 候補リストから除外 | Character/Target |
| Set Target | 現在のターゲットを直接指定 | Character/Target |
| Clear Target | ターゲットを解除 | Character |
| Cycle Next Target | 候補リストの次候補へ切替 | Character |
| Cycle Previous Target | 候補リストの前候補へ切替 | Character |
| Cycle Closest Target | 最近接の候補に切替 | Character |
| Cycle Direction Target | カメラ視点から指定方向にある候補へ切替 | Character/Camera/Direction |
Footsteps(足音)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Change Footstep Sounds | 使用するMaterial Soundsテーブルを差し替え | Character/Footsteps |
| Play Footstep | Material Soundアセットから1回鳴らす | Character/Material Sound |
IK(インバースキネマティクス)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Active Feet IK | 足接地IKの有効/無効 | Character/Active |
| Active Lean IK | 傾きIKの有効/無効 | Character/Active |
| Active Look IK | 注視IKの有効/無効 | Character/Active |
| Start Looking At | 指定Transformを注視開始 | Character/Target/Layer |
| Stop Looking At | 注視を停止 | Character/Target/Layer |
| Clear Looking Around | Hotspot由来でない注視(priority 0)を全解除 | Character |
Interaction(相互作用)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Interact | 現在フォーカス中の対象と相互作用 | Character |
Navigation(移動)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Jump | ジャンプ実行 | Character |
| Move Direction | 指定方向に連続的に移動させる | Direction/Priority/Character |
| Stop Move | 移動を停止 | Priority/Character |
| Move To | 指定ロケーションに移動。失敗時Instructionも設定可 | Location/Stop Distance/Cancel on Fail/On Fail/Character |
| Teleport | 指定ロケーションに瞬間移動 | Location/Character |
| Start Following | 対象を追従開始 | Target/Min Distance/Max Distance/Character |
| Stop Following | 追従を解除 | Character |
| Dash | 方向と時間を指定してダッシュ | Direction/Velocity/Duration/Wait to Finish/Mode(Cardinal/Single)/Animation Speed/Transition In/Out/Character |
| Cancel Dash | ダッシュを中断 | Character |
| Set Character Driver | Driver Unitを別実装に差し替え | Character/Driver |
| Set Character Rotation | Rotation Unitを別実装に差し替え | Character/Rotation |
Player(プレイヤー)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Change Player | Playerとして扱うCharacterを切り替える | Character |
| Set Player Input | Player Input Unitを差し替え(Directional/Point&Click/Tank等) | Character/Input |
Properties(キャラクタープロパティ)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Axonometry | Axonometry値(2D/Iso制約)を変更 | Axonometry/Character |
| Can Collide | 他物体との衝突可否 | Character/Can Collide |
| Can Jump | ジャンプ可否 | Character/Can Jump |
| Change Angular Speed | 角速度を時間変化で変更 | Angular Speed/Duration/Easing/Wait to Complete/Character |
| Change Gravity | 重力(上昇/下降/両方)を時間変化で変更 | Mode/Gravity/Duration/Easing/Wait to Complete/Character |
| Change Height | 高さを時間変化で変更 | Height/Duration/Easing/Wait to Complete/Character |
| Change Jump Force | ジャンプ力を時間変化で変更 | Jump Force/Duration/Easing/Wait to Complete/Character |
| Change Mass | 質量を時間変化で変更 | Mass/Duration/Easing/Wait to Complete/Character |
| Change Movement Speed | 最大移動速度を時間変化で変更 | Speed/Duration/Easing/Wait to Complete/Character |
| Change Radius | 当たり半径を時間変化で変更 | Radius/Duration/Easing/Wait to Complete/Character |
| Change Terminal Velocity | 最大落下速度を時間変化で変更(滑空など) | Terminal Velocity/Duration/Easing/Wait to Complete/Character |
| Change Time Mode | Game Time / Unscaled Timeを切替 | Time Mode/Character |
| Is Controllable | Player入力の受付可否を切替(カットシーン中など) | Character/Is Controllable |
| Kill Character | 死亡状態にする(自動的にラグドール化) | Character |
| Revive Character | 復活させ、起き上がりアニメ実行 | Character |
| Mannequin Position | Mannequinのローカル位置を変更 | Character/Position |
| Mannequin Rotation | Mannequinのローカル回転を変更 | Character/Rotation |
| Mannequin Scale | Mannequinのローカルスケールを変更 | Character/Scale |
| Reset Vertical Velocity | 垂直速度を0にリセット | Character |
Ragdoll(ラグドール)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Start Ragdoll | ラグドール状態に遷移 | Character |
| Recover Ragdoll | ラグドール状態から起き上がる | Character |
Visuals(見た目/装備)
| 命令 | 機能 | 主なパラメータ |
|---|---|---|
| Attach Prop | ボーンにPropをプレハブorインスタンスで装着 | Character/Type/Prop/Bone/Position/Rotation |
| Remove Prop | 装着済みPropを除去 | Character/Type/Prop |
| Drop Prop | 装着済みPropを落とす | Character/Type/Prop |
| Change Model | モデルを差し替え(Skeleton/Footstep Sounds/Offset任意) | Character/Model/Skeleton/Footstep Sounds/Offset |
| Put On Skin Mesh | Skin Mesh Rendererプレハブを新規装着 | Prefab/On Character |
| Take Off Skin Mesh | 装着済みSkin Meshを取り外す | Prefab/From Character |
Conditions(条件)
Conditions コンポーネントのBranchやCondition系ノードで使える条件群です。
Animation
| 条件 | 判定内容 | 主なパラメータ |
|---|---|---|
| Has State In Layer | 指定レイヤーにStateが再生中ならtrue | Layer/Character |
Busy
| 条件 | 判定内容 | 主なパラメータ |
|---|---|---|
| Is Available | Characterが何もしておらず新規アクション可能ならtrue | Character |
| Is Busy | Characterが何らかのアクション中ならtrue | Character |
| Are Arms Available | 両腕が使用可能ならtrue | Character |
| Are Legs Available | 両脚が使用可能ならtrue | Character |
| Is Left Arm Available | 左腕が使用可能ならtrue | Character |
| Is Right Arm Available | 右腕が使用可能ならtrue | Character |
| Is Left Leg Available | 左脚が使用可能ならtrue | Character |
| Is Right Leg Available | 右脚が使用可能ならtrue | Character |
| Is Humanoid | Humanoidモデルならtrue | Character |
Combat
| 条件 | 判定内容 | 主なパラメータ |
|---|---|---|
| Is Invincible | 無敵状態ならtrue | Character |
Interaction
| 条件 | 判定内容 | 主なパラメータ |
|---|---|---|
| Can Interact | 相互作用可能な対象が存在するならtrue | Character |
Navigation
| 条件 | 判定内容 | 主なパラメータ |
|---|---|---|
| Is Airborne | 空中にいるならtrue | Character |
| Is Grounded | 接地しているならtrue | Character |
| Is Idle | 移動していないならtrue | Character |
| Is Moving | 移動中ならtrue | Character |
| Is Dashing | ダッシュ中ならtrue | Character |
| Raycast Floor | 足元一定距離にコライダーがあるならtrue | Character |
Properties
| 条件 | 判定内容 | 主なパラメータ |
|---|---|---|
| Can Jump | Can Jumpプロパティが ONならtrue | Character |
| Compare Foot Phase | 指定Phaseの足が接地中ならtrue | Character |
| Compare Gravity | 重力値が条件に一致するならtrue | Character |
| Compare Height | 身長値が条件に一致するならtrue | Character |
| Compare Mass | 質量が条件に一致するならtrue | Character |
| Compare Radius | 半径が条件に一致するならtrue | Character |
| Compare Speed | 速度が条件に一致するならtrue | Character |
| Jump Force(Compare Jump Force) | ジャンプ力が条件に一致するならtrue | Character |
| Terminal Velocity(Compare Terminal Velocity) | 最大落下速度が条件に一致するならtrue | Character |
| Is Controllable | Player入力を受け付けているならtrue | Character |
| Is Dead | 死亡状態ならtrue | Character |
| Is Player | Is Playerフラグが ONならtrue | Character |
Visuals
| 条件 | 判定内容 | 主なパラメータ |
|---|---|---|
| Has Prop Attached | 指定ボーンにPropが装着されているならtrue | Bone/Character |
Events(イベント)
Trigger コンポーネントに追加して、該当イベント発生時にInstructionsを発火させます。
Characters(ルート直下)
| イベント | 発火タイミング |
|---|---|
| On Become Player | NPCがPlayerに切り替わった瞬間 |
| On Become NPC | PlayerがNPCに戻った瞬間 |
| On Change Model | Characterのモデルが変更された瞬間 |
| On Die | Characterが死亡した瞬間 |
| On Revive | 死亡状態から復活した瞬間 |
Combat
| イベント | 発火タイミング |
|---|---|
| On Defense Change | Defense値が変化したとき |
| On Dodge | 攻撃を回避したとき |
| On Invincibility Change | 無敵状態が変化したとき |
| On Poise Break | Poiseが破られたとき |
| On Poise Change | Poise値が変化したとき |
| On Target Change | 戦闘ターゲットが変わったとき |
Navigation
| イベント | 発火タイミング |
|---|---|
| On Dash | ダッシュ実行時 |
| On Jump | ジャンプ実行時 |
| On Land | 着地時 |
| On Step | 1歩踏み出すたび(足跡・エフェクト・音の差し込みに便利) |
Ragdoll
| イベント | 発火タイミング |
|---|---|
| On Start Ragdoll | ラグドール状態に入った瞬間 |
| On Recover Ragdoll | ラグドールから復帰した瞬間 |
なお、ここに挙げた以外にもInteraction(On Interact/On Focus/On Blur)やAudio、Inputなど他カテゴリにもCharacterと関連するイベントがあります。
実践的な使い方 ― やりたいこと別の構成ガイド
「こういうキャラクター挙動を実現したい」場合にどのUnit・命令を使うかをまとめます。
3Dアクション/RPGの標準的なプレイヤー操作
カメラの向きを基準にWASD/左スティックでキャラクターを移動させる構成です。
| 使うもの | 設定 |
|---|---|
| Player Unit | Directional |
| Driver Unit | Character Controller |
| Rotation Unit | Pivot(移動方向を向く) |
最も汎用的な構成で、ほとんどの3Dゲームに適しています。
クラシックRPG/ストラテジーのポイント&クリック移動
マウスクリックした地点にキャラクターが障害物を避けながら歩いていく構成です。
| 使うもの | 設定 |
|---|---|
| Player Unit | Point & Click |
| Driver Unit | NavMesh Agent(障害物回避のため) |
| Rotation Unit | Pivot |
固定カメラ型ホラー(バイオハザード風)のタンク操作
カメラの向きに関係なく、前進キーでキャラクターのローカル前方に進み、左右キーでその場回転する構成です。
| 使うもの | 設定 |
|---|---|
| Player Unit | Tank |
| Driver Unit | Character Controller |
| Rotation Unit | Tank(必須、Player Unitの Tankと対) |
敵と対峙したときにストレイフ(横歩き)させる
通常は移動方向を向くが、敵と戦闘状態に入ったら敵の方を常に向いたまま横移動します。
| 使うもの | 設定 |
|---|---|
| 通常時 Rotation Unit | Pivot |
| 戦闘時 Rotation Unit | Look at Target(敵を常に正面に据え、ストレイフ) |
| 切替命令 | Set Character Rotation |
ランタイムで状況に応じてシームレスに切り替わります。
TPS/FPSでキャラクターの体をカメラの向きに合わせる
銃を構えたとき、キャラクターがカメラの向きと同じ方向を向き、武器の方向がカメラの視線と一致するようにする構成です。
| 使うもの | 設定 |
|---|---|
| Rotation Unit | Object Direction(カメラオブジェクトの向きに合わせる) |
横スクロール/アイソメトリックゲームの移動制約
3D空間を使いつつ、移動を特定の軸や方向に制限する構成です。
| 使うもの | 設定 |
|---|---|
| Driver Unit | Axonometryフィールドを設定 |
| Rotation Unit | AxonometryをDriverと同じ値に設定 |
| Axonometryモード | 用途 |
|---|---|
| Side-Scroll XY | 横スクロール(X軸移動、Y軸重力) |
| Side-Scroll YZ | 奥行き方向の横スクロール |
| Isometric 8 Directions | 見下ろし型アイソメトリック(8方向) |
| Isometric Cardinal | 東西南北の4方向のみ |
| Isometric Ordinal | 斜め4方向のみ |
バージョン2.9.36以降で利用可能です。DriverとRotationの両方に同じAxonometryを設定して整合性を取ります。
単発アニメーション(パンチ・手を振るなど)を再生する
一度だけ再生して自動で元のアニメーションに戻る動作を行います。
| 使うもの | 設定 |
|---|---|
| 命令 | Play Gesture |
| 最低限の設定 | Character + Animation Clip(他はデフォルトで動作) |
| 上半身だけ | Avatar Maskを指定すれば下半身は走りのまま上半身だけパンチなどが可能 |
| 連続再生 | Wait to CompleteをONにして複数のGestureをActionsに並べれば順番に再生 |
Gestureは常にあらゆるStateより優先されます。
しゃがみ・水泳などの状態アニメーションを切り替える
ループする姿勢アニメーション(しゃがみ、座る、水泳など)を動的に開始・停止します。
| 使うもの | 設定 |
|---|---|
| 開始命令 | Enter State(State Type = Animation Clip or Stateアセット) |
| 停止命令 | Stop State(Layer指定 + Transitionでフェードアウト) |
| Layer | 数字が大きいほど優先度が高い |
レイヤー活用例:
- Layer 1:走行State(Speed = 10)
- Layer 2:しゃがみ走行State(Speed = 5)
- Layer 2を追加すると、上位レイヤーのStateが再生され移動速度も5に変わる
- Layer 2をStopするとLayer 1に戻り、速度も10に復帰
入場/退場アニメーション付きのStateを使う
剣を構えるとき「抜刀アニメ」→「構えループ」→ 解除時「納刀アニメ」のように、Stateの出入りに一発アニメを付けます。
| 使うもの | 設定 |
|---|---|
| アセット | Stateアセット(Create > Game Creator > Characters > Animation State) |
| Entry | State開始時に再生されるGesture(例:抜刀) |
| Exit | State終了時に再生されるGesture(例:納刀) |
| State Clip | ループするアニメ(例:構え) |
NPCを特定の位置に移動させてからアクションさせる
NPCがドアの前まで歩き、正しい向きで止まってからドアを開ける構成です。
| 使うもの | 設定 |
|---|---|
| コンポーネント | Marker(移動先に配置) |
| Markerの Type | Directional(矢印の位置・向きで停止) |
| 命令 | Move To(LocationにMarkerを指定) |
フロー例:Move To(ドア前Marker)→ Wait to Complete → Play Gesture(ドアを開けるアニメ)
群衆の場合はStop Distanceを少し大きくすると、NPC同士がぶつかり合わずに「おおよそ到着」として処理できます。
どの角度からでもアイテムを拾えるMarkerを作る
地面に落ちているアイテムを、キャラクターがどの方向から近づいても自然に拾えるようにします。
| 使うもの | 設定 |
|---|---|
| コンポーネント | Marker(アイテム位置に配置) |
| Markerの Type | Inwards(円周上の最寄り点に移動し、中心を向く) |
死亡→ラグドール→復活の流れを作る
敵を倒したらラグドール状態に、復活イベントで自動的に起き上がります。
| 使うもの | 役割 |
|---|---|
| 死亡命令 | Kill Character(インタラクト無効化+自動ラグドール化) |
| 復活命令 | Revive Character(体の向きに応じた起き上がりアニメ→制御復帰) |
| 設定 | CharacterのRagdollセクションにSkeletonアセットを紐付け |
| 起き上がりアニメ | Recover Face Down/Recover Face Upに設定 |
| Transition Duration | 0.5秒以上推奨(スナップ感を避けるため) |
Start Ragdoll を直接使うと入力が残ったままになるため、通常はKill/Reviveのペアが推奨です。
カットシーン中にプレイヤー操作を無効化する
イベント中にプレイヤーが動き回れないようにします。
| 使うもの | 設定 |
|---|---|
| 命令 | Is Controllable(Character/Is Controllable = false) |
| 復帰 | カットシーン終了時に Is Controllable = true |
インタラクション対象の優先順位を操作タイプに合わせる
| Mode | 最適な操作形式 |
|---|---|
| Near Character | コントローラー(キャラクター中心から最寄りの対象) |
| Screen Center | FPS(画面中央に近い対象を優先) |
| Screen Cursor | ポイント&クリック(カーソルに近い対象を優先) |
設定場所はCharacterのMotion Unit内Interactionセクションの Modeフィールドです。
NPCに特定のキャラクターを追従させる
護衛NPCがプレイヤーに付いてくるようにします。
| 使うもの | 設定 |
|---|---|
| 開始命令 | Start Following(Target = Player、Min/Max Distanceで追従距離を指定) |
| 停止命令 | Stop Following |
Min Distance以内に入ると停止、Max Distance以上離れると追いかけ始める、という動作になります。DriverがNavMesh Agentなら障害物を避けて追従します。
アクションゲームのダッシュ(回避行動)を実装する
ボタン入力で指定方向に短時間だけ素早く移動する回避ダッシュです。
| 使うもの | 設定 |
|---|---|
| 命令 | Dash |
| Direction | ダッシュ方向 |
| Velocity | ダッシュ速度 |
| Duration | ダッシュ持続時間(秒) |
| Mode | Cardinal(4方向)/ Single(入力方向) |
| Transition In/Out | アニメーションのブレンドイン・アウト |
ダッシュ中に中断したい場合は Cancel Dash 命令を使います。
武器やアイテムのプロップをキャラクターに装着する
剣を手に持たせる、盾を背中に付けるなどの構成です。
| 使うもの | 設定 |
|---|---|
| 命令 | Attach Prop(Character/Bone/Position/Rotationを指定) |
| 取り外し | Remove Prop(消える)または Drop Prop(落とす) |
| Handlesアセット | 複数キャラで同じ装着位置を使い回したい場合に有用 |
Humanoid/非Humanoidで装着先を分岐する条件分岐もHandlesアセット内で設定できます。
足を地形に合わせて接地させる(IK)
坂道や段差でキャラクターの足が地面に自然に接地するようにします。
| 使うもの | 設定 |
|---|---|
| IK Rig | Feet Align(Humanoid専用) |
| Foot Offset | ボーン先端とメッシュ表面の差を補正する垂直オフセット |
| Foot Mask | 接地判定するレイヤー(水面などは除外) |
キャラクターが近くの注目対象を自然に見るようにする
プレイヤーがHotspotに近づくと、頭・首・胸がそちらを向きます。
| 使うもの | 設定 |
|---|---|
| IK Rig | Look at Target(Humanoid専用) |
| Track Speed | 注視速度(deg/s) |
| Max Angle | 周辺視野角度(この角度を超えると追わない) |
| 各Weight | Head/Neck/Chest/Spineの回転寄与度 |
Hotspotコンポーネントと連携して動作します。
公式リンク
まとめ
本記事ではGame Creator 2のCharacters(キャラクターシステム)について解説しました。如何だったでしょうか。
Charactersは5つのUnit(Player・Motion・Driver・Rotation・Animation)を組み合わせることで、あらゆるジャンルのゲームに対応したキャラクター制御を実現できるシステムです。
ノーコードでの設定変更からC#スクリプトによる拡張まで幅広くサポートしており、プロトタイプ段階から本格的な製品まで対応可能な柔軟性を持っています。
次回はCameras(カメラシステム)について解説していきます。
それでは次の記事も閲覧いただけると幸いです。
📚 シリーズ:Game Creator 2 完全ガイド(2/16)



