void Start() { var server = GetComponent <uOSC.uOscServer>(); server.onDataReceived.AddListener(OnDataReceived); window = GameObject.Find("ControlWPFWindow").GetComponent <ControlWPFWindow>(); faceController = GameObject.Find("AnimationController").GetComponent <FaceController>(); window.ModelLoadedAction += (GameObject CurrentModel) => { if (CurrentModel != null) { this.CurrentModel = CurrentModel; vrmLookAtHead = CurrentModel.GetComponent <VRMLookAtHead>(); } }; window.CameraChangedAction += (Camera currentCamera) => { this.currentCamera = currentCamera; }; beforeFaceApply = () => { vrmLookAtHead.Target = lookTargetOSC.transform; vrmLookAtHead.LookWorldPosition(); vrmLookAtHead.Target = null; }; }
public void Initialize( IVRMLoadable vrmLoadable, Camera mainCam, IKTargetTransforms ikTargets, FaceControlConfiguration faceControlConfig) { _camera = mainCam.transform; _lookAtTarget = ikTargets.LookAt; _faceControlConfig = faceControlConfig; vrmLoadable.VrmLoaded += info => { _head = info.animator.GetBoneTransform(HumanBodyBones.Head); _lookAtIk = info.vrmRoot.GetComponent <LookAtIK>(); _vrmLookAtHead = info.vrmRoot.GetComponent <VRMLookAtHead>(); _hasModel = true; }; vrmLoadable.VrmDisposing += () => { _hasModel = false; _lookAtIk = null; _vrmLookAtHead = null; _head = null; }; }
void Start() { var server = GetComponent <uOSC.uOscServer>(); server.onDataReceived.AddListener(OnDataReceived); window = GameObject.Find("ControlWPFWindow").GetComponent <ControlWPFWindow>(); faceController = GameObject.Find("AnimationController").GetComponent <FaceController>(); VMCEvents.OnModelLoaded += (GameObject CurrentModel) => { if (CurrentModel != null) { this.CurrentModel = CurrentModel; vrmLookAtHead = CurrentModel.GetComponent <VRMLookAtHead>(); animator = CurrentModel.GetComponent <Animator>(); headTransform = null; if (animator != null) { headTransform = animator.GetBoneTransform(HumanBodyBones.Head); } } }; VMCEvents.OnCameraChanged += (Camera currentCamera) => { this.currentCamera = currentCamera; }; beforeFaceApply = () => { vrmLookAtHead.Target = lookTargetOSC.transform; vrmLookAtHead.LookWorldPosition(); vrmLookAtHead.Target = null; }; }
// Use this for initialization void Start() { if (!targetObject) { targetObject = new GameObject("LookAtTarget"); isNewTargetObject = true; } lookAtHead = GetComponent <VRMLookAtHead>(); blendShapeProxy = GetComponent <VRMBlendShapeProxy>(); if (lookAtHead) { lookAtHead.Target = targetObject.transform; lookAtHead.UpdateType = UpdateType.LateUpdate; headTransform = lookAtHead.Head; } if (!headTransform) { headTransform = this.transform; } // マウスカーソルとの奥行きに反映させるためカメラを取得 if (!currentCamera) { currentCamera = Camera.main; } animator = GetComponent <Animator>(); currentState = animator.GetCurrentAnimatorStateInfo(0); previousState = currentState; // ランダム判定用関数をスタートする StartCoroutine("RandomChange"); }
void Start() { vrmLookAtHead = GetComponent <VRMLookAtHead>(); vrIK = gameObject.AddComponent <VRIK>(); _SetupVRIK(); _SetupLockAtHead(); }
public void SetVideoChatMode(VRMLookAtHead lookAtHead, LookAtIK lookAtIk, VRMFirstPerson firstPerson) { lookAtHead.Target = Camera.main.transform; lookAtIk.solver.target = lookAtHead.Target; var headCenter = firstPerson.FirstPersonBone.localToWorldMatrix.MultiplyPoint(firstPerson.FirstPersonOffset); headCenter.z = .9f; Camera.main.transform.position = headCenter; _receivedMessageHandler.ReceiveCommand(new ReceivedCommand(MessageCommandNames.EnableDesktopShareMode, false.ToString())); }
public void OnModelChanged(Animator target) { if (target != null) { blendShapeProxy = target.GetComponent <VMCBlendShapeProxy> (); if (blendShapeProxy != null) { _lookAtHead = blendShapeProxy.GetComponent <VRMLookAtHead> (); Debug.Assert(_lookAtHead != null); blinker.blendShapeProxy = blendShapeProxy; } } }
private void Start() { m_head = GetComponent <VRMLookAtHead>(); if (faceController == null) { faceController = GameObject.Find("AnimationController").GetComponent <FaceController>(); } if (m_head == null) { enabled = false; return; } m_head.YawPitchChanged += ApplyRotations; }
// Use this for initialization void Start() { animator = GetComponent <Animator>(); if (animator != null) { rightHandTransform = animator.GetBoneTransform(HumanBodyBones.RightHand); leftHandTransform = animator.GetBoneTransform(HumanBodyBones.LeftHand); // Humanoidならばここで探すのでエディタ上でHeadTransformは指定不要 if (HeadTransform == null) { HeadTransform = animator.GetBoneTransform(HumanBodyBones.Head); } } lookAtHead = GetComponent <VRMLookAtHead>(); blendShapeProxy = GetComponent <VRMBlendShapeProxy>(); }
internal override void OnAwakeInEditor() { if (LookAt == null) { LookAt = GetComponent <VRMLookAtHead>(); var animator = GetComponent <Animator>(); if (animator == null) { return; } var head = animator.GetBoneTransform(HumanBodyBones.Head); LookAt.Head = head; } if (Applyer == null) { Applyer = GetComponent <VRMLookAtBoneApplyer>(); Applyer.SendMessage("Start"); // FIXME: Start() を直接呼ばないとダメかも } if (InterpolatedTarget == null) { InterpolatedTarget = SceneView.lastActiveSceneView.camera.gameObject.transform.position; } if (faceMesh == null) { foreach (var mesh in GetComponentsInChildren <SkinnedMeshRenderer>()) { if (mesh.gameObject.name == "Face") { faceMesh = mesh; } } } if (angryShapeWeights == null) { angryShapeWeights = new BlendShapeWeight[] { new BlendShapeWeight { Index = 0, Weight = 100 } }; } // EditorApplication.playModeStateChanged -= OnPlayModeChanged; // EditorApplication.playModeStateChanged += OnPlayModeChanged; }
void Start() { var server = GetComponent <uOSC.uOscServer>(); server.onDataReceived.AddListener(OnDataReceived); window = GameObject.Find("ControlWPFWindow").GetComponent <ControlWPFWindow>(); window.ModelLoadedAction += (GameObject CurrentModel) => { if (CurrentModel != null) { this.CurrentModel = CurrentModel; blendShapeProxy = CurrentModel.GetComponent <VRMBlendShapeProxy>(); vrmLookAtHead = CurrentModel.GetComponent <VRMLookAtHead>(); } }; window.CameraChangedAction += (Camera currentCamera) => { this.currentCamera = currentCamera; }; }
// Use this for initialization void Start() { if (!targetObject) { targetObject = new GameObject("LookAtTarget"); hasNewTargetObject = true; } lookAtHead = GetComponent <VRMLookAtHead>(); blendShapeProxy = GetComponent <VRMBlendShapeProxy>(); if (lookAtHead) { lookAtHead.Target = targetObject.transform; lookAtHead.UpdateType = UpdateType.LateUpdate; headTransform = lookAtHead.Head; } if (!headTransform) { headTransform = this.transform; } // マウスカーソルとの奥行きに反映させるためカメラを取得 if (!currentCamera) { currentCamera = Camera.main; } // UIコントローラーを取得 if (!uiController) { uiController = FindObjectOfType <VrmUiController>(); } SetAnimator(GetComponent <Animator>()); currentState = animator.GetCurrentAnimatorStateInfo(0); previousState = currentState; }
private bool isNewTargetObject = false; // 新規に目標オブジェクトを作成したらtrue // Use this for initialization void Start() { if (!targetObject) { targetObject = new GameObject("LookAtTarget"); isNewTargetObject = true; } lookAtHead = GetComponent <VRMLookAtHead>(); blendShapeProxy = GetComponent <VRMBlendShapeProxy>(); if (lookAtHead) { lookAtHead.Target = targetObject.transform; lookAtHead.UpdateType = UpdateType.LateUpdate; headTransform = lookAtHead.Head; } if (!headTransform) { headTransform = this.transform; } }