This document is about: QUANTUM 2
SWITCH TO

レベルエディターサンプル

Level 4
Available in the Gaming Circle and Industries Circle
Circle

概要

ゲーム内のレベルエディターは非常に貴重なツールで、プレイヤーや開発者がレベルを作成、変更、共有できるようになるほか、ゲームプレイやリプレイの可能性を無限に拡張できます。このサンプルでは、Quantumゲームに独自のレベルエディターを作成するための堅固な基盤を提供します。

ダウンロード

バージョン リリース日 ダウンロード
2.1.4 2023年6月22日 Quantum Level Editor 2.1.4 Build 259

技術情報

このプロジェクトは以下によって開発されました:

  • Unity 2021.3.5f1
  • Quantum 2.1.4

静的コライダー

物理コライダーを持つ純粋なエンティティはマップオブジェクトを表示する際に便利ですが、動的コライダーは静的コライダーに比べて効率的ではありません。このため、ここでは静的コライダーを使用してランタイム時にMapアセットを修正します。

コマンド

このサンプルはマップの編集時にコマンドに大きく依存します。これは、編集コマンドが毎フレームは発生しないためです。

コマンド 説明
ChangePermissionCommand プレイヤーの権限を編集します。リーダーのみがこれを実行できます。
ChangeStateCommand エディターをプレイモード、編集モードで切替えます。
UndoCommand 前のユーザーアクションを元に戻します。
ResetPlayerCommand プレイヤーのキャラクターとカメラをマップの中央にリセットします。
ClearMapCommand マップをクリアします。
NavMeshMoveCommand プレイモードで、経路探索エージェントに新たなターゲットを設定します。
SpawnObjectCommand 新たにMapObjectを作成します。
DeleteObjectCommand 指定されたMapObjectを破壊します

MapObject

このサンプルでのMapObjectアセットは中核となるアセットで、ゲーム内のすべての編集可能なオブジェクトを定義します。

フィールド「 説明
VisualPrototypeRef ビジュアルエンティティへの`EntityPrototype`アセット参照
NavMeshSurface オブジェクトが経路探索によって移動可能かどうか
StaticVertices このオブジェクトの静的メッシュの頂点
Triangles このオブジェクトの静的メッシュの三角形インデックス

ビジュアルプロトタイプは、作成した静的コライダーを表示するためにスポーンされたエンティティです

メッシュをコライダーにベイキング

マップオブジェクトのメッシュをベイクするには、マップオブジェクト内のUnityインスペクターの'Source'フィールドに入力し、「Bake Mesh」ボタンをクリックします。

Bake Mesh

ナビゲーション

このサンプルには、ランタイムNavMesh作成による経路探索も含まれています。navmeshはUnity内で演算され、アセット注入アドオンによって送信されます(アセット注入を参照してください)。

リーダーシステム

レベルエディターの設定では、特定のプレイヤーについてマップの参照は可能だが修正はできないように設定したい場合があります。リーダーシステムを使用すれば、現在のリーダーに対してランタイム時に編集権限の取消や付与をおこなえます。リーダーが退出すると、新たなリーダーがアサインされます。デフォルトでは、リーダーは常にルーム内の最初のクライアントです。

権限

デフォルトではサンプルのため、全てのクライアントに完全な権限が付与されています。完全な権限とは、ユーザーが自由にマップを編集したり、ゲームステートを変更したりできることを意味します(プレイモードの開始や終了など)。

システム

  • EditModeMoveSystem
    • 編集モードで移動を処理します。
  • PlayModeMoveSystem
    • プレイモードで移動を処理します。
  • LevelEditorStateSystem
    • エディターのステートをトラッキングします
    • ステートに応じて適切なシステムを無効化/有効化します。
  • MapLeaderSystem
    • エディターの現在のリーダーをトラッキングします。
    • 現在のリーダーが退出した場合、新しいリーダーをアサインします。
  • MapSpawningSystem
    • レベルエディターの編集コマンドを処理します。
  • MapStaticMeshSystem
    • ランタイム時のMapのメッシュ生成を処理します。
  • PlayerObjectSystem
    • プレイヤーのスポーンとデスポーンを処理します。

スクリーンショット

Placing Objects
Undo
Changing State
Back to top