Fantasy Character Pack for Mobile RPG をさわってみた

こちらのアセット購入したっきりほったらかしだったので何か作ってみる
<a href="https://www.assetstore.unity3d.com/jp/#!/content/31344" target="_blank"><img src="https://qiita-image-store.s3.amazonaws.com/0/46444/4a8db5d4-78f3-f6ac-f523-99be15be270d.png"></a>

##なにができるか？
パーツを差し替えられるキャラクターが簡単に作れます。
アニメーションも武器ごとに攻撃などあります。
また、作成したキャラクターごとに画像をまとめてくれているらしく、
スマホにも優しい作りになっております
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/8ade5af3-ea4d-6652-601b-d61397ebaf80.png">

こんなかんじのシーンがあるのでキャラクターを好きに作れます

##インポートしたところ
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/1c885b71-4957-6aa2-b867-5f0db05a63e4.png" width="250px" />
追加されているメニュー
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/5f999b16-23e0-8a01-800a-ee1443ac5e61.png" width="400px" />

##早速キャラクターを表示する。
あたらシーンを作成し、
Prefabフォルダ配下にあるDevCharactor.prefabとDevEngine(preset).prefabを配置。
DevCharactor.prefabに空のGameObjectを親に追加。
カメラのCullingMaskをDefaultのみなどに修正しないとだめです。再生したときに使われる画像がLayer31で表示されるのでカメラにうつってしまいます。
あとは作成したGameObjectにとりあえずキャラを表示するのであればTestCharactor.csをアタッチし、
そのScriptのCharactorのところにDevCharactor.prefabをドラッグしてあげればとりあえず動きます。

DevEngine(preset)これが画像のアトラスなのでシーンに一つ必要
DevCharacter こちらがキャラクター。
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/33946eb9-cb58-cce5-2098-984a69e2ac94.png" width="200px" />
再生するとキャラクターがスケルトンになります。
これがTestについているシーンと同じもの
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/19ffb549-a31e-52ff-48a3-11479f89f1da.gif" width="300px" />



##キャラクターをカスタマイズしてみる
先ほどのTestCharactor.csをカスタマイズしていろいろだしてみる。
デフォルトのスケルトンのソースがこんな感じなので、

```csharp

    public DevCharacter character;

    void Start()
    {
        character.Info.order = 1;
        character.Info.unit_part = "undead";
        character.Info.main_weapon_part = "blunt-a";
        character.UpdateView();
```

DevCharacter.Infoにたいして、画像の名前を設定してあげて
UpdateViewで更新されます。

画像の設定できるのは
unit_part:種族
unit_index:種族番号
armor_part:防具の種類
armor_index：防具番号
armor_color：アーマーの色
main_weapon_part:武器野種類
main_weapon_index:武器番号
sub_weapon_part:サブ武器
sub_weapon_index:サブ武器の番号
wing_part：羽の種類
wing_index:羽の番号

画像はDemoViewerシーンで好きなのを見つけるのが早いです
試しにこんな感じでかえると

```csharp
		character.Info.unit_part = "elf-female";
		character.Info.unit_index = 6;
		character.Info.armor_part = "mithril-a";
		character.Info.armor_index = 1;
		character.Info.main_weapon_part = "blunt-a";
		character.Info.main_weapon_index = 1;
		character.Info.sub_weapon_part = "shield-a";
		character.Info.sub_weapon_index = 0;
		character.Info.wing_part = "cape-a";
		character.Info.wing_index = 11;
```
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/6da1c1aa-40ad-afa7-927f-952166b32061.png" width="200px" />
かわいい

##アニメーション
アニメーションは共通のものとあとは武器ごとにいくつか用意されています。  

<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/5e8ed09b-3b7a-1c23-e59d-13dccbdc475c.png" width="200px" />

武器の種類は
DevCharacter.csのmain_weapon_typeで判定できます。

##キャラクターの画像をアトラス化する
毎回違うキャラである必要がない場合、武器や防具を差し替えたりしない場合、
事前にアトラス化しておくツールがあります。
Window->Devwin->Texture Bakingのウィンドウを表示し、
各画像のアトラスprefabと番号などを選んでGenerate Texture
各PrefabはPrefab/partsフォルダにあるものをドラッグして設定します

<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/423a82b2-0811-33e9-bbdc-66f0df0be8f8.png" width="450px" />
アトラス画像ができました。
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/88ac9ebe-9085-eeed-62b4-a4856f44e523.png" width="300px" />

その画像をTexture/texture_mapの下にある画像のようにしないとなんですが、
私はめんどくさいのでこの画像のmetaファイルをコピーして作成した画像と同じ名前のmetaファイルにしてやってしまいました。
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/4e00a8df-d46f-0c63-11ac-7999c363efac.png" width="200px" />
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/b2c41e95-9ccf-0fb1-9b38-ff114278ccc8.png" width="300px" />

できたアトラス画像
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/3bd510cd-9fd4-c388-5460-42a4a7735851.png" width="300px" />

##なんだかんだで・・・
いろいろぶっ飛ばしてますが
こんなかんじにキャラを生成してぶつかったら攻撃みたいなのをつくれました。
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/11f0193c-d484-e846-61eb-8d06ccc6b331.gif" width="500px" />

今回の注意点として手動でアトラス画像をつくって使用する場合、
ゴブリンなどは目の位置が違うので注意 ゴブリンのDev Partsのeye_posが違うものは位置をずらしてあげる必要がある
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/28857206-c026-5df3-bd15-eccdcd725555.png" width="300px" />

キャラごとに画像のsoriteRendererのsortingOrderを設定してあげること
設定した場合
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/1fd53dfd-bbad-5dee-0b9a-c2cae58f023d.gif" width="500px" />
sortingOrderを修正しない場合
<img src="https://qiita-image-store.s3.amazonaws.com/0/46444/d302e2e1-711e-0eba-0153-a8db1daeb17b.gif" width="500px" />
SetPassがすごいことになってしまうので注意

今度は画像の追加周りもやりたいな・・・