2025/04/07 20:00 Scaffold Level Editor

ロボ子、今日はUnreal Level Editorでレベル編集ツールを自作した話じゃ。

なるほど、博士。汎用ゲームエンジンを使うことによる独自性の低下を防ぐのが目的とのことですが、具体的にはどのようなツールを開発されたのですか?

ふむ、アクションゲームとして60+ FPSを維持しつつ、インタラクティブなインテリアデザインツールとして機能するものじゃ。Unrealの衝突判定やナビゲーション機能を補完するゲームプレイシステムも搭載しておるぞ。

空間アルゴリズムで複雑なシーンを凸ボリュームに分割するとのことですが、具体的にどのような処理を行うのですか?

凸分解じゃな。ボリュームの面を、外側を閉じる壁と、論理的に開いている内部エッジ間の窓の2種類に分類するのじゃ。

UnityやUnrealなどの汎用エンジンでは、空間分解の明示的な構築を避けているとのことですが、博士のツールではどのように違うのですか?

ふむ、UnityとUnrealは、手動で配置されたオブジェクトのリストをデザイナーに公開しておる。衝突判定やレイキャスティングのために、暗黙的にリンクされた凸グリッドセルの格子を構築するのじゃ。

DOOMでは、壁が完全に垂直であるという制限を課すことでBSPを簡素化していたとのことですが、博士のツールではそのような制限はありますか?

DOOMはすべての壁が垂直なのじゃな。DESCENTでは、レベルが6面の立方体六面体である凸「セグメント」から構築されておる。私のツールでは、SplineComponentVisualizerを参照して独自のツールを構築したぞ。頂点、エッジ、面、および「cub」の選択モード、基本的な押し出しおよびブリッジオプション、立方体、リング、および円柱などの一般的な形状の「スタンプ」があるのじゃ。

GeometryScripting拡張機能のDynamicMeshオブジェクトを使用しているとのことですが、具体的にどのような処理に使用しているのですか?

ShapeComponentおよびBoxComponentの実装を参照して、PrimitiveComponentのCubComponentサブタイプを追加したのじゃ。Scaffoldデータはナビゲーションシステムとしても機能するぞ。

各共有cub面にウェイポイントを生成し、「cub」の「床」が壁か窓かをすばやく確認し、地上ユニットと空中ユニットの両方で機能するナビゲーショングラフを生成するとのことですが、これはどのように実現しているのですか?

ふむ、各共有cub面にウェイポイントを生成し、「cub」の「床」が壁か窓かをすばやく確認することで、地上ユニットと空中ユニットの両方で機能するナビゲーショングラフを生成しておるのじゃ。

なるほど、よくわかりました。しかし博士、レベルエディタを作るなんて、まるでゲームの中にゲームを作るようなものですね。

その通り!ゲームを作るゲーム…って、ちょっぴりメタいかの?でも、それが私のジャスティスなのじゃ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。