<script src="/files/spine-player/4.2/spine-player.js"></script>
<link rel="stylesheet" href="/files/spine-player/4.2/spine-player.css">
<div class="units-row-end">		
	<div class="unit-100">
		<div class="examples-header">
			<div class="units-row">
				<div class="unit-60">
					<div id="player"></div>
				</div>
				<div class="unit-40">
					<div class="examples-header-info">
						<div class="examples-header-info-tags">
							<span>タグ:</span>
							<p>Professional、変形、メッシュ、ウェイト、IKコンストレイント</p>
						</div>
						<div class="examples-header-download">[example-download:raptor]</div>
					</div>
				</div>
			</div>
		</div>
	</div>
</div>		
<script>
new spine.SpinePlayer(document.getElementById("player"), {
	jsonUrl: "/files/examples/4.2/raptor/export/raptor-pro.json",
	atlasUrl: "/files/examples/4.2/raptor/export/raptor-pma.atlas",
	animation: "walk",
	viewport: { 
		x: -636,
		y: -49,
		width: 1462,
		height: 1119
	},
	backgroundColor: "#555555FF",
	fullScreenBackgroundColor: "#555555FF"
});
</script>
!!
#Raptor(恐竜)

このRaptor(恐竜)プロジェクトでは[ウェイト付けされた](/spine-weights)[メッシュ](/spine-meshes)と[IK](/spine-ik-constraints)の使用方法を説明しています。スケルトンを3Dのように見せるテクニックも使用します。下記では主にスケルトンのセットアップに焦点を当てて説明しています。

## 恐竜のセットアップ
![](/img/spine-examples/raptor/raptor-legs01.jpg)

`hip` ボーンは恐竜の体のボーン階層の根本になっており、脚、尾、胴体がそれぞれ子になっています。`hip`ボーンは恐竜の体全体を調整するコントロールボーンとしての役目を担っています。

太もものメッシュアタッチメントの頂点は恐竜の脚を構成するボーンの他、`hip`ボーンにも[ウェイト](/spine-weights)付けされています。これにより`hip`ボーンが回転した時、メッシュの端にある頂点を適切な位置に保たれます。

![](/img/spine-examples/raptor/raptor-legs02.gif)

### 脚と足先
恐竜の前脚と後脚は同じようにセットアップされます。説明を簡潔にするために、今回は前脚の詳細のみ説明します。脚は`front-leg-ik`および`front-foot-ik`という2つのIKコンストレイントにより制御されています。

![](/img/spine-examples/raptor/raptor-legs03.jpg)

