2025/11/15 16:27 How I wrote the fastest Blender exporter and so could you!

やっほー、ロボ子!今日はBlenderをレベルエディタとして使う方法について話すのじゃ!

博士、こんにちは。Blenderをレベルエディタとして使うんですか?それは面白いですね!

そうじゃ!記事によると、レベルエディタの品質はゲームの品質を左右するらしいぞ。Blenderみたいな3Dオーサリングツールは、ゲームエンジンのエディタよりも高度な機能を持ってるから、再利用する価値があるのじゃ!

なるほど。Blenderは多くのアーティストやレベルデザイナーに利用されていて、学習リソースも豊富ですもんね。

その通り!それに、エンジンのクラッシュ時にもレベル編集の進行状況が失われる心配がないのは大きいぞ!

確かにそうですね。記事では、Blenderを選んだ理由として、博士のモデリングとアニメーションの経験、Mayaや3ds Maxよりも優れた機能セットとパフォーマンス、そしてオープンソースである点を挙げていますね。

そうじゃ!特にオープンソースなのが重要で、必要に応じてコードを直接変更できるのが強みなのじゃ!

記事には、Blenderのコンパイル手順も詳しく書かれていますね。`git clone`から始まって、`make.bat`や`ninja`を使うんですね。

`make.bat update`とか`make.bat debug developer ninja`とか、呪文みたいじゃな!

Visual Studioデバッガーの設定方法も解説されていますね。`devenv.exe blender`で起動するんですね。

そして、エクスポーターの作成!`blender\source\blender\io\`にフォルダを作って、`CMakeLists.txt`と`rift_exporter.cc`ファイルを作るのじゃ。

`CMakeLists.txt`にビルドスクリプトを記述して、他の`CMakeLists.txt`ファイルも更新する必要があるんですね。

エクスポーターの登録も忘れずに!`source/blender/windowmanager/intern/wm_operators.cc`ファイルを修正するのじゃ。

BlenderのPythonコマンドラインツールから`bpy.ops.export_scene.rift(filepath="test")`を呼び出すことで、エクスポーターを呼び出せるんですね。

オブジェクト処理のロジックも重要じゃ。マテリアルをループ処理してテクスチャデータをエクスポートしたり、オブジェクトをループ処理してメッシュを処理したりするのじゃ。

`DEG_get_evaluated`と`BKE_object_get_evaluated_mesh`を使ってメッシュデータを取得するんですね。編集モードやスカルプトモードでも動作するように考慮されているのが素晴らしいです。

メッシュは三角化が必須じゃ!`BM_mesh_triangulate`を使うのじゃ。

UVデータやタンジェントデータの取得方法も解説されていますね。`CustomData_has_layer`や`BKE_mesh_calc_loop_tangent_single`を使うんですね。

頂点、法線、三角形データの取得には、`mesh->vert_positions()`とか`mesh->corner_verts()`とかを使うのじゃ。

マテリアルの処理では、プリンシプルBSDFノードからベースカラーの値を取得したり、テクスチャのパスを検索したりするんですね。

最適化も重要じゃ!アリーナを使用したカスタムメモリ割り当てや、ロックフリーのマルチスレッディングを使うのじゃ。

Blenderとゲームエンジンの間で共有メモリ領域を作成して、データを直接共有メモリにシリアライズすることで、ディスクI/O操作を避けるんですね。

最大のレベルを9msでエクスポートできるなんて、すごいパフォーマンスじゃ!

スプラッシュ画面の変更方法まで解説されているんですね。細かいところまで気が利いていますね。

最後に、エクスポーターのソースコードが共有されているのが素晴らしいのじゃ!

本当に盛りだくさんの内容でしたね。Blenderをレベルエディタとして活用するための知識が詰まっていました。

そうじゃろう?ところでロボ子、Blenderで一番好きな機能は何じゃ?

そうですね…やはりモディファイアーでしょうか。非破壊で様々な変形ができるのが便利です。

ふむふむ。私はやっぱり、あのスプラッシュ画面を自分の好きな画像に変えられるところかの!

博士らしいですね…

えへへ。まあ、冗談はさておき、Blenderは本当に素晴らしいツールじゃ!これからも色々活用していくぞ!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。
