シンプルなアクションゲームを作ってみようの第3回です。
今回は前回インポートしたスタンダードアセットの中に入っているキャラクターモデルのEthanの設定値を見た後、シンプルな床を作成し、Ethanをその床の上に配置します。
前回はスタンダードアセットのダウンロードとインポートを行い、発生したエラーを解消しました。
シンプルなアクションゲームを作ってみようの他の記事は
シンプルなアクションゲームを作るのを通してUnityの使い方を学ぶカテゴリです。
から参照出来ます。
キャラクターモデルの設定を見てみる
まずはスタンダードアセットにあるキャラクターモデルEthanの設定を見てみます。
Projectタブで
Assets/Standard Assets/Characters/ThirdPersonCharacter/ModelsフォルダのEthanを選択します。
Ethanを選択した状態でUnityエディターの右の方のInspectorウインドウを見ます。
Inspectorウインドウがない場合はUnityエディターのメニューのWindowからGeneral→Inspectorを選択します。
Ethanを選択した状態でインスペクタウインドウを見るとEthanのインポート設定の情報を見ることが出来ます。
インスペクタはオブジェクトやスクリプト等を選択した時にその情報を見ることが出来るウインドウです。
Ethanのインポート設定の情報は色々ありますが、今回はRigタブのAnimation Typeについて見ていきます。
Animation Typeはキャラクターモデルのアニメーションのタイプを設定するもので、
Noneはアニメーション無し
LegacyはUnityのバージョン3.x以前で使用していた古いアニメーションシステムを使用
Genericは人型以外のキャラクターモデルに使用
Humanoidは人型モデル(腕と足が2本で頭が1つ)のキャラクターに使用
の4つがあります。
Ethanは人型モデルなのでHumanoidになっています。
人型モデルでもUnityの人型モデルに合わせない場合はGenericにします。
Humanoid型の場合モデルに取り付けられたスケルトン(関節と骨の構造)をUnityが検出してアバター(キャラクターの見た目の形状)に正しくマッピングします。
つまりモデルの関節や骨を動かす事によってキャラクターがアニメーションをするように設定しています。
Unityの人型用に合わせるので他の人型モデルのアニメーションを自分のキャラクターモデルに適用するということも出来ます。
新しいシーンの作成
スタンダードアセットのEthanはインポート設定が既にされているので、次はシーン上にこのキャラクターモデルを配置したいところです。
UnityのエディターではHierarchyウインドウ(以下ヒエラルキー)にSampleSceneシーンが表示されているはずです。
このSampleSceneシーンはプロジェクト作成時にデフォルトで作成され開いている状態になっています。
今回は新しいシーンを作成し、そこにキャラクターモデルを配置していきたいのでこのSampleSceneシーンは後で削除します。
まずは新しいシーンStage1シーンを作成してみます。
ProjectウインドウのAssets/Scenesフォルダ内で右クリックし、出てきたウインドウでCreate→Sceneを選択します。
新しいシーンが作成されシーン名を入力出来るのでStage1と入力します。
Stage1シーンが出来たらStage1をダブルクリックしてStage1シーンを開きます。
Stage1シーンを開くとヒエラルキーでStage1シーンが開かれているのを確認出来ます。
SampleSceneは使わないので選択してDeleteキーを押して削除します。
さらにAssets/SampleScenesフォルダ内のものも使わないので同様に削除します。
Assets/SampleScenesフォルダ内のアセットはスタンダードアセットのサンプルで使用しているアセット群なので特に使いません。
Assets/SampleScenesフォルダを選択してDeleteキーを押してフォルダの中身ごと削除してしまいます。
シンプルな床の作成
キャラクターモデルをシーン上に配置する前にキャラクターが歩く時用のシンプルな床を作成します。
Stage1シーンを開いた状態でヒエラルキーウインドウ内で右クリックから3D Object→Planeを選択します。
Planeは平べったい板のようなオブジェクトです。
Planeを作成すると以下のようにヒエラルキーにPlaneが作成され、Stage1の横に星マークが表示されます。
シーンの横に星マークが表示されている場合はそのシーンがまだ保存されていない状態になります。
次にPlaneを選択した状態でインスペクタを見てみます。
PlaneゲームオブジェクトはTransform、Plane(Mesh Filter)、Mesh Renderer、Mesh Colliderの4つのコンポーネントを持っています。
床を少し大きくする為、TransformのScaleのXYZそれぞれに3を入力します。
Planeは平なのでYの値は変更しても変化はありません。
Gameウインドウ(以下ゲームビュー)を見てみると、床が少し広くなりました。
ゲームビューやSceneウインドウ(以下シーンビュー)が表示されていない時はUnityのエディターメニューのWindow→Generalから開くことが出来ます。
キャラクターモデルをシーン上に配置する
ProjectウインドウでAssets/Standard Assets/Characters/ThirdPersonCharacter/Modelsフォルダを開きます。
次はキャラクターモデルのEthanをシーン上に配置してみましょう。
二つのやり方があります。
ヒエラルキーにEthanをドラッグ&ドロップするやり方
Ethanを選択した状態でマウスドラッグしてヒエラルキーのシーン上にドロップするとEthanをStage1シーンに配置することが出来ます。
シーンビューにEthanをドラッグ&ドロップするやり方
もうひとつのやり方としてEthanを選択した状態でシーンビューにドラッグ&ドロップして配置するやり方もあります。
こちらの場合はシーンビューの他のゲームオブジェクトに沿って配置することが可能です。
Ethanを配置したらヒエラルキーでEthanを選択しインスペクタでTransformを変更します。
Transformのそれぞれの値を直接変更してもいいんですが、今回の場合はデフォルト値にリセットしたいと思います。
Transformコンポーネントの右の3つの丸の部分を押しResetを選択します。
するとTransformコンポーネントの値がデフォルト値にリセットされます。
ゲームビューを見てみるとEthanが画面の真ん中に表示されているのを確認出来ます。
今回はTransformコンポーネントのResetを選択してデフォルト値にリセットしましたが、他のコンポーネントでもそのコンポーネントで定められているデフォルト値にリセットされます。
またCopy Componentを選択し、他のゲームオブジェクトの3つの丸を選択し、Paste Component As Newを選択するとそのゲームオブジェクトにコンポーネントをペースト(同じ物を貼り付け)することが出来ます。
またCopy Componentを選択し、他のゲームオブジェクトの同じコンポーネントの3つの丸を選択し、Paste Component Valuesを選択するとコピー元のコンポーネントの値をコピー先のコンポーネントの値に貼り付けます。
シーンを保存する
ここまで出来たら一旦Unityエディター内をクリックしてUnityエディターをアクティブにし、Ctrl+Sキーを押してStage1シーンを保存します。
シーンが保存されるとヒエラルキーのStage1の横の星マークが消えます。
Unityエディターが意図せず落ちてしまう可能性もあるので小まめにシーンを保存するようにしてください。
終わりに
今回はシンプルな床とキャラクターモデルのEthanをシーンに配置することをしました。
次回はUnityエディターのシーンビューの操作方法についてやります。