public Game() { currentGame = this; Log.Init(); server = new EzServer(portTCP, portUDP); server.OnConnect += OnConnect; server.OnDisconnect += OnDisconnect; server.OnStart += OnStart; server.OnMessage += OnMessage; server.OnMessageExternal += OnMessageExternal; if (hostIP == null) { server.StartUp(); } else { server.StartUp(hostIP); } server.OnDebug += OnDebug; server.OnException += OnException; trackerHandler = new TrackerHandler(this); LoadMap("factory_sy"); }
public void StartMoCap() { gameObject.AddComponent <ConfigLoader>(); KinectDevice = gameObject.AddComponent <TrackerHandler>(); KinectDevice.isKinect2 = isKinect2; KinectDevice.drawSkeletons = DrawSkeleton; dp = gameObject.AddComponent <DataProvider>(); if (isRealTime) { dp.StartAfterConfig(); } }
public void StartAfterConfig() { m_tracker = GetComponent <TrackerHandler>(); const int TRACKER_ID = 0; if (m_tracker.isKinect2) { SkeletalTrackingProviderKinect2 m_skeletalTrackingProvider2 = new SkeletalTrackingProviderKinect2(); m_skeletalTrackingProvider2.StartClientThread(TRACKER_ID); m_backgroundDataProvider = m_skeletalTrackingProvider2; } else { SkeletalTrackingProvider m_skeletalTrackingProvider = new SkeletalTrackingProvider(); m_skeletalTrackingProvider.StartClientThread(TRACKER_ID); m_backgroundDataProvider = m_skeletalTrackingProvider; } //tracker ids needed for when there are two trackers started = true; }
/// <summary> /// 全トラッカー情報を更新 /// </summary> /// <returns></returns> void _UpdateTrackers() { TrackerHandler realTrackerHandler = _refs.handler; Debug.Assert(realTrackerHandler != null); // トラッカーの追加 IEnumerable <GameObject> realTrackers = realTrackerHandler.Trackers.Concat(realTrackerHandler.Controllers).Concat(new GameObject[] { realTrackerHandler.HMDObject }); foreach (var tracker in realTrackers) { if (!trackers.Any(t => t.serial == tracker.name)) { trackers.Add(new TrackerState(tracker.name, TrackingPoint.Unassinged)); } } // トラッカーのトランスフォーム情報を更新 foreach (var tracker in trackers) { tracker.Update(this); } }
void Start() { uClient = GetComponent <uOSC.uOscClient>(); window = GameObject.Find("ControlWPFWindow").GetComponent <ControlWPFWindow>(); handTrackerRoot = GameObject.Find("HandTrackerRoot"); trackerHandler = handTrackerRoot.GetComponent <TrackerHandler>(); window.ModelLoadedAction += (GameObject CurrentModel) => { if (CurrentModel != null) { this.CurrentModel = CurrentModel; animator = CurrentModel.GetComponent <Animator>(); vrik = CurrentModel.GetComponent <VRIK>(); blendShapeProxy = CurrentModel.GetComponent <VRMBlendShapeProxy>(); } }; window.CameraChangedAction += (Camera currentCamera) => { this.currentCamera = currentCamera; }; steamVR2Input.KeyDownEvent += (object sender, OVRKeyEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: ConDown"); try { uClient?.Send("/VMC/Ext/Con", 1, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z); } catch (Exception ex) { Debug.LogError(ex); } } }; steamVR2Input.KeyUpEvent += (object sender, OVRKeyEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: ConUp"); try { uClient?.Send("/VMC/Ext/Con", 0, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z); } catch (Exception ex) { Debug.LogError(ex); } } }; steamVR2Input.AxisChangedEvent += (object sender, OVRKeyEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: ConAxis"); try { if (e.IsAxis) { uClient?.Send("/VMC/Ext/Con", 2, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z); } } catch (Exception ex) { Debug.LogError(ex); } } }; KeyboardAction.KeyDownEvent += (object sender, KeyboardEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Key", 1, e.KeyName, e.KeyCode); } catch (Exception ex) { Debug.LogError(ex); } } }; KeyboardAction.KeyUpEvent += (object sender, KeyboardEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyUp"); try { uClient?.Send("/VMC/Ext/Key", 0, e.KeyName, e.KeyCode); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.noteOnDelegateProxy += (MidiJack.MidiChannel channel, int note, float velocity) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/Note", 1, (int)channel, note, velocity); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.noteOffDelegateProxy += (MidiJack.MidiChannel channel, int note) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/Note", 0, (int)channel, note, (float)0f); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.knobUpdateFloatDelegate += (int knobNo, float value) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/CC/Val", knobNo, value); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.knobUpdateBoolDelegate += (int knobNo, bool value) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/CC/Bit", knobNo, (int)(value?1:0)); } catch (Exception ex) { Debug.LogError(ex); } } }; }
void Start() { uClient = GetComponent <uOSC.uOscClient>(); window = GameObject.Find("ControlWPFWindow").GetComponent <ControlWPFWindow>(); handTrackerRoot = GameObject.Find("HandTrackerRoot"); trackerHandler = handTrackerRoot.GetComponent <TrackerHandler>(); window.ModelLoadedAction += (GameObject CurrentModel) => { if (CurrentModel != null) { this.CurrentModel = CurrentModel; animator = CurrentModel.GetComponent <Animator>(); vrik = CurrentModel.GetComponent <VRIK>(); blendShapeProxy = CurrentModel.GetComponent <VRMBlendShapeProxy>(); } }; window.CameraChangedAction += (Camera currentCamera) => { this.currentCamera = currentCamera; }; window.VRMmetaLodedAction += (VRMData vrmdata) => { this.vrmdata = vrmdata; this.remoteName = null; this.remoteJson = null; SendPerLowRate(); //即時送信 }; window.VRMRemoteLoadedAction += (string path) => { this.vrmdata = null; if (path.StartsWith("dmmvrconnect://")) { var parsed = path.Substring("dmmvrconnect://".Length).Split('/'); remoteName = "dmmvrconnect"; remoteJson = Json.Serializer.Serialize(new DMMVRConnectRemote { user_id = parsed[0], avatar_id = parsed[1] }); } else if (path.StartsWith("vroidhub://")) { var characterModelId = path.Substring("vroidhub://".Length); remoteName = "vroidhub"; remoteJson = Json.Serializer.Serialize(new VRoidHubRemote { characterModelId = characterModelId }); } SendPerLowRate(); //即時送信 }; window.LightChangedAction += () => { SendPerLowRate(); //即時送信 }; window.LoadedConfigPathChangedAction += () => { SendPerLowRate(); //即時送信 }; steamVR2Input.KeyDownEvent += (object sender, OVRKeyEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: ConDown"); try { uClient?.Send("/VMC/Ext/Con", 1, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z); } catch (Exception ex) { Debug.LogError(ex); } } }; steamVR2Input.KeyUpEvent += (object sender, OVRKeyEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: ConUp"); try { uClient?.Send("/VMC/Ext/Con", 0, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z); } catch (Exception ex) { Debug.LogError(ex); } } }; steamVR2Input.AxisChangedEvent += (object sender, OVRKeyEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: ConAxis"); try { if (e.IsAxis) { uClient?.Send("/VMC/Ext/Con", 2, e.Name, e.IsLeft ? 1 : 0, e.IsTouch ? 1 : 0, e.IsAxis ? 1 : 0, e.Axis.x, e.Axis.y, e.Axis.z); } } catch (Exception ex) { Debug.LogError(ex); } } }; KeyboardAction.KeyDownEvent += (object sender, KeyboardEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Key", 1, e.KeyName, e.KeyCode); } catch (Exception ex) { Debug.LogError(ex); } } }; KeyboardAction.KeyUpEvent += (object sender, KeyboardEventArgs e) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyUp"); try { uClient?.Send("/VMC/Ext/Key", 0, e.KeyName, e.KeyCode); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.noteOnDelegateProxy += (MidiJack.MidiChannel channel, int note, float velocity) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/Note", 1, (int)channel, note, velocity); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.noteOffDelegateProxy += (MidiJack.MidiChannel channel, int note) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/Note", 0, (int)channel, note, (float)0f); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.knobUpdateFloatDelegate += (int knobNo, float value) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/CC/Val", knobNo, value); } catch (Exception ex) { Debug.LogError(ex); } } }; midiCCWrapper.knobUpdateBoolDelegate += (int knobNo, bool value) => { if (this.isActiveAndEnabled) { //Debug.Log("Ext: KeyDown"); try { uClient?.Send("/VMC/Ext/Midi/CC/Bit", knobNo, (int)(value?1:0)); } catch (Exception ex) { Debug.LogError(ex); } } }; this.gameObject.SetActive(false); uClient.enabled = true; }