Skinned Metaball Builder マニュアル -Tips-

Skinned Metaball Builder マニュアル -Tips-

 

Tips. 

 

メタボールの構造を確認する

f:id:nkdtr:20150608180556p:plain

"SkinnedMesh" または "StaticMesh" を非表示にすることで、メタボールの構造が確認できます (Skinnedの場合は骨組みも見えます).

 

StaticからSkinnedへの置き換え (またはその逆)

"SourceRoot"下のGameObjectを別のMetaballSeedへとコピーすることで、メタボール情報が移植されます.

Seedのパラメータについては手動で修正する必要があります.

 

複数のマテリアルを使用する

f:id:nkdtr:20150608183415p:plain

一つのMetaballメッシュは一つのマテリアルしか扱うことができません.

しかし、単純に複数のモデルを組み合わせて使用することはできるでしょう (それらを「融合」させることはできませんが).

 

消してもよいオブジェクト

メッシュを生成後、幾つかのGameObjectやComponentは消去してしまっても問題ありません.

- MetaballSeed(Static/Skinned) component

- SourceRoot GameObject (及びその子GameObject)

- TextureGuide GameObject

- MetaballCellObject component (直にこれを消すよりも、CellObjPrefabをnullに設定しRebuildMeshを行うことを推奨します)

これを行うとメッシュの再編集はできなくなりますが,

このAssetへの依存性をなくすことで公開に適したデータとなります.

 

"CellObjPrefab"の使い方

デフォルトではnullに設定されていますが、

様々な使い方の可能性があります.

- Joint接続の構築 ( "Animation" サンプルシーン内の"Tentacle"を参照してください )

- ボーンを操作するための「ハンドル」として (Skinnedの場合)

- AIのための"waypoint"として ( "Dungeon" のようなアプリケーションにおいて )

 

メッシュの生成に失敗する場合

これは多くの場合、格子のセル数が多すぎるために起ります.

この場合は以下のようなエラーメッセージが表示されます。

"Too many grid cells for building mesh (1168200 > 1000000 ).
Make the area smaller or set larger (MetaballSeedBase.gridSize)."

これを解消するにはメッセージ通りメタボールの領域を縮小するか、

GridSizeパラメータを大きく取ります.

別の手段は、セル数の限界値を上げてしまうことです。

これにはソースコードの以下の部分を書き換えます。

(

    "MetaballBuilder.cs"
    const int _maxGridCellCount = 1000000;

).

セル数が大きすぎる場合、システムのフリーズを招く恐れがあります.

(その限界値はシステムのスペックや状態によります).

 

メッシュがリークしているとログが出る

メッシュを生成後にシーンをセーブする際、以下のようなログが出力されることがあります.

"Cleaning up leaked objects in scene since no game object, component or manager is referencing them
 Mesh  has been leaked (some number) times."

しかし見たところ、実際にリークが起っているわけではいないようです.