This document is about: QUANTUM 2
SWITCH TO

Quantum 102 - シーンを設定する

概要

Quantum 102 では、物理オブジェクトを使った簡単な Quantum シーンのセットアップ方法を説明します。エンティティの概念を紹介し、Unity エディタ内からエンティティを作成する方法を学びます。

ゲームシーンを開く

Quantum SDK に同梱されている Unity プロジェクトには、ゲームを始めるのに役立つファイルがすでに含まれています。

Photon/QuantumDemo フォルダの中に GameMenu フォルダがあり、それぞれに同じような名前のシーンが含まれています。これらのシーンは、Quantum 100 シリーズの出発点として機能します。

Game のシーンを開いてください。

The Game Scene
ゲームシーン

このシーンには、いくつかの注目すべきGameObjectがあります。

  • MapData 。Quantumでシーンを作成するワークフローは、Unityで一人用ゲームのシーンを作成するのとほとんど同じです。マップデータコンポーネントは、シーンのエンティティ、スタティックコライダー、NavMeshデータをベイクし、決定論的なQuantumエンジンが使用できるようにします。
  • EnitityViewUpdater は、ゲームプレイコードによって作成されたエンティティ(ビュー)の GameObject 表現を、実行時にインスタンス化したり破棄したりする役割を担っています。
  • LocalInput スクリプトは、Unity の入力を決定論的な Quantum エンジンに渡す方法の例です。このスクリプトはこのシリーズの後半で拡張される予定です。
  • QuantumStats GameObject は、Game エディタウィンドウの左側に表示される統計情報ウィンドウを表示します。これは、アクティブな Quantum シミュレーションに関する多くの有用な統計情報を表示します。

備考: 後日、EntityViewUpdaterに戻り、あなたのゲームのニーズに合わせてカスタマイズすることをお勧めします。例えば、オブジェクトプールを追加したり、必要であれば補間を変更したりします。

床とリジッドボディを追加する

シーンに床を追加するには、Unity の Hierarchy タブ上で右クリックし、Quantum > 3D > Static Box Collider を選択します。このオブジェクトには、Quantum Static Box Collider 3Dがあることに注意してください。Quantum static collider components は、Quantum マップの静的なコリジョンのジオメトリを定義します。

Create a static collider
静的コライダーを作成

GameObject を Floor にリネームして、スケールを (10, 1, 10) に変更します。Scene ビューに、ビジュアルメッシュと一致する緑色のGizmoボックスが表示されます。これは、量子スタティックコライダー(Quantum static collider)です。

The floor

次に、Quantum > 3D > Box Entityを追加します。位置は (0, 4, 0) に、回転は (45, 0, 45) に設定します。

Rigidbodyコンポーネントを追加するには、Enity PrototypeコンポーネントのPhysicsBody3Dチェックボックスをオンにします。

プレイモードに入ります。こうすることで、静的コライダーが自動的に決定論的マップに組み込まれます。立方体のエンティティが落下して、床に着地します。

注意: Quantum シミュレーションのデータはすべて決定論的でなければなりません。そのため、Quantumで作業する場合、多くの非決定論的なUnityのデータをデータベイク処理によって決定論的な形にベイクする必要があります。ベイクされたデータはデータアセット(スクリプト可能なオブジェクトなど)に保存され、シミュレーションからアクセスされます。

Cube falling to the ground

Quantum のエンティティ

Quantumでは、すべてのゲームプレイはエンティティやシステム、静的コライダのような静的データアセットによって駆動されます。Quantum はレンダリングを行いませんが、EntityViewUpdater は Unity の EntityView Monobehaviour を持つ EntityPrototype を持つ各エンティティに対して GameObject をインスタンス化します。このビューGameObjectは、エンティティの視覚的な表現として機能します。また、ビューGameObjectのトランスフォームは、EntityViewUpdaterによって、それぞれのエンティティから自動的に同期さ れます。

各エンティティはコンポーネントのセットを持っています。コンポーネントはUnity MonoBehavioursではなく、EntityPrototype MonoBehavoiursのEnity Componentリストかコードによってエンティティに追加さ れます。いくつかのコンポーネントは、キューブ・エンティティの PhysicsBody3D コンポーネントのように、Entity Prototype コンポーネントのチェックボックスをチェックすることで追加されます。

Quantumには、ランタイム中にエンティティコンポーネントの状態を検査するためのステートインスペクタがあります。Unityのメニューバーで、Window > Quantum > State Inspectorをクリックします。すると、ステートインスペクタのウィンドウが開きます。プレイモードにします。ステートインスペクタのウィンドウで、LOCALDEBUGエントリとEntitiesエントリを展開します。キューブ・エンティティが表示されます。エンティティ上のすべてのコンポーネントとその現在の状態を表示するには、それをクリックします。

The cube entity in the state inspector
ステートインスペクタのキューブエンティティ
Back to top