IK は、手先や足先の位置を決めると、腕や脚の曲がり方を Spine が自動で計算する仕組みです。
歩くアニメーションで足が床にめり込まないようにするときなどに使います。
FKは親から子へボーンの回転を指定する方法で、IKは手先・足先の目標位置から回転を求める方法です。
- 作り方:ボーンを1本か2本(親と子)選び、プロパティの「New…」→「IK Constraint」→ ターゲットをクリック
- 1本IK はボーンがターゲットの方を向き、2本IK は先端がターゲットに届くように2本が曲がる
- 3本以上のボーンを1つの IK で動かすことはできない
- 曲がる向きは「Positive」、FK との混ぜ具合は「Mix」で決める
2026年10月23日、公式ガイド・変更履歴・spine-runtimes 4.3のソースを再照合しました。
ガイドには旧版の説明が残るため、4.3との違いを本文で区別しています。
Unity・Spineエディタでの操作再現は含まず、画面の英語名と版ごとの差を分けて説明します。
Spine 4.3ではEssentialでもIKを利用できます。
公式変更履歴の4.3.78-betaで対応が記載され、公式サポートも利用・書き出しを案内しています。
ガイドに残る「Essentialでは利用不可」は4.3の説明として使わないでください。
IKコンストレイントを作る
- 曲げたいボーンを1本、または直接つながる親子2本を選ぶ
- ツリーのプロパティで「New…」→「IK Constraint」を選ぶ
- ターゲットにするボーンをクリックする
空白をクリックすると、その位置に新しいターゲットボーンを作ります。
拘束するボーン自体をクリックした場合は先端にターゲットが作られ、作成時の姿勢を保てます。
ターゲットは、IK で動かすボーンの子や孫にはできません。
2本IKでは、親と子の継承設定をどちらもNormalにして確認します。
確認した4.3 C#実装では、片方でもNormal以外なら2本IKの処理を終了します。
ターゲットを動かしても反応しない場合は、Mixだけでなく、この継承設定も確認してください。
あとからターゲットを変えるときは、プロパティの Target の鉛筆のアイコンを使います。
1本IKと2本IK
| 1本IK | 2本IK | |
|---|---|---|
| 動き | ボーンがターゲットの方を向く | 親と子が回転して、子の先端をターゲットに届かせる |
| 使いどころ | 目線・頭の向き・武器の向き | 腕・脚 |
| 使える設定 | Mix・Compress・Stretch | Mix・Softness・Stretch・Positive |
3本以上のボーンを1つの IK で動かすことは、曲がり方が1つに決まらないため、できません。
設定
| 設定 | 働き |
|---|---|
| Mix | ふつうの回転(FK)と IK の回転を0〜100%で混ぜる |
| Positive | 2本IKで、子が正の向き(反時計回り)に曲がる |
| Softness | 2本IKだけ。伸び切る直前の動きをゆっくりにする |
| Compress | 1本IKだけ。ターゲットが近いとボーンを縮める |
| Stretch | ターゲットが遠いとボーンを伸ばす |
| Uniform(従来のガイド表記) | 縮めたり伸ばしたりするときに、縦横を同じ比率にする |
Mix を0と100の間にすると、ターゲットを動かしたときに曲がる向きが急に反転することがあると、公式ガイドに書かれています。
2本IKで親ボーンのローカルスケールが非一様な場合、Stretchは適用されません。
1本IKの条件と混同しないでください。
4.3での変更
4.3は2026年5月14日に安定版が公開されています。
開発中の変更履歴には、Uniformを置き換えるscaleYとvolumeの追加が記録されています。
ランタイムでも、IkConstraintData.Uniform が ScaleY(none・uniform・volume)に変わりました。
4.3の実画面での項目名は未確認です。
また、ガイドの「Softnessが0より大きいとStretchを適用しない」という説明に対し、確認した4.3 C#実装はSoftnessによる距離補正の後に伸長を判定しています。
Softnessの値だけでStretchが無効と断定せず、エディタと使用ランタイムの同じ版・設定で比較してください。
足を地面に固定する
公式ガイドは、IK の使い道として、歩くときに足が床にめり込まないようにすることを挙げています。
考え方は、太ももとすねの2本に2本IKを付け、ターゲットのボーンを床の位置に置いてキーを打つ、というものです。
ターゲットを動かさず、2本のボーンが届く範囲で体を動かすと、足先の位置を保つ用途に使えます。
届く範囲や後段のコンストレイントも確認します。
足先のボーンの親子の組み方など、細かい手順は公式ガイドには書かれていません。
コンストレイントの順序
コンストレイントは、ツリーに並んだ順に上から計算されます。
後のコンストレイントが同じボーンを計算し直すと、前のコンストレイントの効果が消えるので、順序を合わせる必要があります。
例えばターゲットをパスで動かす場合は、パスの制約を先に、ターゲットを追うIKを後に計算します。
逆順では、IKが移動前のターゲット位置を参照してしまいます。
- 作ったときは、Spine が適当な位置に入れる
- セットアップモードで、上下にドラッグして順序を変えられる
- ツリーのConstraints項目を選び、プロパティのResetで全制約の順序を自動で並べ直せる
Spine の基本は、Spineの使い方で紹介しています。
2本IKの届く範囲を確認する練習
元の.spineを複製し、親の長さ60・子の長さ40の2本を一直線に置きます。
親の始点を(0, 0)、子の始点を親の先端(60, 0)に置き、親子2本のスケールは1、継承はNormalにします。
ターゲットはIK対象の子孫にせず、体の上下移動を受けない階層へ置きます。
非一様スケールのない練習状態から始めます。
足固定の練習では、動かさないrootの下にbodyと足先ターゲットを兄弟として配置する構成が考えられます。
太もも・すねはbodyの下へ置き、上下させるのはbodyだけにします。
ターゲットまでbodyの子にすると、一緒に移動して固定位置の比較ができません。
座標例は、回転0・スケール1のrootを共通の基準にして比較します。
Mixを100%、Stretchをオフ、Softnessを0にして、ターゲットを(60, 20)へ置きます。
次に(120, 0)へ動かし、足先が届く場合と総延長100を超える場合を比較します。
単位はこの練習用スケルトン内の値です。
この接続・スケール条件でStretchを使わない場合、届く距離は親の始点から20〜100です。
100より遠い場合だけでなく、長さの差20より近い場合にも先端はターゲットへ届きません。
ターゲットを固定しても、体の移動で届く範囲を外れた場合は足先の位置が保たれるとは限りません。
| 練習条件 | 期待する結果 | 切り分け |
|---|---|---|
| 届く位置で足先を確認 | ターゲットと足先を比較 | Positiveを切り替えて曲がる側も見る |
| 総延長を超える位置 | Stretchオフでは届かない | ターゲット・体位置・長さを確認 |
| Stretchが効かない | 2本IKのSoftnessと親のスケール | 使用版・Softness・親のローカルスケールを個別に確認する |
| 後で足先がずれる | 後段コンストレイントの影響 | 同じボーンを扱う順序を比較 |
足の固定とFKへ戻す確認
届く範囲でターゲットを固定し、体を少し上下させて足先を比較します。
Mixを0%へ戻すとFKの回転が使われるため、元の回転キーと位置も確認します。
IKが効いたままボーンを直接回転しにくい場合も、一時的にMixを0%へ戻して調整します。
編集前のMixを記録し、確認後に元へ戻してください。
最後はターゲット、Mix、Positive、Stretch、Softnessとコンストレイントの順序を開始前へ戻します。
2本IKの親の非一様スケールはStretchの制限になります。
Softnessとの併用はガイドと4.3実装に差があるため、使用版での確認が必要です。
4.3のscaleY/volumeの名前と従来ガイドのUniformは、使っている版の表示に合わせて区別します。
練習ファイルと確認済みの範囲
2本のC#例は参照・名前・待ち時間の異常系をローカルのテストダブルで検査し、4.3のAPI宣言を一次資料で照合しました。
実際のSpine/Unityコンパイル・描画・スキン・書き出し・変形は未検証です。
コードは4.3用です。
練習の完了は、それぞれ本文の表示・再生・復元を実環境で確認して判断します。
まとめ
- ボーンを選んで「New…」→「IK Constraint」→ ターゲットをクリック
- 1本IK は向きを合わせ、2本IK は腕や脚を曲げる。3本以上は不可
- 曲がる向きは Positive、FK との混ぜ具合は Mix
- コンストレイントは上から順に計算される
参考:Esoteric SoftwareのIK constraints、Constraints、変更履歴、4.3 C# IK実装(2026年10月23日確認)。
Essential対応については、公式サポートの回答も参照できます。
2026年10月26日に公式IK constraints・Constraints・変更履歴と4.3 C#実装を再照合しました。
階層例は上記条件を満たすための練習構成で、今回の実機再現結果ではありません。
