i-school - 3D宝石集めアクションゲーム 手順4
 プレイヤー用のキャラクターとして利用するアセットを導入します。

手順4 ープレイヤー用のアセットのインポートー



<新しく学習する内容>
 ・fbx ファイルの ImportSettings 内の Scale Factor を利用したモデルサイズの調整方法



1.設計


 最初にプレイヤーの分身となる3Dキャラクターのゲームオブジェクトをゲーム画面に配置します。
その後、次の手順において移動用のスクリプトを作成して、プレイヤーの移動を実装します。

 今回は Unity 公式のアセットから Voxel タイプのモデルを利用します。
ほかのアセットを利用しても問題ありません。製作しようとしているゲームの世界観にあったものを利用するようにしてください。


2.アセットストアからアセットをダウンロードしてインポートする


 アセットストアへ移動し、プレイヤー用のキャラクターとして利用したいアセットをダウンロードして Unity にインポートします。
 
 ここでは参考に Free Voxel Girl アセットを紹介します。
Free Voxel Girl と検索するか、以下のリンクより見つかります。

Free Voxel Girl


アセットストア



PackageManager



Import 確認のポップアップ



 なお、3Dのキャラクターモデルであれば、アセットストア以外の、他のアセットやモデルでも問題ありません。
その場合には、無料の3Dモデルサイトなどからゲームに利用したいキャラクターのモデルをダウンロードして、Unity にインポートします。



 インポートした際にエラーが警告が出る場合があります。
こちらは Console ビューの Clear ボタンを押せば解除できます。


Console ビューのエラーと警告



 Clear ボタンを押しても解除できないエラーについては、別途修正をする必要がありますが、今回は不要です。


3.プレイヤー用のゲームオブジェクトの配置を行う


 続いて、Sceneビュー 内に、インポートしたアセットから、プレイヤーとして利用したいゲームオブジェクトをドラッグアンドドロップして配置します。
ヒエラルキーにドラッグアンドドロップして設置しても問題ありません。

 Free Voxel Girl アセットの場合には、Models フォルダ内にある6つのプレファブであればどれでも利用できます。
1つ選んで、そのゲームオブジェクトをドラッグアンドドロップしてください。
それ以外のアセットの場合にも大体 Prefabs フォルダがあり、その中に用意されているモデルのゲームオブジェクトを利用するといいでしょう。


ファイルのパス(抜粋)
Assets/FreeVoxelGirl/Models/Kaduki.fbx
Assets/FreeVoxelGirl/Models/KadukiBlackHair.fbx
Assets/FreeVoxelGirl/Models/KadukiRedHair.fbx


フォルダ画像



インスペクター画像




 配置後、ヒエラルキーにあるプレイヤー用のゲームオブジェクトを選択し、インスペクターの Transform コンポーネントから
Positon の値を原点位置 (0,0,0) に設定してください。右上の歯車アイコンから Reset コマンドを選択しても初期値に戻ります。

 プレイヤー用のゲームオブジェクトのスタート地点は原点位置にしておいた方が製作は楽になります。
よい位置にならない場合には、ステージ全体を移動させてもいいでしょう。



 ゲームオブジェクトを配置した際の例です。


ヒエラルキー画像



Scene ビュー




4.プレイヤー用のゲームオブジェクトのサイズ調整を行う


 製作したステージとモデルの比較した際に、プレイヤー用のモデルが極端に大きくなってしまったり、小さくなってしまうケースがあります。

 その場合には、ゲームオブジェクトの Transform コンポーネントの Scale からサイズを変更する方法と、
インポートしたファイルの元のサイズを変更する方法があります。

 今回は、ゲームオブジェクトの Scale については (1,1,1) のままで利用したいので、Free Voxel Girl のモデルの情報を修正してサイズを変更します。
こちらの方法で調整を行うと、プレファブになっているモデルのサイズの元の大きさから変更されますので、
同じプレファブを複数使う場合には、その都度のサイズの調整が不要になります。



 現在利用しているモデルのプレファブの FBX モデルのファイルを選択します。
例えば、KadukiRedHair プレファブを利用している場合には、下記のパスにあるファイルになります。


パス
Assets/FreeVoxelGirl/Models/KadukiRedHair.fbx


フォルダ画像




 上記のパスにある KadukiRedHair.fbx ファイルを選択すると、インスペクターの情報が 〜 ImportSettings という名前の FBX モデル用の内容に切り替わります。
今回は KadukiRedHair Import Settings と表示されます。

 インスペクターの一番上部にある ''Scale Factor の値が、このモデルのサイズです。このモデルの場合、1 が初期値です。
この Scale Factor の値を 1 から適宜な値(このステージの場合には 2)に変更し、インスペクターの右下にある Apply ボタンを押して''ください。
値を変更していても Apply を押さない限りは変更は反映されません。


ImportSettings



ImportSettings 内 ScaleFactor の値を調整する



 Apply したタイミングで Scene ビュー内のモデルのサイズが変更されます
今回は調整している値が決まっていますが、本来は自分で数字を入れ替えながら調整を行ってください。

 以下は参考画像です。モデルが画面の床と比較して問題のないサイズ感になることを意識してください。


Scene ビュー(Scale Factor の値が 1 のとき)


  ↓

Scene ビュー(Scale Factor の値が 2 のとき)



 以上で調整は完了です。


5.プレイヤー用のゲームオブジェクトにコンポーネントを追加し、設定を行う


 3Dモデルのキャラクターはモデルとしては完成していますが、そのままではゲームの世界のキャラクターとしては設定が足りません
そのため、ゲームオブジェクトとして配置した上で、プレイヤーの分身として利用できるように設定を追加します。



 ヒエラルキーでプレイヤー用のゲームオブジェクトを選択し、インスペクターに情報を表示します。
物理演算を利用するため、インスペクターの一番下にある Add Component ボタンを押下して、Rigidbody コンポーネントと CapsuleCollider コンポーネントを追加します。


参考例 インスペクター画像



 Transform コンポーネントの Position の値については、自分がゲーム内に配置した位置情報が設定されていますので、
この画像のインスペクターの値にする必要はありません。(あくまでも参考例です。)

 Rotation の値についても、カメラの方向を上手く向くように調整してください。
角度をつけたい場合には X 軸、向きを変えたい場合には Y 軸を変更してください。



 続いて、追加したコンポーネントの設定を行います。

 Rigidbody コンポーネント内にある Constraints の設定を行い、物理演算時にゲームオブジェクトが自分の力で回転してしまわないように
Freeze Rotation の各項目(X、Y、Z)にチェックを入れます。Freeze Position の方ではないため、気を付けてください。
また、Use Gravity のチェックを外して、重力の影響を受けないようにしてください。



 続いて、CapsuleCollider コンポーネント内の Edit Collider のボタンを押すと、
Sceneビュー 内にコライダーが可視化されて、ドラッグアンドドロップでサイズを変更出来るようになります。

 キャラのモデルに合った形状のコライダーによるように調整を行ってください



 Scene ビューに配置した際の例です。








 以上でこの手順は終了です。

 => 次は 手順5 ープレイヤーの移動機能の実装ー です。