C++17 で書かれた 3D ゲームエンジンと、Dock ベースのビジュアルエディタを一体にしたプロジェクトです。レンダリングには bgfx を使用し、Windows でビルド・実行が確認されています。
- 遅延レンダリングパイプライン(PBR、リフレクションプローブ、LOD)
- ECS アーキテクチャ(transform / camera / light / model / audio などのコンポーネント)
- ランタイムリフレクション + シリアライゼーション(rttr + cereal、エディタ UI が自動生成される)
- アセットパイプライン(モデル / テクスチャ / シェーダをエディタ内でコンパイル)
- Dock ベースのエディタ(シーン / ヒエラルキー / インスペクタ / コンソール / プロジェクト)
- 3D オーディオ(OpenAL Soft)
- アニメーション(スケルタルアニメーション、ボーンシステム)
- Windows 10/11
- Visual Studio 2019 以降
- CMake 3.19 以降
- Git
git clone https://github.com/wuyukwi/LunarYueEngine
cd LunarYueEngine
cmake -B build
cmake --build build --config Debugビルドが成功すると、build/bin/Debug/LunarYueEditor.exe が生成されます。
以前は
-DCMAKE_POLICY_VERSION_MINIMUM=3.5を付けないと CMake 4.x で configure に失敗しましたが、現在は不要です(ルート CMakeLists.txt が自動処理します)。
| 操作 | キー |
|---|---|
| 移動 / 回転 / スケールモード | W / E / R |
| ローカル / ワールド座標系 | T / Y |
| オブジェクト操作 | 選択後にマウスでギズモをドラッグ |
| スナップ操作 | LControl を押しながら操作 |
| カメラ回転 / パン / ズーム | 右マウス / 中マウス / ホイール |
| カメラ移動(右マウス押下中) | W S A D Space LControl、LShift で高速化 |
| エンティティ削除 / 複製 / フォーカス | Delete / Ctrl+D / Shift+F |
- テクスチャ:
pngtgaddsktxpvr - メッシュ:
objfbxdae3ds - オーディオ:
oggwav
bgfx(レンダリング) / cereal(シリアライゼーション) / rttr(リフレクション) / spdlog(ログ) / imgui(GUI) / assimp(モデルインポート) / glm(数学) / openal-soft(オーディオ) / nativefiledialog(ネイティブダイアログ) / stb
すべて source/3rdparty に vendored されています。
source/
├── engine/
│ ├── core/ # 基盤ライブラリ(グラフィックス / 数学 / ログ / シリアライズ / タスク等、18 モジュール)
│ └── runtime/ # ゲームランタイム(ECS / アセット / レンダリング / アニメーション / 入力)
├── editor/
│ ├── editor_core/ # GUI / メッシュインポート / ネイティブファイルダイアログ
│ └── editor_runtime/ # エディタ本体(Dock / アセットパイプライン / main.cpp)
└── 3rdparty/ # vendored 依存ライブラリ
詳細は docs/ARCHITECTURE.md を参照してください。
- Ubuntu ビルドは未検証です(検証したのは Windows + VS2019/VS2022 のみ)
- OpenGL バックエンドでシェーダを再コンパイルする場合、プラットフォーム判定に問題がある可能性があります(既定の Direct3D 11 では影響なし)
- エディタの多重起動は想定されていません(2 つ目を起動するとランタイムエラーになる可能性があります)
