プロ生ちゃんを軽くする

「暮井 慧(プロ生ちゃん) MMD & Unity 公式データ」 / 5zj さんの作品 - ニコニ立体

プロ生ちゃんを軽くする経験をしたので、その方法を記事として残す。

とりあえず配置

まずは上記URLから素材をダウンロード。

f:id:xicodoll:20150127212059p:plain

.unitypackageをインポートすると、Assets/PronamaChan以下に素材がインポートされる。
今回の解説では

  • Models/pronamachan
  • Prefab/pronamachan

を利用する。

まずは、Models/pronamachanをシーンに配置してみる。

f:id:xicodoll:20150127212436p:plain

Models/pronamachanは.blend形式のファイルのため、Blenderがインストールされていないとテクスチャが剥がれる場合があり、その場合、画像のように灰色のモデルが表示されることになる。

お次は、Prefabs/pronamachanをシーンに配置してみる。

f:id:xicodoll:20150127213253p:plain

表示はOK。だが、Sceneビューを見るとモデルに大量の情報が付加されていることが分かる。

なぜ重いのか

調べたところ、スカートや髪のパーツ毎にCollider, Rigidbody, Configurable Jointがついていることが分かった。

Rigidbodyは付加したオブジェクトを物理演算に含めるコンポーネントで、Colliderと合わせて衝突判定などを行う。
例えば、Rigidbodyを付加したSphereを作成しスカートに近づけるとこうなる。

f:id:xicodoll:20150127215354p:plain

Sphereとスカートが衝突してスカートがめくれていることが分かる。

Configurable Jointも物理演算の計算のためのコンポーネントで、物理オブジェクトの移動に制限をかけたい場合に利用する。
スカートのパーツがSphereと衝突した後、吹っ飛んでいかないのは、Jointによって座標の移動に制限がかけられているからである。

Configurable Jointの設定については、公式のマニュアルに詳細が載っている。

Unity - Unity Manual

プロ生ちゃんを軽くする

方法は2通りあり、Models/pronamachanのテクスチャを設定するか、Prefab/pronamachanに付加されているコンポーネントを全て外すかのどちらかである。

もし、Blenderをインストールしていて、Models/pronamachanにテクスチャが正しく設定されているのであれば、それをPrefab化して利用すればいい。

もしModels/pronamachanのテクスチャが剥がれているのであれば、貼り直しの作業が必要になる。

テクスチャの設定方法は根性である。

Models/pronamachanとPrefab/pronamachanをステージに配置し、Inspectorビューを2つ開く。

f:id:xicodoll:20150127221727p:plain

赤枠の右側のアイコンからAdd Tab>Inspectorで2つ目のビューを開ける。
左側のアイコンを押すと現在表示中のオブジェクトで表示をロックできるので、Models/pronamachan>SkinnedMeshとPrefab/pronamachan>SkinnedMeshのInspectorをそれぞれ開いて、根性でテクスチャの設定を移していく。

以上がテクスチャ再設定の方法である。

次に、Prefab/pronamachanに付加されているコンポーネントを全て外す方法を説明する。

Prefab/pronamachanに付加されたコンポーネントを外す作業は、手順が重要になる。

まず、Prefab/pronamachanのprefabを複製し、片方をMinifiedPronamachanなどにリネームし作業用とする。

新規シーンを開いて、HierarchyにMinifiedPronamachanを配置する。この時点でシーンに配置されているのはMainCameraとMinifiedPronamachanのみになる。

Hierarchyの検索ボックスにjointと入力し、Jointの付加されているオブジェクトを列挙させ、全て選択する。

f:id:xicodoll:20150127222844p:plain

Configurable Jointが付加されていると、Rigidbodyを外すことができないので、まずはConfigurable JointをRemove Componentする。
(InspectorのConfigurable Jointと書かれている部分を右クリックするとメニューが出るので、そこからRemove Componentできる。)

まずはjointで検索してすべてRemoveし、次にrigidbodyで検索して、RigidbodyをRemoveしていく。

あとはColliderだが、まずはboxcolliderで検索して、スカートに付加されているBoxColliderをすべてRemoveする。

ColliderはBoxColliderとCapsuleColliderしか使っていないようなので、あとはcolliderで検索してCapsuleColliderをRemoveする。

これでプロ生ちゃんに付加された重いコンポーネントをすべて外すことができたので、PrefabにApplyして軽量化完了である。

あとは

シェーダーをMobile向けのものに変えるなどで更なる軽量化が図れる。

だが、そこまでするならSD化されたローポリのモデルなんかが欲しくなってくる気がする。

個人的にローポリのモデルはそれはそれで好きなので、増えてくれないかなあなんて思っている。