現在のブログ
ゲーム開発ブログ (2025年~) Gamedev Blog (2025~) 游戏开发博客 (2025年~)
レガシーブログ
テクノロジーブログ (2018~2024年) リリースノート (2023~2025年) MeatBSD (2024年)
【Volt Engine】開発ログ・その004
今週末は投稿しませんでした。
何もしていなかったわけではなく、夜遅くまで作業していた為、ブログを書く時間がなくなってしまったからです。
なので今回の投稿は2日分の作業を纏めた物に成ります。
今日の作業は次回に回します。
又、BGMが気に入らないという人もいた様なので、変更しました。
最適化
最初に行ったのは、3つのモデルローダー(OBJ、glTF、FBX)全ての最適化です。
見せられる様な物ではありません。
変更はグラフィカルではなく数学的な物だからです。
アイランドシーンは、リリースビルドで1秒未満で読み込まれる様に成りました。
更に、衝突検出も最適化し、より高性能にし、重い計算は必要な時だけ行う様にしました。
其の結果、デバッグモードでもシーンが安定して60 FPSで動作する様に成りました!
以前は、衝突が何処で発生するかによって14 FPSから41 FPSの間でした。
新しい衝突システム
此れまで、衝突システムはオブジェクト名がCOL_、COLM_、又はTRIG_で始まる事に依存していました。
其れを変更し、GLBファイル内の追加プロパティを利用する様にしました。
此れにより、レベルデザイナーにとって作業がはるかに簡単に成ります。
このため、Blenderプラグインを作成しました。Pythonコードを書くのはこれが初めてでした。
これで、Blender内からコライダーを非常に柔軟に管理できるようになり、本当にクールです!
3Dサウンドシステム
もう一つの成果は3Dサウンドです。
Blenderで、シーン内の何処かに「空」ノードを配置し、其処にサウンドファイルのパスを割り当てます。
すると、其の場所でサウンドが再生され、どの方向からどれくらいの音量で聞こえるかは、シーン内の位置によって決まります。
使用しているファイル形式の為、3DサウンドシステムはNintendoのゲーム機でのみ動作します。
今後のゲームは此れらのゲーム機向けで、PCは飽くまでリファレンスビルドなので、其れで問題ありません。
更なるBlenderベースの作業
翌日、C++からBlenderへ更に作業を移しました。
此れにはカメラ、ライト、スカイボックスのセットアップが含まれます。
更に、キャラクターの開始位置、パーティクルエミッターの位置、動的イベントオブジェクトの位置、動的イベントがたどるパス等も入れました。
ゲームを作るのが、此れまで以上に急に楽しくなってきました!
更に、照明の方向はスカイボックスと、どの面が最も明るいかによって決まる様に成り、カッコいいです。
此れにより、指向性ライトを別途設定する手間が省けます。
Blenderは、シーンにデバッグメニューとグリッドをデフォルトで有効にするかどうか、又どの種類のグリッドにするかも制御する様に成りました。

カメラコリジョン
最近のゲームでは、カメラが床や建物等を通り抜けられない事に気づくでしょう。
此れがカメラコリジョンと呼ばれ、今回実装しました。
キャンプファイヤー
最後に、実際に炎を出す小さなキャンプファイヤーを作りました。
実際のシーンにはまだ調整が必要ですが、テストシーンなので此れで十分だと思います。
イベントウェイポイントシステム
最後に、ダイナミックイベント用のウェイポイントシステムを実装しました。
此れにより、レベルデザイナーはC++でハードコードする必要なく、ウェイポイントを微調整出来る様に成りました。
上に見えるのは只の此れです:
フリーカメラ
デバッグビルドでは、デバッグ目的でキャラクターを何処にでも配置出来る様に成りました。
此れは、オブジェクトを置きたい正確な位置を取得する方法としても使えます。
以上