<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>전문가형, 변형, 메쉬, 가중치, 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>
!!
#랩터#

랩터 프로젝트는 [가중](/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`의 두 가지 IK 제약조건에 의해 구현됩니다.

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

두 뼈의 IK 제약조건인 `front-leg-ik`는 `front-leg1`과 `front-leg2` 뼈를 제어하는 반면, 두 뼈의 IK 제약조건인 `front-foot-ik`는 `front-leg3`과 `front-foot1` 뼈를 구현합니다. 이 두 가지의 IK 제약조건을 뼈에 적용하는 순서는 중요합니다. 당사는 먼저 'front-leg-ik` 제약조건을 적용한 다음 'front-foot-ik` 제약조건을 적용합니다. 제약조건을 적용하는 순서는 [트리 보기](/spine-tree)의 `제약조건` 노드에 있는 [순서](/spine-constraints#Order)에 의해 정의됩니다.

이 두 가지의 IK 제약조건은 랩터의 몸체 뼈 계층구조 외에 `front-foot-goal`과 `front-leg-goal` 뼈를 타겟으로 합니다. 타겟 뼈를 움직이면 IK 제약된 뼈가 따라옵니다. 이렇게 하면 다리 또는 발뒤꿈치를 쉽게 굽힐 수 있습니다.

![](/img/spine-examples/raptor/raptor-legs04.gif)
 
다리의 끝에는 `front-foot1` 뼈와 자식 뼈인 `front-foot2`가 있습니다. 당사는 부모 뼈를 회전시킬 때 발이 땅속으로 들어가지 않도록 `front-foot2`에 대해 `상속 회전`을 비활성화했습니다.

`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로 보이게 하기 위해 `jaw` 뼈에는 `raptor-jaw` 메쉬의 복제본을 포함하고 있는 `jaw-inside`라는 또 다른 뼈가 들어 있습니다. 메쉬는 크기에 맞게 축소되고 턱의 앞면보다 약간 더 어둡게 색조가 더해집니다. 랩터의 혀는 두 개의 턱뼈 어태치먼트 사이에 그려진 것입니다.

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

### Horns
뿔 뼈인 `horn-front`와 `horn-back`을 서로 독립적으로 움직이면, 머리에 약간의 3D 효과를 더하게 되어 마치 머리가 좌우로 회전하는 것처럼 보이도록 합니다.

또한 뿔 뼈 계층구조에는 `back-arm-target`과 `front-arm-target` 뼈가 들어 있어서 스파인보이가 항상 뿔을 잘 잡을 수 있도록 합니다.
 
![](/img/spine-examples/raptor/raptor-horns01.jpg)

## 스파인보이 설정

스파인보이의 엉덩이뼈인 `spineboy-hip`은 랩터 상단의 `saddle` 뼈에 붙어 있습니다. 엉덩이뼈를 변형 시키면 스파인보이의 몸체를 움직이게 하지만, 각 다리와 손에 하나씩 4가지의 IK 제약조건은 스파인보이의 발을 등자에 넣고 손을 랩터의 뿔에 올려놓게 하는 데 이용됩니다.

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

### 팔

두 가지의 IK 제약조건인 `spineboy-front-arm-ik`와 `spineboy-back-arm-ik`는 스파인보이의 손을 IK 타겟인 `back-arm-target`과 `front-arm-target`에 올려 놓으며, 이 타겟은 랩터 뿔에 붙어 있습니다. `spineboy-front-arm-ik` 제약조건은 `front-arm`과 `front-bracer` 뼈를 구현하는 반면, `spineboy-back-arm-ik` 제약조건은 `back-arm`과 `back-bracer` 뼈를 구현합니다. 스파인보이는 대부분의 애니메이션에서 랩터의 뿔을 잡고 있기 때문에 IK 제약조건인 `믹스` 값은 설정 모드에서 `100%`로 설정됩니다.

### 총 잡기
팔 IK 제약조건의 `믹스` 값이 `100%`로 설정되면 팔과 팔받이 뼈는 전적으로 역기구학(IK)에 의해 구현됩니다. `gun-grab` 애니메이션의 경우 스파인보이는 총을 잡기 위해 뿔을 놓아야 하므로, 팔과 팔받이 뼈는 IK 제약조건 대신 뼈 변형 키로 구현되어야 합니다.

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

IK 제약조건의 영향을 억제하기 위해, `gun-grab` 애니메이션의 `0`프레임에 제약조건의 `믹스` 값이 `0%`로 설정됩니다.

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

권총집에 있는 총은 `gun` 슬롯의 어태치먼트입니다. 스파인보이가 총을 잡으면, `front-hand` 슬롯이 총을 들고 있는 손의 이미지로 전환될 때 해당 어태치먼트는 숨겨집니다. 이것은 `Attach: gun`과 `Attach: front-hand` 타임라인의 `7`프레임에서 일어납니다.

<div class="toc-home"><p><a href="/spine-examples">Spine 예제 프로젝트</a></p></div>