TomoGのごちゃまぜ倉庫

Unity BlendShapesを文字列で管理

f:id:TomoG:20181127101553j:plain
今回はSkinned Mesh RendererのBlendShapesを文字列で管理する方法を書きます。

この方法はキャラクリやキャラクターの表情を変えたりするのに使用します。

ソースコード


ソースコードの大まかな説明をすると、シェイプキーの数だけDictionaryにシェイプキーの名前と番号を追加
その追加されたDictionaryを使って、文字列による番号検索を行っている。

使い方

シェイプキーを追加しているオブジェクトをTargetとすると
SetMesh(Target)で全てDictionaryに保存される。

後はGetIndex(使用するシェイプキー名)で番号をもらうか
GetKey(使用する番号)でシェイプキーをもらえます。

細かな説明

・SkinnedMeshRenderer.sharedMesh.blendShapeCount
シェイプキーの数を返り値とするもの。

・SkinnedMeshRenderer.sharedMesh.GetBlendShapeName(int index)
index番目のシェイプキー名が返り値

参考サイト

onoty3d.hatenablog.com

2019/03/13 ページ微調整