凛(kagring)のUE4とUnityとQt勉強中ブログ

2016 年から UE4 を触り始めました。勉強したもののメモ用のブログです。C++ での Qt、Unity も少しあります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

ブレンドシェイプ

Unity でブレンドシェイプ(Blend Shape)を扱うためのものです。
とりあえず、FBX の中にブレンドシェイプのデータがはいっていること前提で話を進めます。

Blender などであればここを参考にしました。

[Tutorial] Unity Facial Animation / Blendshape / Morph
http://laboratoriesx86.wordpress.com/2013/12/09/facial-animation-unitytutorial/

ブレンドシェイプのデータは該当するオブジェクトの SkinnedMeshRenderer が持っています。
SkinnedMeshRenderer を使ってのブレンド率(重み)の取得と設定は以下の感じになります。

// ブレンドシェイプを持つオブジェクトの SkinnedMeshRenderer を取得
GameObject object = GameObject.Find("ObjectName");
SkinnedMeshRenderer renderer = object.GetComponent< SkinnedMeshRenderer>();

// ブレンドシェイプの数(ターゲットの数)は sharedMesh.blendShapeCount に入っています。
for( int i = 0; i < renderer.sharedMesh.blendShapeCount; i++ ){

// 重みの取得と設定
float weight = renderer.GetBlendShapeWeight(i);
renderer.SetBlendShapeWeight(i,weight);
}


と、こんな感じでプログラムからブレンドシェイプの重みを設定することができます。

これで表情などのセットができるようになりました。こんな感じに。
ブレンドシェイプ

スポンサーサイト

| Unity | 23:30 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://kagring.blog.fc2.com/tb.php/12-a35ab842

TRACKBACK

PREV | PAGE-SELECT | NEXT