UnityでTPSを作る キャラクターの表示編

ステージにキャラクターを立たせるところまで解説していきます。

移動やカメラの処理は、長くなるので今回は割愛します。

 

 

必要なアセットを用意する

とりあえず、必要なアセットを用意します。

 

Unityちゃん

当然ながら、キャラクターとして使用します。公式サイトからでも入手できますが、アセットストアのほうが後々アップデートを簡単にダウンロードできて便利です。

 

ステージ

無料のものを適当に選べばOKです。できれば、以下に気を配って選ぶといいでしょう。

  • あまり広くないもの(広すぎるとPCによっては処理落ちする)
  • 平らな地形の屋外(屋内にすると、天井や壁が邪魔でテストプレイが面倒なことも。TPSという都合上、坂道が多いと後々弾を飛ばす際に厄介)
  • 複雑なスクリプトやシェーダーが無いもの(Unityのバージョンによっては余計なエラーを吐く)

非公式の無料アセットはしょっちゅう非公開になるため、もしリンク切れになっていた場合は、「環境」カテゴリで、価格を0円にして検索してみましょう。

https://assetstore.unity.com/categories/3d/environments/?k=price%3A0&order_by=relevance&q=category%3A29&q=price%3A0&rows=42

 

 

 

キャラクターを立たせる

 

ステージを表示させる

まずは、足場となるステージを表示させましょう。大体のアセットには、サンプルとなるデモシーンが収録されているので、該当のsceneファイルをダブルクリックしましょう。

上記のアセットの場合、Simple city plain > scene > Demo Scene が該当ファイルです。

 

カメラを移動させる

カメラを適当な場所へ移動させましょう。

  1. Hierarchyビューで Main Camera を選択
  2. Sceneビューへカーソルを合わせ(クリックはしない)、キーボードのFキーを押す
  3. カメラをドラッグし、道路が表示されるように移動

 

Hierarchyビューでオブジェクトを選択し、SceneビューにてFキーを押すことで、該当のオブジェクトまで移動することができます。頻繁に使うので覚えておきましょう。

オブジェクトの移動をする際は、ちゃんと移動ボタンが押されているか確認を忘れずに。

 

上がSceneビュー、下がGameビューです(エディタのレイアウトは人によって異なります)。だいたいこんな感じで表示させればOKです。

 

Unityちゃんを立たせる

次に、Unityちゃんを道路に立たせてみます。

UnityChan > Prefabs > unitychan を選択し、Sceneビューにドラッグ&ドロップします。

 

 

先ほどのように、Unityちゃんがカメラに映るように位置調整します。

 

 

 

Directional Light を適用する

別にこのままでもいいのですが、どうにもUnityちゃんの明度が足りないと思いませんか? 今回は日中のステージなので問題ありませんが、暗所だとUnityちゃんが真っ黒になる場合もあります。

ライトが無いと闇に飲まれてしまう。

そうならぬよう、Unityちゃんにのみ適用されるライトを設置します。新たにライトを設定する必要はなく、Unityちゃんのパッケージに同梱されているDirectional Lightを使います。

 

Directional Light を設置する

UnityChan > Prefabs > Directional light for UnityChan をHierarchyビューへ放り込んでください。どこに置いても同じ明度で照らします。Unityちゃんの子オブジェクトにする必要もありません。

 

はい、めっちゃ眩しくなりましたね。これは、ライトが全てのオブジェクトを照らしてしまっているためです。

 

 

Layerを設定する

ライトがUnityちゃんだけを照らすためには、Layer機能を使う必要があります。Unityちゃんに専用のLayerを設定し、ライトがそのLayerだけを照らすようにしましょう。

 

まず、Unityちゃんに専用のLayerを設定します。HierarchyビューにてUnityちゃんを選択し、Inspectorビューの右上にある「Layer」のプルダウンメニューを押し、「Add Layer」をクリックしてください。

 

Layersを展開し、空いている場所にPlayerと入力します(分かりやすければ何でも構いませんが、半角英数字にしましょう)。

 

 

再びHierarchyビューにてUnityちゃんを選択し、InspectorビューでLayerプルダウンを展開し、先ほど設定したPlayerを選択します。

 

何やらダイアログが出てきますが、一番左の「Yes, change children」を選択すればOKです。

※これは、Unityちゃんより下の階層の子オブジェクトにも、Layerの変更を適用するかというダイアログです。Unityちゃん全身を明るくしたいので、今回はYesを選びます。

 

 

Lightを設定する

これだけでは変わりません。Hierarchyビューにて、Directional light for UnityChanを選択し、InspectorビューにてPlayerだけを照らすように設定する必要があります。

 

Curling Mask という項目で、チェックされたLayerを照らしています。Nothingを選択して全部のチェックを外してから、Playerだけを選択しましょう。

 

Unityちゃんだけが眩しくなりました。最後に、ライトの明度を調節しましょう。Insanityの項目にあります。

 

数値はお好みで構いませんが、おおよそ1に設定すると安定します(小数も入力できます)。
他、Colorを設定すれば、オレンジっぽかったり青ざめたUnityちゃんにもできます。お好みで設定しましょう。

 

無事、程よい明るさのUnityちゃんになりました。

 

 

余計なコンポーネントを削除する

この状態でデバッグすると、何やらよく分からない黒いボタンがGame画面に現れると思います。これは、Unityちゃん公式が用意した、収録されている表情やモーションを確認するための機能です。気分転換に可愛いUnityちゃんを眺めてもいいですが、ゲームを作る上では不要なので削除します。

 

UnityちゃんのInspectorにアタッチされている、Idle ChangerとFace Updateを削除しましょう。

 

これで、実行時にボタンが出なくなります。

 

 

まとめ

以上です。Unityに慣れてしまえば、特に難しいポイントは無いかと思います。もし不明な点がありましたら、お気軽にコメントをお寄せください。

 

 

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください