public FaceControlManagerMessageIo(
            IMessageReceiver receiver, IMessageSender sender,
            EyeBonePostProcess eyeBonePostProcess,
            FaceControlManager faceControlManager
            )
        {
            receiver.AssignCommandHandler(
                VmmCommands.AutoBlinkDuringFaceTracking,
                message =>
                faceControlManager.PreferAutoBlinkOnWebCamTracking = message.ToBoolean()
                );

            receiver.AssignCommandHandler(
                VmmCommands.FaceDefaultFun,
                message =>
                faceControlManager.DefaultBlendShape.FaceDefaultFunValue = message.ParseAsPercentage()
                );

            receiver.AssignCommandHandler(
                VmmCommands.SetEyeBoneRotationScale,
                message => eyeBonePostProcess.Scale = message.ParseAsPercentage()
                );

            receiver.AssignQueryHandler(
                VmmQueries.GetBlendShapeNames,
                query => query.Result = string.Join("\t", faceControlManager.BlendShapeStore.GetBlendShapeNames())
                );

            faceControlManager.VrmInitialized += () =>
            {
                sender.SendCommand(MessageFactory.Instance.SetBlendShapeNames(
                                       string.Join("\t", faceControlManager.BlendShapeStore.GetBlendShapeNames())
                                       ));
            };

            //特に眉まわりのブレンドシェイプ割り当てだけは別途やる
            var _ = new BlendShapeAssignReceiver(receiver, faceControlManager);
        }
示例#2
0
        public FaceControlManagerMessageIo(
            IMessageReceiver receiver, IMessageSender sender,
            EyeBonePostProcess eyeBonePostProcess,
            FaceControlManager faceControlManager
            )
        {
            receiver.AssignCommandHandler(
                VmmCommands.AutoBlinkDuringFaceTracking,
                message =>
                faceControlManager.PreferAutoBlinkOnWebCamTracking = message.ToBoolean()
                );

            receiver.AssignCommandHandler(
                VmmCommands.FaceDefaultFun,
                message =>
                faceControlManager.DefaultBlendShape.FaceDefaultFunValue = message.ParseAsPercentage()
                );

            receiver.AssignCommandHandler(
                VmmCommands.SetEyeBoneRotationScale,
                message => eyeBonePostProcess.Scale = message.ParseAsPercentage()
                );
        }