public WordToMotionManagerReceiver(IMessageReceiver receiver, WordToMotionManager manager) { _manager = manager; receiver.AssignCommandHandler( VmmCommands.ReloadMotionRequests, message => ReloadMotionRequests(message.Content) ); receiver.AssignCommandHandler( VmmCommands.PlayWordToMotionItem, message => PlayWordToMotionItem(message.Content) ); receiver.AssignCommandHandler( VmmCommands.EnableWordToMotionPreview, message => _manager.EnablePreview = message.ToBoolean() ); receiver.AssignCommandHandler( VmmCommands.SendWordToMotionPreviewInfo, message => ReceiveWordToMotionPreviewInfo(message.Content) ); receiver.AssignCommandHandler( VmmCommands.SetDeviceTypeToStartWordToMotion, message => SetWordToMotionInputType(message.ToInt()) ); receiver.AssignCommandHandler( VmmCommands.RequestCustomMotionDoctor, _ => _manager.RunCustomMotionDoctor() ); receiver.AssignQueryHandler( VmmQueries.GetAvailableCustomMotionClipNames, q => { q.Result = string.Join("\t", _manager.LoadAvailableCustomMotionClipNames()); Debug.Log("Get Available CustomMotion Clip Names, result = " + q.Result); }); //NOTE: 残骸コードを残しときます。ビルトインモーション後の手の動きがちょっと心配ではあるよね、という話 //NOTE: キーボード/マウスだけ消し、ゲームパッドや画像ハンドトラッキングがある、というケースでは多分無理にいじらないでも大丈夫です。 // case MessageCommandNames.EnableHidArmMotion: // //腕アニメーションが無効なとき、アニメーションの終了処理をちょっと切り替える // manager.ShouldSetDefaultClipAfterMotion = !message.ToBoolean(); // break; }