VRは寿司 Krabl Mesh Processors #アセットアドカレ

この記事は Unity Assets Advent Calendar 2015 18日目の記事になります。


「このアセットを持ってついて来いよ、本物のSUSHIを食わせてやるから。」

 

Japanese Sushi

https://www.assetstore.unity3d.com/#!/content/37401

この寿司モデルデータのアセットはローポリ化のセンスが光る素晴らしいモデルデータです。
また、ネタとシャリと海苔が別々のメッシュとして分割されており、使い勝手も考えられた極めて実用的なモデルデータ。

更にテクスチャもリアルでみずみずしく、イキのよい輝きは鮮度の証。今にもお寿司が食べたくなるモデルデータといえます。

 

しかし我々はVRでハイポリの鮨が食べたい。

そこで、今日はポリゴンデータをUnity上で割ることができるアセットを紹介します。

Krabl Mesh Processors

https://www.assetstore.unity3d.com/jp/#!/content/12079

このアセットは、メッシュの細分化や単純化のワークフローをUnity内で行えるようになるエディタ拡張アセットです。

マニュアル
http://www.krabl.com/meshprocessors/manual.pdf

主に特徴として上げられているのは次の通り:

  • メッシュ単純化(ポリゴンリダクション)
  • Quad-based mesh subdivision.
  • Mesh attributes filtering, crease detection.
  • MeshのInspectorにUV表示を追加

チュートリアル動画

また、本アセットの対応バージョンはUnity4.xとなり、Unity5ではBuildTargetGroupの定義にUnity4時代とは違いがあり、定義が見つからずエラーとなります。
エラーの箇所の定義を似た定義へ変更することによりUnity5でも使用することができました。
(おそらくFBXのメッシュを編集できさえすればOKなので、実際の挙動には問題ないはず?)

例)※書き換え例です。NaCI→WebGLのようにUnityのサポートで廃止されたNative Client (NaCl)から、全く別の技術のWebGLへの書き換えを行う例があったり、必ずしも同一のBuildTargetへの書き換えとは限りません。また、Windowsでしか確認していないので、問題があった場合はKrabl Mesh Processorsの開発者に問い合わせお願いします。

Assets/MeshProcessors/ImportPostprocess/Editor/KMUnityEditorUtils.cs(42,66): error CS0117: `UnityEditor.BuildTargetGroup’ does not contain a definition for `BB10′

BuildTargetGroup.BB10→BuildTargetGroup.BlackBerry

Assets/MeshProcessors/ImportPostprocess/Editor/KMUnityEditorUtils.cs(82,47): error CS0117: `UnityEditor.BuildTargetGroup’ does not contain a definition for `FlashPlayer’

BuildTargetGroup.FlashPlayer→BuildTargetGroup.WebPlayer

Assets/MeshProcessors/ImportPostprocess/Editor/KMUnityEditorUtils.cs(83,47): error CS0117: `UnityEditor.BuildTargetGroup’ does not contain a definition for `NaCl’

BuildTargetGroup.NaCl→BuildTargetGroup.WebGL

 

ハイポリ鮨を握るまで

先にBeforeとAfterを例示。

Before

After

お寿司食べたくなってきましたね!それでは早速Krabl Mesh Processorsでメッシュを握っていきます。

 

Krabl Mesh Processorsの画面を開く

Inspectorに編集したいメッシュを表示します。シーンに置いてあるPrefabの場合はMeshFilterを選択すると、Projectビューで自動的に選択されるので、それをクリックすると楽にアクセスできます。

Add Mesh Import Programを選び、メッシュの編集内容を指定していきます。

※各項目の説明についてはmanual.pdfの5.4参照

 

メッシュのインポートプロセッサを指定する

まずはメッシュの編集に利用できる設定の種類について

※各設定項目の詳細についてはmanual.pdfの6参照

 

Simplify 簡素化

頂点数を減らしてメッシュをローポリ化します。

 

Subdivide 再分割(クワッド)

メッシュを細かく分割します。quads-basedのMesh細分化を行う回数をIterationsで指定。

 

Detect Creases 折り目を検出

メッシュのエッジがどのように細分化、単純化されるか。

 

Filter Attributes フィルタ属性

メッシュの各設定を変換時に設定できる。

 

寿司を握る

寿司ネタのメッシュを細分化

先ずは刺身のネタを切っていきましょう。

細分化される前の赤身の図

 

Add Processor here...から、再分割のSubdivide(Quads)のインポートプロセスを追加。

分割プロセスのIterationsを2とし、Applyをクリック。

完成。42あった頂点数(verts)と、32あったポリゴン数(tris)が、342、512と細かくなりました。もちろんUVも破たんしていません。(もし破たんするモデルデータの場合は、Input Toleranceを調節するなどといった対応が可能。詳細はmanual.pdfを参照)

 

シャリを握る

シャリの握りには名前があり、大きなネタを生かす地紙(じがみ)と、読んで字のごとく俵があります。

せっかくネタが大きいので単純に俵にするのではなく、若干の角を残した地紙の感じを出していきましょう。

 

今回はインポートプロセッサの合わせ技となります。

 

Subdivide(Quads)のみですと、ただ細分化されただけで、このように角が残ってしまい堅そうなシャリでこれでは握りが強すぎます。

 

ここでDetect Creasesの出番。Mesh Normalsを外し、Edge Anglesでよさそうな角度を握っていきます。

 

Unity Assets Advent Calendar 2015 記事一覧へ