private void Start()
        {
            _lipSyncContext  = GetComponent <DeviceSelectableLipSyncContext>();
            _animMorphTarget = GetComponent <AnimMorphEasedTarget>();
            handler.Commands.Subscribe(message =>
            {
                switch (message.Command)
                {
                case MessageCommandNames.EnableLipSync:
                    SetLipSyncEnable(message.ToBoolean());
                    break;

                case MessageCommandNames.SetMicrophoneDeviceName:
                    SetMicrophoneDeviceName(message.Content);
                    break;
                }
            });
            handler.QueryRequested += OnQueryRequested;
        }
        public void Initialize(
            IMessageReceiver receiver,
            IVRMLoadable vrmLoadable,
            FaceTracker faceTracker,
            DeviceSelectableLipSyncContext lipSync
            )
        {
            _faceTracker = faceTracker;

            receiver.AssignCommandHandler(
                VmmCommands.EnableVoiceBasedMotion,
                command => _operationEnabled = command.ToBoolean());

            _voiceOnOffParser = new VoiceOnOffParser(lipSync)
            {
                //そこそこちゃんと喋ってないと検出しない、という設定のつもり
                VisemeThreshold   = 0.2f,
                OnCountThreshold  = 6,
                OffCountThreshold = 16,
            };

            _motionApplier = new NonImageBasedMotionApplier(vrmLoadable);
        }
 private void Start()
 {
     _lipSyncContext       = GetComponent <DeviceSelectableLipSyncContext>();
     _animMorphEasedTarget = GetComponent <AnimMorphEasedTarget>();
     _lipSyncIntegrator    = GetComponent <LipSyncIntegrator>();
 }