2つのボーンによるIKコンストレイント`front-leg-ik`は、`front-leg1`と`front-leg2`ボーンをコントロールし、同じく2つのボーンによるIKコンストレイント`front-foot-ik`は`front-leg3`と`front-foot1`ボーンを動かします。注意していただきたいのは、これらの2つのIKコンストレイントがボーンに適用される順番が重要である点です。まず`front-leg-ik`コンストレイントを適用し、次に`front-foot-ik`コンストレイントを適用します。コンストレイントの適用順は[ツリービュー](/spine-tree)の`Constraint(コンストレイント)`ノードの中の[順番](/spine-constraints#順番)によって定義されています。

これらの2つのIKコンストレイントは恐竜の体のボーン階層外にある`front-foot-goal`と`front-leg-goal`ボーンをターゲットとしています。ターゲットボーンを動かすとIKで制約されたボーンがこれを追従します。これにより、脚やかかとを曲げやすくしています。

![](/img/spine-examples/raptor/raptor-legs04.gif)
 
脚の先端には`front-foot1`ボーンとその子ボーンである`front-foot2`があります。親ボーンを回転する時、足が地面をすり抜けないように、`front-foot2`の`Inherit Rotation（回転の継承）`は無効になっています。

`front-leg1`ボーンは、この脚ボーン階層の中でアタッチメントを含むスロットを持つ唯一のボーンです。`raptor-front-leg`メッシュアタッチメントの頂点は脚ボーンにウェイト付けされており、ボーンがトランスフォームされるとスムーズに変形します。

### 尾
恐竜の上半身は単一のメッシュアタッチメント`raptor-body`で構成されています。この頂点は胴体や尾など、上半身の部分を構成するボーンにウェイト付けされています。

![](/img/spine-examples/raptor/raptor-tail01.gif)

画像`raptor-body`は、どちらの方向に曲がった時もきれいに変形できるように、尾が直線状になっています。共通ルールとして、メッシュをいずれかの方向に曲げる必要がある場合は、ボーンがバインドされる際にメッシュイメージがまっすぐになるようにしてください。

### 顎

顎は`raptor-jaw`メッシュアタッチメントで表現されます。恐竜の太ももと同様に、顎のピボット周辺の頂点は`head`ボーンにウェイト付けされています。これにより、顎が回転した時に頭部から分離してるように見せてしまわないようにしています。

![](/img/spine-examples/raptor/raptor-jaw01.gif)

顎に3Dのような奥行きを与えるために、顎ボーンは`raptor-jaw`メッシュのコピーを含む`jaw-inside`というボーンを含んでいます。このメッシュは縮小され、顎前部より少し暗い色に着色されてます。恐竜の舌はこの2つの顎アタッチメントの間に描画されています。

![](/img/spine-examples/raptor/raptor-jaw02.jpg)

### 角
角のボーンである`horn-front`と`horn-back`を相互に独立して動かすことで頭部に少し3Dのような効果を加わり、頭が左右に回転しているように見せることができます。

また角ボーン階層はSpineboyが角をしっかり握っているように見せるために、`back-arm-target`と`front-arm-target`を含んでいます。
 
![](/img/spine-examples/raptor/raptor-horns01.jpg)

## Spineboyのセットアップ

Spineboyの腰のボーン`spineboy-hip`は、恐竜の上の`saddle`（鞍）ボーンの子になっています。この腰のボーンをトランスフォームすると、Spineboyの体が動きます。両手と両足用の4つのIKコンストレイントは、Spineboyのあぶみ上の足と、恐竜の角を持つ手を固定するために使用されています。

![](/img/spine-examples/raptor/raptor-spineboy01.gif)

### 腕

2つのIKコンストレイント`spineboy-front-arm-ik`と`spineboy-back-arm-ik`は、恐竜の角の子要素になっているIKターゲット`back-arm-target`および`front-arm-target`にSpineboyの手を配置しています。`spineboy-front-arm-ik`コンストレイントが`front-arm`と`front-bracer`ボーンを動かし、`spineboy-back-arm-ik`コンストレイントが`back-arm`と`back-bracer`ボーンを動かします。Spineboyはほとんどのアニメーションで恐竜の角を握っているため、IKコンストレイントの`Mix(ミックス)`値は設定モードで`100%`に設定されています。

### 銃を握る
腕のIKコンストレイントの`Mix(ミックス)`値が`100%`に設定される時、腕と長手袋（bracer）ボーンは完全にインバース・キネマティクスにより制御されます。`gun-grab`アニメーションではSpineboyは角を離して銃を握りますが、その際は腕と長手袋（bracer）ボーンはIKコンストレイントの代わりにボーンのトランスフォームキーにより動かす必要があります。

![](/img/spine-examples/raptor/raptor-gungrab01.gif)

IKコンストレイントの影響を無効にするには、`gun-grab`アニメーションのフレーム`0` でこれらの`Mix(ミックス)`値を`0%`に設定します。

![](/img/spine-examples/raptor/raptor-gungrab02.jpg)

ホルスター内の銃は`gun`スロットのアタッチメントです。Spineboyの`front-hand`スロットが銃を握る手の画像に切り替えられる時にこのアタッチメントを非表示にしています。これは`Attach(アタッチ): gun`と`Attach(アタッチ): front-hand`タイムラインのフレーム`7`で起きています。

<div class="toc-home"><p><a href="/spine-examples">Spineプロジェクト例</a></p></div>