Unity AssetStoreまとめ

Unityアセットストアで注目すべきイチオシ情報を毎日お届けします!

Mesh Animator リグ持ちのキャラクターをメッシュアニメに変換して最適化するスクリプト(ライブ会場など大勢の観客はこれがベスト)

スポンサーリンク

f:id:assetsale:20170718013221j:plain

f:id:assetsale:20170718013228j:plain

今日のアセット

Mesh Animator

$27.00 => $18.90    30%OFF

 

スタジアムやライブ会場の大勢の観客、数万単位の魚の群れなどの、

リグ持ちのアニメキャラを変換(頂点アニメ)して最適化するスクリプトです。

 

Mecanim vs Mesh Animator

FPSに圧倒的な差ができるほどサクサク動くようになった!

左側:リグを持つGenericタイプのMecanim

右側は:Mesh Animatorでリグ無しの頂点アニメに変換したキャラ。

 

このアセットを使えば、大勢の観客を嘘っぽい表現にする必要無し!

 

※群集じゃなくても以下のタイプなら試す価値アリ

 

Mesh Animatorで最適なキャラクターとは?

  • 単純にAnimationを再生する程度のキャラクター
  • 再生するアニメは数秒程度で短い
  • リグがGenericならウェルカム!
  • Humanoidはベータです。

 

このタイプには無理です

 

変換するとリグが無くなるので・・・

 

  • 「Ragdoll」や「IK」は使えなくなります。
  • 剣や盾など特定の部位に後から装着できません。(既に装備してるならOK)
  • 頂点アニメになるためアニメの再生時間に注意。メモリを犠牲にする。
  • Humanoidは現在ベータ版で一応使用可能。スクリプトで動かす必要あり。

 

アセットの基本部分は前回の記事でびっしり書いたので、

今回は手持ちのキャラを使って、変換して検証してみました。

ユニティちゃんも一応検証したよ!

 

Mesh Animator Version 1.5 - YouTube(0:50)

 

1万体表示したゾンビの群集動画

10,000 Zombies in Unity using Mesh Animator - YouTube(0:10)

 

 

アセット使い方や基本情報は前に紹介した内容とほぼ同じで

使い方などはこちらを参照ください。

2017年2月20日のデイリーセールで登場

エディタの項目が少なくてちょっと古いですが、やってることは大体同じ。 

 

 

デモ素材以外の手持ちキャラで検証

 

Genericタイプのクリーチャー素材を引っ張ってきました!

使用したアセット:Fantasy Monsters

 

 

圧縮率と負荷をチェック

 Compression Accuracyの値を変えてジェネレートすると、低負荷キャラの出来上がり。

5段階あって、その内3つを紹介します。

f:id:assetsale:20170718012211p:plain

 

※右のキャラが変換元のキャラクターです。

【圧縮率0】モデルが細かいから意味不明になりました。

ボクセルキャラならいけるかも。

 

 

 【圧縮率0.1】荒いけど認識できるレベル。遠くにいるならこの圧縮率が最適かも。

↓圧縮キャラが消えた時の変化量。値の差が少なく軽量化に成功。

Batches:70->50   /   SetPassCalls: 30->28   /   FPS:75 -> 85

 

 

 【圧縮率0.01】デフォルトより10倍高い圧縮率。元素材よりアニメのざらつきが気になる程度

Batches:70->50   /   SetPassCalls: 30->27   /   FPS:85 -> 77

 

 

沢山並べてみた

 

 

【圧縮率0.01】デフォルトより10倍高い圧縮率。

Batches:1835->1267   /   SetPassCalls: 37-> 35   /   FPS:59 -> 49

※値に差が殆どないから、低負荷でレンダリング出来てるのがよくわかる。

 

 

実行時にキャラの座標がズレる対処法

 

アニメーションのroot座標が実行時にローカル座標に足し込まれるようになる!

 

その場合はアニメーションをこのように設定しよう。

f:id:assetsale:20170718030304j:plain

サンプルに付いてたキャラのアニメーションで、Postionの値

Y軸が結構ずれてて(0.85....)が実行時に足し込まれるとかアニメによってバラバラなので・・・殆どの素材に当てはまると思います。

f:id:assetsale:20170718030240p:plain

変換する前のアニメーション設定を開いて

・Root Transform Position(Y)のBake Into Poseにチェック

・Root Transform Position(XZ)のBake Into Poseにチェック

※一応Rotationの方にもチェックを入れた。ループするアニメならLoopにチェックを入れる。

※画像はデュラハンのアニメです。

 

全部設定し終わったらエディタで再びジェネレートすれば直るはず。

 

あと、ジェネレートすると完成したキャラが座標0,0,0に勝手に作られます。

前のPrefabと重なっててわかりにくいので変換前のキャラは削除しよう。

 

Mecanimで動かす

f:id:assetsale:20170718034433p:plain

Animatorは普段通りに設定して、

「Mecanim Mesh Animator Controller」スクリプトをアタッチすると完成!

Cross Fadeにチェックを入れると滑らかに切り替わるようになります。

 

 

 

ユニティちゃんを動かしてみた

 

アニメを全部ツッコんで再生したら、このポーズでピクリとも動かない。

デフォルトのアニメ設定をidleを指定してもこうなるので・・・

f:id:assetsale:20170718033631j:plain

埋まるなよw

 

さっきのRoot座標云々のチェックとループ設定にして、不要なアニメを削ったらなんとか動きました。

 

アニメを削りすぎたのが悪いのかマウスクリックの反応がちょっと悪い(笑

けど、しっかりとポージングしてるの凄くない!?

※↑倍速再生してるのでサクサク動いてますが、実際はクリックの反応が悪くなった。

 

単純なミスだと思いますが、タイムアップで今回はここまで

次回セール来た時にどこまで動かせるかまた挑戦してみたいですね。

 

Mesh Animatorの価格

18.90ドルの計算結果 (1ドル 112.6490 円)
18.90ドルは、2,129円

定価27.00ドルなら、3,042円