internal ExternalTrackerViewModel(IMessageSender sender, IMessageReceiver receiver) : base(sender)
        {
            RefreshReceiverSetting();
            receiver.ReceivedCommand += OnMessageReceived;

            //DEBUG: ひとまずガワを見てみたい。
            _settingModel = ExternalTrackerFaceSwitchSetting.LoadDefault();
            FaceSwitchItems.Clear();
            foreach (var item in _settingModel.Items)
            {
                FaceSwitchItems.Add(new ExternalTrackerFaceSwitchItemViewModel(this, item));
            }
        }
        public ExternalTrackerSettingSync(IMessageSender sender) : base(sender)
        {
            var setting = ExternalTrackerSetting.Default;
            var factory = MessageFactory.Instance;

            //NOTE: ひとまず初期値を入れておくと非null保証できて都合がいい、という話
            _faceSwitchSetting = ExternalTrackerFaceSwitchSetting.LoadDefault();

            EnableExternalTracking = new RProperty <bool>(
                setting.EnableExternalTracking, b => SendMessage(factory.ExTrackerEnable(b))
                );
            EnableExternalTrackerLipSync = new RProperty <bool>(
                setting.EnableExternalTrackerLipSync, b => SendMessage(factory.ExTrackerEnableLipSync(b))
                );
            EnableExternalTrackerEmphasizeExpression = new RProperty <bool>(
                setting.EnableExternalTrackerEmphasizeExpression, b => SendMessage(factory.ExTrackerEnableEmphasizeExpression(b))
                );
            EnableExternalTrackerPerfectSync = new RProperty <bool>(
                setting.EnableExternalTrackerPerfectSync, b => SendMessage(factory.ExTrackerEnablePerfectSync(b))
                );

            TrackSourceType = new RProperty <int>(setting.TrackSourceType, i => SendMessage(factory.ExTrackerSetSource(i)));
            //NOTE: このアドレスはコマンド実行時に使うため、書き換わってもメッセージは送らない
            IFacialMocapTargetIpAddress = new RProperty <string>(setting.IFacialMocapTargetIpAddress);

            CalibrateData = new RProperty <string>(
                setting.CalibrateData, s => SendMessage(factory.ExTrackerSetCalibrateData(s))
                );

            SerializedFaceSwitchSetting = new RProperty <string>(
                setting.SerializedFaceSwitchSetting, v => SendMessage(factory.ExTrackerSetFaceSwitchSetting(v))
                );

            //NOTE: この時点で、とりあえずデフォルト設定がUnityに送られる
            SaveFaceSwitchSetting();
        }