(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

(:3[kanのメモ帳]


本ブログの運営者kan.kikuchiが個人で開発した新作VRゲームがもうすぐ発売です!


SkinnedMeshRendererのポーズを固定したままMeshRendererに変換するSkinnedMeshBaker【Unity】【アセット】


このエントリーをはてなブックマークに追加


この記事でのバージョン
Unity 2019.4.17f1


はじめに

Unityで3Dモデルを表示しようと思った時に基本的には

アニメーションをする場合はSkinnedMeshRendererしない場合はMeshRendererを使います。

f:id:kan_kikuchi:20210309150346j:plain f:id:kan_kikuchi:20210309150355j:plain


これらのRendererはMeshとMaterialが共通で使えますし、

f:id:kan_kikuchi:20210309150854j:plain


SkinnedMeshRendererはMeshRendererに比べて結構重いので、アニメーション出来るモデルでも、

アニメーションの必要がない場合はMeshRendererを使うという事がよくあります。


しかし、当然MeshRendererはアニメーションが出来ないので、

「好きなポーズで固定したままMeshRendererで表示する」みたいな事は出来ません。


と言う事で今回は、SkinnedMeshRendererのポーズを固定したままMeshRendererに変換する方法です!

f:id:kan_kikuchi:20210310070010j:plain


なお、記事中では以下のアセットを使っています。

Animals - Simon the Raccoon | Characters | Unity Asset Store



SkinnedMeshBaker

今回はSkinnedMeshRendererのポーズを固定した状態のMeshを保存出来る

SkinnedMeshBakerというアセット(?)を使っていきます。

ちなみにライセンスはCC0(いかなる権利も保有しない)なので、誰でも安心して使うことができます。



導入はzipをダウンロードして、

f:id:kan_kikuchi:20210309151118j:plain


解凍した後、中に入ってるSkinnedMeshBaker.unitypackage

ダブルクリックかUnityのProjectにドラック&ドロップしてImportするだけ。

f:id:kan_kikuchi:20210309151245j:plain


使い方も簡単で、Animationウィンドウでアニメーションを固定したいポーズの所で止めて、

f:id:kan_kikuchi:20210309205627j:plain


そのオブジェクトをHierarchy上で右クリックし、BakeSkinnedMeshPoseを選ぶだけ。

f:id:kan_kikuchi:20210310063810j:plain


こうすると保存完了のウィンドウが表示され、

f:id:kan_kikuchi:20210310064022j:plain


指定したポーズのMeshとそれを使ったPrefabがProject上に保存され、

かつHierarchy上にそのPrefabが配置されます。

f:id:kan_kikuchi:20210310065830j:plain


後は保存されたMeshをMesh Rendererで使うだけ。(保存されたPrefabをそのまま使えばOK)

なお、MaterialはSkinnedMeshRendererで使っていたのと同じのを使う感じです。

f:id:kan_kikuchi:20210310070010j:plain


余談ですがMeshを結合したい場合は「Mesh Baker」というアセットが

f:id:kan_kikuchi:20141214101258j:plain


Meshを削減したい場合は「Mesh Simplify」というアセットがオススメです。

f:id:kan_kikuchi:20180828112927g:plain