Voxelエディター機能追加の自分用メモ
複数マテリアルを扱えるようにする事にした。
理由
・マテリアル毎にVoxelmapを作る仕様だとボクセルの編集が面倒。
・ダンジョン自動生成の仕組みでどのみち必要。
・この仕組みを作っておくとマテリアル分け以外にチャンク機能等も実装しやすそう。
設計
今まではVoxelmapにMeshFilter, MeshRendererがついていたが、これをやめる。
生成時にマテリアル毎にVoxelmapRenderer 0, ~1, ~2という子オブジェクトを生成するようにして、そこにMeshFilter, MeshRendererもつける。そのゲームオブジェクト用にVoxelmapRendererコンポーネントを作り、すべてを紐づける。
マテリアルはあらかじめVoxelmapにリストで入れておく。このリストでは名前も設定できるようにする。
VoxelDataでマテリアルをマテリアル名のリストで選択できるようにする。
少し仕様変更。
同じボクセルを複数メッシュに分けるケースも同時に考えて実装していく。
この機能はレイヤー機能としようかと思ったが、レイヤーはVoxelmapを複数使う運用がいい気がした(コライダーも分けられる為)。レンダーチャンネル機能として実装する。
レンダーチャンネル機能
【ボツ案】同じVoxelDataを利用できるようにする為、チャンネルはVoxelIdentitifierで設定する。その為VoxelDataではメタデータでChを入れられるようにする。でもメタデータだとチャンクを実装したりするには足りない。やはりチャンクは配列自体を複数持つ構造にする必要があるかも。という事でチャンクは一旦考えない。
【新案】VoxelDataでマテリアルを指定するのをやめてCH名を指定する形にする。VoxelSet側では名前とマテリアルを入れるのは同じ。ここで同じマテリアルを指定すれば同じマテリアルの別メッシュが作られる事になる。