LotosLabo

プログラミング技術とか気になった情報を載せていきます

VOCALOID SDK for UnityでSDユニティちゃんをリップシンクさせる

はじめに

VOCALOID SDK for Unityのサンプルコードには、
Unityちゃんをリップシンクできるコードがありましたので、
それをSDユニティちゃんでもリップシンクできるようにしてみました。


変更点

LipSyncController.csのvoid Awake()内の記述を変更します。


変更前の記述

_skinnedMeshRenderer = GameObject.Find("MTH_DEF").GetComponent<SkinnedMeshRenderer>();

blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.A, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("blendShape1.MTH_A")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.I, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("blendShape1.MTH_I")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.U, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("blendShape1.MTH_U")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.E, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("blendShape1.MTH_E")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.O, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("blendShape1.MTH_O")));



変更後の記述

_skinnedMeshRenderer = GameObject.Find("_face").GetComponent<SkinnedMeshRenderer>();

blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.A, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("face.MTH_a")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.I, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("face.MTH_i")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.U, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("face.MTH_u")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.E, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("face.MTH_e")));
blendShapeList.Add(new BlendShape(YVF.YVFVowelIDJapanese.O, _skinnedMeshRenderer.sharedMesh.GetBlendShapeIndex("face.MTH_o")));


このように書き換えることでSDユニティちゃんでもリップシンクが可能になります。

ライセンス表記

f:id:lo25131:20140607195201p:plain

このコンテンツは、『ユニティちゃんライセンス』で提供されています。


本コンテンツにはヤマハ株式会社の
VOCALOID SDK for Unity」が使用されています。
VOCALOID(ボーカロイド)」ならびに「ボカロ」はヤマハ株式会社の登録商標です。