Keep your place in this quest

Log in or sign up for free to subscribe, follow lesson progress, and access more learning content.

このレッスンでは、ゲームで収集可能なオブジェクトとして使用するアイテムを準備します。

そのビジュアルメッシュを設定し、マテリアルとテクスチャを適用し、プレイヤーとの相互作用のために必要なコリジョンを追加し、識別タグを定義し、アイテムをより目立たせ、シーン内で魅力的に見せるためのシンプルな移動ロジックを作成します。

収集可能なアイテムは、ゲームでは非常に一般的です。コイン、鍵、健康回復アイテム、弾薬、パワーアップ、クエストオブジェクト、またはプレイヤーが触れて収集できるその他の何かを表すことができます。このレッスンでは、アイテム自体の準備に焦点を当てます。後で、プレイヤーロジックはこのアイテムを検出し、収集できるようになります。

1. アイテムの作成

Content パネル内で、Entity Template タイプの新しい Asset を作成します。

このエンティティテンプレートは、収集可能なアイテムのベースとして使用されます。収集可能なアイテムは、通常レベル全体で何度も再利用されるため、エンティティテンプレートとして作成するのが正しいアプローチです。この方法では、同じアイテムの複数のインスタンスをシーンに置くことができ、後でテンプレートを変更すれば、すべてのインスタンスを同じソースから更新できます。

image.png

エンティティの Template を開いて、編集できるようにします。

その後、エンティティの名前を Item に変更し、オブジェクトのビジュアル表現を担当する新しい Mesh を作成します。

Components セクションで、Transform コンポーネントを追加します。Transform は、エンティティに位置、回転、スケールプロパティへのアクセスを提供し、3D空間でアイテムを配置および操作するために必要です。

その後、Rigid Body コンポーネントも追加します。このコンポーネントは、シーン内のアイテムの物理学およびコリジョン動作を担当します。

image.png

Rigid Body コンポーネントで、Ghost オプションを有効にします。

このオプションを有効にすると、アイテムは依然として衝突や相互作用を検出できるが、キャラクターの移動を物理的にブロックすることはありません。

これは通常、収集可能なアイテムにとって望ましい状態です。プレイヤーはアイテムを通り抜けることができ、ゲームはその接触を相互作用として検出します。アイテムが通常の固体コリジョンを持っている場合、プレイヤーをブロックしたり、物体を押しのけたりする可能性があり、これが収集物にとって望ましい動作ではないことがよくあります。

image.png

この時点で、Cave に3Dモデルをインポートしてアイテムのメッシュとして使用できます。

この例では、テクスチャから作成された2Dアイコンのみを使用するので、カスタムモデルをインポートする必要はありません。ただし、プロジェクトのニーズに応じてアイテムのビジュアル外観を自由にカスタマイズしてください。

例えば、次のものを使用できます。

  • コインモデル
  • 鍵モデル
  • ポーションボトル
  • 浮遊するクリスタル
  • パワーアップアイコン
  • シンプルなテクスチャ平面

今、前にエンティティを作成したのと同様に、Content パネル内に新しい Material を作成します。

その後、ゲームのビジュアルスタイルに合わせて設定し、必要なテクスチャ、例えば AlbedoNormal Map、または使用したい他のマップを追加します。

image.png

image.png

マテリアルを設定した後、それをアイテムのメッシュに適用して、シーン内での見た目を定義します。

メッシュはレンダリングされる形状を定義し、マテリアルはその形状がどのように視覚的に表示されるか(色、テクスチャ、粗さ、法線情報、その他のシェーダー関連プロパティ)を定義します。

image.png

image.png

整理目的のために、Content パネルでは、プロジェクトのアセットをより良く構成するためにフォルダを自由に作成できます。

良いプラクティスは、Item と呼ばれるフォルダを作成し、エンティティテンプレート、マテリアル、テクスチャ、その他のリソースなど、この収集可能なオブジェクトに関連するすべてのファイルをそこに移動することです。

アセットを整理することで、プロジェクトをナビゲートするのが容易になり、ワークフローが改善され、ゲームが成長するにつれてメンテナンスがはるかに簡単になります。

image.png

さて、アイテムのための新しい Logic Brick を作成しましょう。

この Logic Brick は、オブジェクトに連続回転を追加する役割を担っており、プレイヤーがシーン内でそれを見つけやすくします。

このタイプの移動は、収集可能なアイテムでは非常に一般的です。完全に静止したオブジェクトは、特に忙しい環境では見えにくい場合があります。シンプルな回転がアイテムを際立たせ、特別なものやインタラクティブであることを直感的に伝えます。

image.png

これを行うために、Entity にアクセスし、その Transform を取得します。

次に、Rotate On Yaw ノードを追加します。このノードは、オブジェクトの Y軸(縦軸)周りに回転を適用する役割を担います。

Radians フィールドで、回転速度として使用する値を定義します。この値が高いほど、アイテムは早く回転します。

最後に、TransformRotate On Yaw に接続し、このロジックを On Update を通じて実行して、ゲーム中にアイテムが連続して回転するようにします。

image.png

最後に、プレイヤーが後に収集ロジックで識別できるように、アイテムに Tag を追加しましょう。

Tags タブを選択し、item という新しいタグを作成し、収集可能なエンティティに割り当てます。

後で、プレイヤーがオブジェクトに触れたときにこのタグを使用して検出します。これにより、名前や視覚的外観だけに依存することなく、収集可能なアイテムを識別するのが簡単になります。

タグを使用するのは、クリーンで柔軟なアプローチです。プロジェクトには最終的に多くの異なる収集可能なオブジェクトが存在する可能性があります。すべてのアイテムに item タグが付けられていれば、プレイヤーロジックはそれらを収集可能として認識できます。

image.png

この時点で、収集可能なアイテムはシーンで使用可能な状態になっています。

視覚的表現、マテリアル、検出用のゴーストコリジョン、回転を加えるLogic Brick、後にプレイヤーがそれを認識できるようにする item タグがあります。