見出し画像

【Unity】キャラクターのパーツを交換する


「装備したら見た目が変わってオリジナルキャラが作れる!」みたいな機能を作りたいので頑張ってみます。



まず、パーツ分けされた画像を用意し、SpriteEditorで開きます。今回は以下の6つに分けました。それぞれのパーツに名前を付けておくと管理しやすいかと思います。

画像1

左上のSpriteEditorをクリック。

画像2

そうすると色々出てくるかと思います。

画像3

その中の三番目のCreate Boneをクリック。ダブルクリックでパーツを選び、左クリックでこのようにボーンを付けることができます。

画像4

すべてのパーツにボーンが付け終わったらCreate Boneの二つ上にあるPreview Poseをクリック。今付けたボーンに名前を付けます。

画像5

今回はこのゴブリンの他に狼男オークミノタウロスを用意して同じようにボーンを付けました。

UnityのEditorに戻り、空のゲームオブジェクト(今回はCharacterと名付けた)を作り、その中にパーツ分けした画像を入れてください。

画像6

パーツをすべて選択してSprite Skinというコンポーネントを追加してください。

画像7

そしてその中のCreate Bonesをクリック。

画像8

ボーンが作られました。

画像9

次は親要素のCharacterを選択して、IK Manager 2Dというコンポーネントを追加。

画像10

その中にIK Solversというものがあり、+をクリックすると三つ項目が出てくると思うので、その中のLimbをクリック。

そうするとNew LimbSolver2Dというオブジェクトが新たに生成されます。任意の名前(画像はR_Hand IKとした)に変更してください。今回は右手、左手、右足、左足の四つ分作ります。R_Hand IKは右手専用なので右手の一番先端のボーンの場所に持っていき、Limb Solver 2Dの中のEffecterに右手の一番先端のボーンをドラッグしてください。

そしてCreate Targetをクリックして右手は終了です。これをあと三回(左手、右足、左足)繰り返してください。

画像12

次にSprite Library Assetを追加します。僕の使っているUnity 1.1.0f1ではプロジェクトビューの+>2D>Sprite Library Assetで追加できました。

Body Partsという名前にしました。今回は六つのパーツに分かれているので六回を押し、それぞれのカテゴリーの名前を付ける(Head、Body、RightArmなど)。Category Listには登録するキャラクター分の数を入力(今回はゴブリン、狼男、オーク、ミノタウロスなので4)。Labelには名前を、スプライトにはそれぞれのパーツのスプライトを入れる。

画像12

次にヒエラルキービューのパーツをすべて選択してSprite Libraryというコンポーネントを追加する。その中のSprite Library Assetに先ほど作ったSprite Library Asset(Body Parts)を入れる。

画像13

そしてそのままSprite Resolverというコンポーネントを追加する。

画像14

パーツを個別に見ていくとカテゴリーとラベルが変更できるようになっているのでパーツごとに変更することが可能になりました。

画像15

あとはアニメーションなどを付ければそれっぽく見えるのではないでしょうか。

参考にした動画↓


よければサポートお願いします! twitter→@yoshimori_jp