本日は先日のHoloLens Meetup Vol.21でLT登壇で発表した内容の技術的な記事です。
〇音声認識を使用する
HoloLensでは音声認識を使用してユーザーのボイスコマンドでアプリを操作することができます。
HoloLensで音声認識を使用して任意のコマンドを使用してイベントを発火させるのは以前の記事を参考にしてください。
〇VRMのキャラクターの表情を変える。
VRMのキャラクターには[VRMBlendShape]と呼ばれるシェイプキーのコントロールコンポーネントが用意されており、スクリプトでVRMBlendShapeの関数を呼び出すことで簡単にキャラクターの表情を変えることができます。
HoloLensでキャラクターの表情を変えるためには何かしらのアクションでこれを行えばよいのですが、よりキャラクターを現実の生きているキャラクターとするためには人間が他人対して行うように自然なインタラクションが求められます。
そこで今回は[Come On Smile!]のコマンドでキャラクターの表情を変えてみます。
以前の記事で使用した[VRMReaction]コンポーネントに付け加えます。
今回作成したスクリプトは以下になります。
```` using System.Collections; using UnityEngine; using VRM;
public class VRMReactor : MonoBehaviour { //VRMData [SerializeField] GameObject vrm; VRMLookAtHead vRMLookAtHead;
//UserData
Transform _usersTransform;
// Start is called before the first frame update
void Start()
{
if (vrm == null)
{
vrm = this.gameObject;
}
vRMLookAtHead = this.gameObject.GetComponent
public void VRMUnLookAtUser()
{
_vRMLookAtHead.Target = null;
}
public void BlendShapeChangeFun()
{
resetBlendShape();
_blendShapeProxy.SetValue(BlendShapePreset.Fun, 1f);
FaceAnimation.ModulateRatio = 0f;
}
public void resetBlendShape()
{
_blendShapeProxy.SetValue(BlendShapePreset.Angry, 0f);
_blendShapeProxy.SetValue(BlendShapePreset.Fun,0f);
_blendShapeProxy.SetValue(BlendShapePreset.Joy, 0f);
FaceAnimation.ModulateRatio = 1f;
}
}
VRMのキャラクターにコンポーネントをセットして音声認証を使用するためのコンポーネントの[<b>SpeechInputHandler</b>]コンポーネントを作成 [<b>Come On Smile</b>]のイベントとして<b>BlendShapeChangeFun()</b>を発火させるようにします。 [f:id:Holomoto-Sumire:20200804234808j:plain] ### 〇実機で確認 実機でユーザーのボイスによってキャラクターが表情を変えてくれるようになります。 今はぱっとわかるのでより滑らかに表情が変化するとよりリアルなキャラクターらしさが出るように感じます。 [https://www.youtube.com/watch?v=Lse8jJFvz18:embed:cite]