Unity 6.3 LTS|3D的当てゲームを作ろう⑦ プレイヤーモデルを読み込もう

プレイヤーモデルの頭を少し見える位置へ配置したUnityの一人称ゲーム画面 Unity

第7回では、空のPlayerへ人型モデルを追加する準備をします。無料アセット「Character Pack: Free Sample」を読み込み、Unity 6のURPで表示できるところまで進めます。

今回の到達点

キャラクターのPrefabを開いて顔と体のTextureを表示し、Playerの子としてSceneへ配置します。一人称画面では、頭が少し見える位置まで調整します。

STEP 1

プレイヤー用アセットを選ぼう

Character Pack: Free Sampleを使います。無料のローポリ人型モデルで、Humanoid Rigと複数のアニメーションが入っています。

Unity Asset StoreのCharacter Pack Free Sampleページ
「マイアセットに追加する」を押し、UnityのPackage Managerから利用します。
既存のPlayerは残す

すでにあるCharacter Controller、PlayerMove、Main Cameraはそのまま使います。今回追加するのは、プレイヤーの見た目とアニメーションです。

STEP 2

Package Managerから読み込もう

Window → Package Management → My Assetsを開き、Character Pack: Free SampleをDownloadします。

Package ManagerでCharacter Pack Free Sampleをダウンロードしている画面
ダウンロードが終わったらImportを押します。

Import Unity Packageでは、Animations、AnimatorControllers、Materials、Models、Prefabsなど、すべてにチェックを入れたままImportします。

Character Pack Free SampleのImport Unity Package画面
後で歩行や待機アニメーションを使うため、AnimationsとAnimatorControllersも読み込みます。
STEP 3

アセットのフォルダーを確認しよう

インポート後は、ProjectにSupercyan Character Pack Free Sampleフォルダーが作られます。

Character Pack Free SampleをインポートしたProjectウィンドウ
Animations、Materials、Models、Prefabs、Texturesなどが分けて保存されています。

今回使う人型PrefabはFreeSample_male_1です。髪、服、風船、バッグなどのPrefabは、キャラクターへ追加する個別パーツです。

STEP 4

ピンク色のPrefabをURPへ合わせよう

Prefabがピンク色で表示される場合、付属MaterialのShaderがBuilt-in Render Pipeline用になっています。

URPに対応していないShaderによってピンク色になったキャラクターPrefab
ピンク色はモデルの破損ではなく、Shaderが現在の描画方式に合っていない状態です。

Materials/High Qualityを開き、使用するMaterialのShaderを次へ変更します。

Universal Render Pipeline/Lit
High QualityフォルダーのMaterialをURP Litへ変更したUnity画面
ShaderはURP/Litになりました。ただし直接変更すると、元のBase Mapが引き継がれず灰色になる場合があります。
STEP 5

顔のTextureを戻そう

FreeSample_male_1をPrefab編集画面で開きます。Texturesフォルダーにある顔の画像を、free_male_1_head MaterialのBase Mapへ設定します。

顔のTextureが表示され体が白いFreeSample male 1モデル
最初に顔用Textureを設定し、髪、顔、目を表示できました。この時点では体用Base Mapが未設定なので、体は白く表示されています。
Materialモデル表面の色や質感を決めます。
Shader表面をどのように描画するか決めます。
TextureMaterialへ貼り付ける色や模様の画像です。
体が白いのは失敗?

モデルとURP Shaderは読み込めています。白い部分は、体用MaterialのBase Mapが未設定であることを示します。Texturesフォルダーから体用Textureを確認して設定します。

体用Textureも設定する

free_male_1_body MaterialのBase Mapへ、服、腕、脚、靴が描かれた体用Textureを設定します。顔にはfree_male_1_headを使います。

Textureを設定したfree male 1の体用と頭用Material
左が体用Material、右が頭用Materialです。どちらもプレビューへ色と模様が表示されています。
顔と体のTextureが正しく表示されたFreeSample male 1モデル
白かった体に服、肌、ズボン、靴の色が戻りました。これでキャラクターのMaterial設定は完成です。
STEP 6

PrefabをPlayerの子にしよう

Prefab編集画面からSampleSceneへ戻ります。ProjectのFreeSample_male_1 Prefabを、HierarchyのPlayerへドラッグして子にします。Sceneに置かれたPrefabはPrefab Instanceと呼びます。

Player
├─ FreeSample_male_1
└─ Main Camera
FreeSample male 1をPlayerの子として配置したHierarchyとSceneビュー
既存のCharacter Controller、PlayerMove、Main CameraはPlayerに残し、人型モデルを見た目として追加します。

モデルのLocal PositionとRotationを調整して、Playerと同じ場所・向きに合わせます。画像ではモデルのRotation Yを-90にしています。

STEP 7

一人称画面に頭を少し見せよう

モデルをMain Cameraと同じPlayerへ入れると、カメラの位置によって自分の頭が画面へ映ります。今回は完全には隠さず、プレイヤーがそこにいることを感じられるように、頭の上側を少しだけ表示する位置へ調整しました。

プレイヤーモデルの頭が画面下に少し見える一人称Gameビュー
画面中央の照準や敵を隠しすぎない範囲で、頭が少し見える配置にしています。
POINT|見せ方はゲームのデザイン

一般的なFPSでは自分の頭を非表示にすることもあります。この教材では、少し見せる表現を選びました。狙いにくい場合は、モデルのPositionを下げるか後ろへ動かして調整できます。

MISSION
  • WASDでPlayerとモデルが一緒に移動する。
  • 照準が頭で隠れすぎていない。
  • 射撃、スコア、HP、タイマーがこれまでどおり動く。
次回へ

歩行アニメーションを設定しよう

次回はAnimator Controllerを設定し、待機と歩行のアニメーションをPlayerの移動に合わせます。

コメント

タイトルとURLをコピーしました