技術書典18で執筆した本のサンプルプロジェクトです。
このプロジェクトは、Unity上でマーチングキューブ法を用いてリアルタイムにメッシュを生成し、マウスクリックで地形に穴を掘ることができるサンプル実装です。
- Unity Editorでこのプロジェクトを開きます。
Assets/Sample/Sample.unityシーンを開きます。- Unity Editorの再生ボタンを押して、シーンを実行します。
- 実行中に、地面をマウスで左クリックすると、クリックした地点に穴が掘られます。
以下のスクリプトはAssets/Sample/Scripts/内に定義されているものです。
Assets/Sample/Scripts/MarchingCubesTable.cs: マーチングキューブ法で使用するエッジテーブルとトライアングルテーブルを定義しています。Assets/Sample/Scripts/MeshGenerator.cs: ボクセルグリッドの生成、マーチングキューブ法によるメッシュ構築、およびメッシュの更新処理を担当します。Assets/Sample/Scripts/MeshModifier.cs: マウス入力に応じてレイキャストを行い、ヒットした地点のボクセルデータを変更してMeshGeneratorにメッシュの更新を指示します。