public static void ExpressionsInspector(FaceTarget faceTarget) { EditorGUILayout.BeginHorizontal(); showExpressions = EditorGUILayout.Foldout(showExpressions, "Expression", true); EditorGUI.indentLevel++; string[] poseNames = faceTarget.poseMixer.GetPoseNames(); int poseIx = EditorGUILayout.Popup(faceTarget.pose, poseNames); if (poseIx != faceTarget.pose) { faceTarget.pose = poseIx; faceTarget.poseMixer.SetPoseValue(poseIx); } EditorGUI.indentLevel--; EditorGUILayout.EndHorizontal(); if (showExpressions) { EditorGUI.indentLevel++; Pose_Editor.PoseMixerInspector(faceTarget.poseMixer, faceTarget.headTarget.humanoid); EditorGUI.indentLevel--; } if (!Application.isPlaying) { faceTarget.poseMixer.ShowPose(faceTarget.headTarget.humanoid); faceTarget.UpdateMovements(); SceneView.RepaintAll(); } }
public static void ConfigurationInspector(FaceTarget faceTarget) { HumanoidControl humanoid = faceTarget.headTarget.humanoid; SkinnedMeshRenderer[] avatarMeshes = HeadTarget.FindAvatarMeshes(humanoid); string[] avatarMeshNames = HeadTarget.DistillAvatarMeshNames(avatarMeshes); int meshWithBlendshapes = HeadTarget.FindBlendshapemesh(avatarMeshes, faceTarget.headTarget.smRenderer);//HeadTarget.FindMeshWithBlendshapes(avatarMeshes); meshWithBlendshapes = EditorGUILayout.Popup("Head Mesh", meshWithBlendshapes, avatarMeshNames); string[] blendshapes; if (meshWithBlendshapes < avatarMeshes.Length) { faceTarget.headTarget.smRenderer = avatarMeshes[meshWithBlendshapes]; blendshapes = HeadTarget.GetBlendshapes(avatarMeshes[meshWithBlendshapes]); } else { blendshapes = new string[0]; } EyeBrowsInspector(faceTarget); EyesInspector(faceTarget, blendshapes); CheeksInspector(faceTarget); NoseInspector(faceTarget); MouthInspector(faceTarget.mouth); faceTarget.jaw.bone.transform = (Transform)EditorGUILayout.ObjectField("Jaw", faceTarget.jaw.bone.transform, typeof(Transform), true); }
public static void Update(FaceTarget faceTarget) { if (faceTarget == null) { return; } if (Application.isPlaying) { faceTarget.focusPoint = faceTarget.faceMovements.DetemineFocusPoint(faceTarget.localGazeDirection, out faceTarget.focusObject); } faceTarget.faceMovements.UpdateCheeks(faceTarget); faceTarget.faceMovements.UpdateNose(faceTarget); faceTarget.faceMovements.UpdateJaw(faceTarget); faceTarget.faceMovements.UpdateMouth(faceTarget); if (faceTarget.faceMovements.leftEyeMovements != null) { faceTarget.faceMovements.leftEyeMovements.Update(); } if (faceTarget.faceMovements.rightEyeMovements != null) { faceTarget.faceMovements.rightEyeMovements.Update(); } faceTarget.faceMovements.UpdateEyeBrow(faceTarget, faceTarget.leftBrow, faceTarget.leftEye); faceTarget.faceMovements.UpdateEyeBrow(faceTarget, faceTarget.rightBrow, faceTarget.rightEye); }
private void UpdateFacePoint(FaceTarget faceTarget, HumanoidTarget.TargetedBone faceBone) { if (faceBone.bone.transform == null) { return; } HumanoidTarget.TargetedBone parentBone; Quaternion parentRotation; if (faceBone.target.transform.parent == faceTarget.jaw.target.transform && faceTarget.jaw.bone.transform != null) { parentBone = faceTarget.jaw; parentRotation = faceTarget.jaw.bone.targetRotation; } else { parentBone = faceTarget.headTarget.head; parentRotation = faceTarget.headTarget.head.bone.targetRotation; } Vector3 localPosition = parentBone.target.transform.InverseTransformPoint(faceBone.target.transform.position); faceBone.bone.transform.position = parentBone.bone.transform.position + parentBone.bone.targetRotation * localPosition; Quaternion localRotation = parentBone.bone.targetRotation * faceBone.target.transform.localRotation; faceBone.bone.transform.rotation = localRotation * faceBone.target.toBoneRotation; //Quaternion jawRotationOnParent = parentRotation * faceBone.target.transform.localRotation; //faceBone.bone.transform.rotation = jawRotationOnParent * faceBone.target.toBoneRotation; }
private void UpdateMouth(FaceTarget faceTarget) { Mouth mouth = faceTarget.mouth; UpdateFacePoint(faceTarget, mouth.upperLip); UpdateFacePoint(faceTarget, mouth.lipLeft); UpdateFacePoint(faceTarget, mouth.lipRight); UpdateFacePoint(faceTarget, mouth.lowerLip); //if (mouth.upperLipLeft.target.confidence.position < 0.1F) // LerpMouthPoint(mouth, mouth.upperLipLeft, mouth.upperLip, mouth.lipLeft, 0.3F); //else UpdateFacePoint(faceTarget, mouth.upperLipLeft); //if (mouth.upperLipRight.target.confidence.position < 0.1F) // LerpMouthPoint(mouth, mouth.upperLipRight, mouth.upperLip, mouth.lipRight, 0.3F); //else UpdateFacePoint(faceTarget, mouth.upperLipRight); //if (mouth.lowerLipLeft.target.confidence.position < 0.1F) // LerpMouthPoint(mouth, mouth.lowerLipLeft, mouth.lowerLip, mouth.lipLeft, 0.3F); //else UpdateFacePoint(faceTarget, mouth.lowerLipLeft); //if (mouth.lowerLipRight.target.confidence.position < 0.1F) // LerpMouthPoint(mouth, mouth.lowerLipRight, mouth.lowerLip, mouth.lipRight, 0.3F); //else UpdateFacePoint(faceTarget, mouth.lowerLipRight); }
void Awake() { core = Core.instance; core.SetPlayer(transform); playerInput = PlayerInput.instance; player = ReInput.players.GetPlayer(playerID); characterController = GetComponent <CharacterController>(); rb = GetComponent <Rigidbody>(); turn = new Turn(this); faceTarget = new FaceTarget(this, inputLibrary.Left_Shoulder); move = new Move(this); strafing = new Strafing(this, inputLibrary.Left_Trigger); customGravity = new CustomGravity(this); groundedCheck = new GroundedCheck(this); edgeCheck = new EdgeCheck(this); jump = new Jump(this, inputLibrary.A); dash = new Dash(this, inputLibrary.Right_Shoulder); attackFast = new Attack(this, inputLibrary.X, playerProfile.attack); attackHeavy = new Attack(this, inputLibrary.Y, playerProfile.attackHeavy); attackFeint = new Attack(this, inputLibrary.B, playerProfile.attackFeint); // AnimationControl should be instantiated last to enable // connections to former components //animationControl = new AnimationControl(this, move); }
public HeadTarget() { neck = new TargetedNeckBone(this); head = new TargetedHeadBone(this); #if hFACE face = new FaceTarget(this); #endif }
public override void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { firedThisRun = false; if (faceTarget == null) { faceTarget = animator.GetComponent <FaceTarget>(); } }
public EyeTarget(FaceTarget face, bool isLeft) { this.face = face; this.headTarget = face.headTarget; this.isLeft = isLeft; boneId = isLeft ? Bone.LeftEye : Bone.RightEye; upperLid.boneId = isLeft ? Bone.LeftUpperLid : Bone.RightUpperLid; lowerLid.boneId = isLeft ? Bone.LeftLowerLid : Bone.RightLowerLid; }
private void UpdateNose(FaceTarget faceTarget) { UpdateFacePoint(faceTarget, faceTarget.nose.top); UpdateFacePoint(faceTarget, faceTarget.nose.tip); UpdateFacePoint(faceTarget, faceTarget.nose.bottomLeft); UpdateFacePoint(faceTarget, faceTarget.nose.bottom); UpdateFacePoint(faceTarget, faceTarget.nose.bottomRight); }
protected virtual void UpdateEyeBrows(FaceTarget face) { face.leftBrow.outer.target.transform.localPosition = HumanoidTarget.ToVector3(face.leftBrow.outer.target.position); // == kinectFace.leftBrow.outer.position face.leftBrow.center.target.transform.localPosition = HumanoidTarget.ToVector3(face.leftBrow.center.target.position); // == kinectFace.leftBrow.outer.position face.leftBrow.inner.target.transform.localPosition = HumanoidTarget.ToVector3(face.leftBrow.inner.target.position); // == kinectFace.leftBrow.outer.position face.rightBrow.outer.target.transform.localPosition = HumanoidTarget.ToVector3(face.rightBrow.outer.target.position); // == kinectFace.leftBrow.outer.position face.rightBrow.center.target.transform.localPosition = HumanoidTarget.ToVector3(face.rightBrow.center.target.position); // == kinectFace.leftBrow.outer.position face.rightBrow.inner.target.transform.localPosition = HumanoidTarget.ToVector3(face.rightBrow.inner.target.position); // == kinectFace.leftBrow.outer.position }
private static void CheeksInspector(FaceTarget faceTarget) { showCheeks = EditorGUILayout.Foldout(showCheeks, "Cheeck", true); if (showCheeks) { EditorGUI.indentLevel++; FaceBoneInspector("Left", faceTarget.leftCheek); FaceBoneInspector("Right", faceTarget.rightCheek); EditorGUI.indentLevel--; } }
public static void UpdateScene(FaceTarget faceTarget) { if (Application.isPlaying) { return; } Pose_Editor.UpdateScene(faceTarget.headTarget.humanoid, faceTarget, faceTarget.poseMixer, ref selectedBone); //faceTarget.UpdateMovements(); }
private void UpdateJaw(FaceTarget faceTarget) { if (faceTarget.jaw.bone.transform == null) { return; } Quaternion jawRotationOnParent = faceTarget.headTarget.head.bone.targetRotation * faceTarget.jaw.target.transform.localRotation; faceTarget.jaw.bone.transform.rotation = jawRotationOnParent * faceTarget.jaw.target.toBoneRotation; }
public void Init(HeadTarget _headTArget, bool _isLeft) { headTarget = _headTArget; face = headTarget.face; isLeft = _isLeft; string eyeTargetName = isLeft ? "LeftEye" : "RightEye"; if (headTarget.head.target.transform != null) { target.transform = headTarget.head.target.transform.Find(eyeTargetName); } if (target.transform == null) { target.transform = NewTargetTransform(eyeTargetName); target.transform.parent = headTarget.head.target.transform; } RetrieveBone(headTarget.humanoid, isLeft ? HumanBodyBones.LeftEye : HumanBodyBones.RightEye); if (bone.transform != null) { target.transform.position = bone.transform.position; target.transform.rotation = headTarget.head.bone.targetRotation; // target.transform.rotation; } DoMeasurements(); bone.minAngles = minEyeAngles; bone.maxAngles = maxEyeAngles; InitEyeLids(); SkinnedMeshRenderer[] avatarMeshes = HeadTarget.FindAvatarMeshes(headTarget.humanoid); if (avatarMeshes != null && avatarMeshes.Length > 0) { int meshWithBlendshapes = HeadTarget.FindMeshWithBlendshapes(avatarMeshes); string[] blendshapes = HeadTarget.GetBlendshapes(avatarMeshes[meshWithBlendshapes]); if (isLeft) { HeadTarget.FindBlendshapeWith(blendshapes, "AU45", "Left", ref headTarget.face.leftEye.blink); } else { HeadTarget.FindBlendshapeWith(blendshapes, "AU45", "Right", ref headTarget.face.rightEye.blink); } } }
private static void NoseInspector(FaceTarget faceTarget) { showNose = EditorGUILayout.Foldout(showNose, "Nose", true); if (showNose) { EditorGUI.indentLevel++; FaceBoneInspector("Top", faceTarget.nose.top); FaceBoneInspector("Tip", faceTarget.nose.tip); FaceBoneInspector("Bottom Left", faceTarget.nose.bottomLeft); FaceBoneInspector("Bottom", faceTarget.nose.bottom); FaceBoneInspector("Bottom Right", faceTarget.nose.bottomRight); EditorGUI.indentLevel--; } }
public DBBaseTDMove GetDBData() { DBBaseTDMove dbData = new DBBaseTDMove(); dbData.CurMovePoint = CurMovePoint; dbData.MoveTarget = !MoveTarget_Unit.IsInv() ? MoveTarget_Unit.ID : Const.INT_Inv; dbData.FaceTarget = !FaceTarget.IsInv() ? FaceTarget.ID : Const.INT_Inv; dbData.IsValidMoveTarget = MoveTarget_IsValid; dbData.MoveTargetState = Enum <TState> .Int(MoveTarget_State); dbData.MoveTargetPosPreview = MoveTarget_PosPreview.ToVec3(); dbData.MoveTargetPosReal = MoveTarget_PosReal.ToVec3(); dbData.CurMoveState = Enum <TState> .Int(StateMachine.CurState); return(dbData); }
public void CarTextFacecamera(GameObject car, Transform target) { GameObject carNameObj = getChildGameObject(car, "CarName"); if (!carNameObj) { return; } FaceTarget ft = carNameObj.GetComponent <FaceTarget>(); if (!ft) { return; } ft.target = target; }
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { ft = animator.GetComponent <FaceTarget>(); ft.enabled = false; Entity e = animator.GetComponent <Entity>(); if (e != null) { if ((right && !e.facingRight) || (!right && e.facingRight)) { e.ForceFlip(); } } else { e.transform.localScale = new Vector3( right ? 1 : -1, e.transform.localScale.y, e.transform.localScale.z ); } }
private static void EyeBrowsInspector(FaceTarget faceTarget) { showLeftBrow = EditorGUILayout.Foldout(showLeftBrow, "Left Eye Brow", true); if (showLeftBrow) { EditorGUI.indentLevel++; FaceBoneInspector("Brow Outer", faceTarget.leftBrow.outer); FaceBoneInspector("Brow", faceTarget.leftBrow.center); FaceBoneInspector("Brow Inner", faceTarget.leftBrow.inner); EditorGUI.indentLevel--; } showRightBrow = EditorGUILayout.Foldout(showRightBrow, "Right Eye Brow", true); if (showRightBrow) { EditorGUI.indentLevel++; FaceBoneInspector("Brow Inner", faceTarget.rightBrow.inner); FaceBoneInspector("Brow", faceTarget.rightBrow.center); FaceBoneInspector("Brow Outer", faceTarget.rightBrow.outer); EditorGUI.indentLevel--; } }
private static void EyesInspector(FaceTarget faceTarget, string[] blendshapes) { showLeftEye = EditorGUILayout.Foldout(showLeftEye, "Left Eye", true); if (showLeftEye) { EditorGUI.indentLevel++; faceTarget.leftEye.upperLid.bone.transform = (Transform)EditorGUILayout.ObjectField("Upper Lid", faceTarget.leftEye.upperLid.bone.transform, typeof(Transform), true); faceTarget.leftEye.bone.transform = (Transform)EditorGUILayout.ObjectField("Eye", faceTarget.leftEye.bone.transform, typeof(Transform), true); faceTarget.leftEye.lowerLid.bone.transform = (Transform)EditorGUILayout.ObjectField("Lower Lid", faceTarget.leftEye.lowerLid.bone.transform, typeof(Transform), true); leftEyeBlinkProp.intValue = EditorGUILayout.Popup("Eye Closed Blendshape", leftEyeBlinkProp.intValue, blendshapes); EditorGUI.indentLevel--; } showRightEye = EditorGUILayout.Foldout(showRightEye, "Right Eye", true); if (showRightEye) { EditorGUI.indentLevel++; faceTarget.rightEye.upperLid.bone.transform = (Transform)EditorGUILayout.ObjectField("Upper Lid", faceTarget.rightEye.upperLid.bone.transform, typeof(Transform), true); faceTarget.rightEye.bone.transform = (Transform)EditorGUILayout.ObjectField("Eye", faceTarget.rightEye.bone.transform, typeof(Transform), true); faceTarget.rightEye.lowerLid.bone.transform = (Transform)EditorGUILayout.ObjectField("Lower Lid", faceTarget.rightEye.lowerLid.bone.transform, typeof(Transform), true); rightEyeBlinkProp.intValue = EditorGUILayout.Popup("Eye Closed Blendshape", rightEyeBlinkProp.intValue, blendshapes); EditorGUI.indentLevel--; } }
// Use this for initialization void Start() { eventManager = FindObjectOfType <EventManager>(); navAgent = GetComponent <NavMeshAgent>(); player = FindObjectOfType <Player>(); body = GetComponent <Rigidbody>(); triggerTag = "Player"; m_waypoints.TrimExcess(); Debug.Log("Start target tag: " + triggerTag); animator = GetComponent <Animator>(); // Detects if eye location is set if (!m_eyeLocation) { Debug.Log("Eye Location is not set"); } // Detects if waypoints are set if (m_waypoints.Count < 1) { Debug.Log("Waypoints are not set"); } //---------------------------------------------------- // The Attack Sequence // Set triggers to turn off List <string> offTriggers = new List <string>(); offTriggers.Add("Search"); offTriggers.Add("Chase"); // Set up the attack behaviour PlayAnimation attackAnimation = new PlayAnimation(); attackAnimation.SetParameters(animator, "DeathSequence", offTriggers); // Set up condition for the attack sequence Triggered attackCondition = new Triggered(); // Set up attack sequence Sequence attackSequence = new Sequence(); attackSequence.addBehaviour(attackCondition); attackSequence.addBehaviour(attackAnimation); // --------------------------------------------------- // The Drill Sequence // Set up the drill condition DrillBehaviour drillBehaviour = new DrillBehaviour(); drillBehaviour.SetParameters(false); // Set up drill animation PlayAnimation drillAnimation = new PlayAnimation(); drillAnimation.SetParameters(animator, "DrillSequence", null, onDoorDrilling); // Set up drill sequence Sequence drillSequence = new Sequence(); drillSequence.addBehaviour(drillBehaviour); //drillSequence.addBehaviour(seekPanel); drillSequence.addBehaviour(drillAnimation); // --------------------------------------------------- // The Rage Sequence // Set up the rage condition DrillBehaviour rageBehaviour = new DrillBehaviour(); rageBehaviour.SetParameters(true); // Set up rage animation PlayAnimation rageAnimation = new PlayAnimation(); rageAnimation.SetParameters(animator, "RageSequence"); // Set up rage sequence Sequence rageSequence = new Sequence(); rageSequence.addBehaviour(rageBehaviour); rageSequence.addBehaviour(rageAnimation); //---------------------------------------------------- // The Proximity Sequence // Set up within range condition for search sequence WithinRange withinSearch = new WithinRange(); withinSearch.SetParameters(player.gameObject, m_searchRange); // Set up line of sight condition for search sequence LineOfSight inSight = new LineOfSight(); inSight.SetParameters(player.gameObject, m_sightRange, m_eyeLocation); // Set up the close chase behaviour SetTargetBehaviour closeChase = new SetTargetBehaviour(); closeChase.SetParameters(player.gameObject, m_searchSpeed, "CloseChase", onProximityDetection); // Set up arm extended animation PlayAnimation armExtended = new PlayAnimation(); armExtended.SetParameters(animator, "ArmExtended"); // Set up chase sequence Sequence closeChaseSequence = new Sequence(); closeChaseSequence.addBehaviour(withinSearch); closeChaseSequence.addBehaviour(inSight); closeChaseSequence.addBehaviour(closeChase); closeChaseSequence.addBehaviour(armExtended); //---------------------------------------------------- // The Search Sequence // Turn towards the player FaceTarget facePlayer = new FaceTarget(); facePlayer.SetParameters(player.gameObject, m_rotationSpeed); // Set up arm extended animation PlayAnimation searchAnimation = new PlayAnimation(); searchAnimation.SetParameters(animator, "Search", null, searching); // Set up search sequence Sequence searchSequence = new Sequence(); searchSequence.addBehaviour(withinSearch); searchSequence.addBehaviour(facePlayer); searchSequence.addBehaviour(searchAnimation); //---------------------------------------------------- // The Chase Sequence // Set up the chase behaviour SetTargetBehaviour chasePlayer = new SetTargetBehaviour(); chasePlayer.SetParameters(player.gameObject, m_chaseSpeed, "Chase", chasing); // Set up within range condition for chase sequence WithinRange withinChase = new WithinRange(); withinChase.SetParameters(player.gameObject, m_sightRange); // Set up chase sequence Sequence chaseSequence = new Sequence(); chaseSequence.addBehaviour(withinChase); chaseSequence.addBehaviour(inSight); chaseSequence.addBehaviour(chasePlayer); //---------------------------------------------------- // The Investigate Sequence // Set up alert condition AlertCondition alertCondition = new AlertCondition(); // Set up investigate sequence Sequence investigateSequence = new Sequence(); investigateSequence.addBehaviour(alertCondition); investigateSequence.addBehaviour(m_investigateArea); //---------------------------------------------------- // The Patrol Sequence // Set up the patrol targets Patrol patrolDestination = new Patrol(); patrolDestination.SetParameters(m_waypoints); // Set up the patrol behaviour SetTargetBehaviour patrolBehaviour = new SetTargetBehaviour(); patrolBehaviour.SetParameters(patrolDestination, m_patrolSpeed, "Patrol", patrolling); // Look for nearest waypoint then continue with the patrol from there //---------------------------------------------------- // The Main Selector // Set up main selector Selector mainSelector = new Selector(); mainSelector.addBehaviour(attackSequence); mainSelector.addBehaviour(drillSequence); mainSelector.addBehaviour(rageSequence); mainSelector.addBehaviour(closeChaseSequence); mainSelector.addBehaviour(searchSequence); mainSelector.addBehaviour(chaseSequence); mainSelector.addBehaviour(investigateSequence); mainSelector.addBehaviour(patrolBehaviour); // Add all sequences to the behaviour list m_behaviours.Add(mainSelector); }
private void UpdateEyeBrow(FaceTarget faceTarget, EyeBrow brow, EyeTarget eye) { UpdateFacePoint(faceTarget, brow.outer); UpdateFacePoint(faceTarget, brow.center); UpdateFacePoint(faceTarget, brow.inner); }
override public void OnStateEnter(Animator animator, AnimatorStateInfo stateInfo, int layerIndex) { base.OnStateEnter(animator, stateInfo, layerIndex); ft = animator.GetComponent <FaceTarget>(); ft.enabled = setEnabled; }
private void UpdateCheeks(FaceTarget faceTarget) { UpdateFacePoint(faceTarget, faceTarget.leftCheek); UpdateFacePoint(faceTarget, faceTarget.rightCheek); }
private void Awake() { _rigidBody = GetComponent <Rigidbody2D>(); _chasePlayer = GetComponent <ChasePlayer>(); _faceTarget = GetComponent <FaceTarget>(); }
// Use this for initialization void Start() { gameObject.tag = "Scarab"; scarabAudio = GetComponent <AudioSource> (); eventManager = FindObjectOfType <EventManager>(); navAgent = GetComponent <NavMeshAgent>(); player = FindObjectOfType <Player>(); body = GetComponent <Rigidbody>(); triggerTag = "Player"; m_sphereCollider = GetComponent <SphereCollider>(); if (!animator) { animator = GetComponentInChildren <Animator>(); } //m_animator = GetComponent<Animator>(); //// Setting layers for Dr Leben's parts //foreach (Transform child in transform) // child.gameObject.layer = gameObject.layer; // --------------------------------------------------- // The Death Sequence // Set up the IsScarabAttacked deathCheck = new IsScarabAttacked(); Sequence deathSequence = new Sequence(); deathSequence.addBehaviour(deathCheck); //---------------------------------------------------- // The Attack Sequence //// Set up condition for the attack sequence //Triggered attackCondition = new Triggered(); // Set up within range condition for chase sequence WithinRange withinAttack = new WithinRange(); withinAttack.SetParameters(player.gameObject, m_attackRange); // Set Up Continue attack condition ContinueAttack continueAttackCondition = new ContinueAttack(); // Set up the attack behaviour ScarabAttack attackBehaviour = new ScarabAttack(); attackBehaviour.SetParameters(player, m_damage, m_attackTimer, m_rotationSpeed, onAttack); // Set up line of sight condition for chase sequence LineOfSight inSight = new LineOfSight(); inSight.SetParameters(player.gameObject, m_sightRange, m_eyeLocation); //// Set up component check enabled //ComponentEnabled navAgentCheck = new ComponentEnabled(); //navAgentCheck.SetParameters(navMesh); // Set up attack sequence Sequence attackSequence = new Sequence(); attackSequence.addBehaviour(continueAttackCondition); //attackSequence.addBehaviour(navAgentCheck); //attackSequence.addBehaviour(attackCondition); attackSequence.addBehaviour(withinAttack); attackSequence.addBehaviour(inSight); //attackSequence.addBehaviour(facePlayer); attackSequence.addBehaviour(attackBehaviour); //---------------------------------------------------- // The Face Target Sequence // Set up face target behaviour FaceTarget facePlayer = new FaceTarget(); facePlayer.SetParameters(player.gameObject, m_rotationSpeed); // Set up attack sequence Sequence faceTargetSequence = new Sequence(); faceTargetSequence.addBehaviour(continueAttackCondition); faceTargetSequence.addBehaviour(withinAttack); faceTargetSequence.addBehaviour(facePlayer); //---------------------------------------------------- // The Chase Sequence // Set up the chase behaviour SetTargetBehaviour chasePlayer = new SetTargetBehaviour(); chasePlayer.SetParameters(player.gameObject, m_chaseSpeed, "", chasing); // Set up within range condition for chase sequence WithinRange withinChase = new WithinRange(); withinChase.SetParameters(player.gameObject, m_chaseRange); // Set up chase sequence Sequence chaseSequence = new Sequence(); chaseSequence.addBehaviour(continueAttackCondition); //chaseSequence.addBehaviour(navAgentCheck); chaseSequence.addBehaviour(withinChase); chaseSequence.addBehaviour(chasePlayer); //---------------------------------------------------- // The Wander Sequence WanderTarget wanderSetter = new WanderTarget(); SetTargetBehaviour wanderBehaviour = new SetTargetBehaviour(); wanderBehaviour.SetParameters(wanderSetter, m_wanderSpeed, "", wandering); // Set up wander sequence Sequence wanderSequence = new Sequence(); //wanderSequence.addBehaviour(navAgentCheck); wanderSequence.addBehaviour(wanderBehaviour); ////---------------------------------------------------- //// The Attack Selector //// Set up main selector //Selector attackSelector = new Selector(); //attackSelector.addBehaviour(attackSequence); //attackSelector.addBehaviour(chaseSequence); //---------------------------------------------------- // The Sequence Selector // Set up main sequence Selector mainSelector = new Selector(); mainSelector.addBehaviour(deathSequence); mainSelector.addBehaviour(attackSequence); mainSelector.addBehaviour(chaseSequence); mainSelector.addBehaviour(wanderSequence); // Add all sequences to the behaviour list m_behaviours.Add(mainSelector); // correct position so it always sits on navmesh NavMeshHit closestHit; if (NavMesh.SamplePosition(gameObject.transform.position, out closestHit, 500f, NavMesh.AllAreas)) { gameObject.transform.position = closestHit.position; } else { Debug.LogError("Could not find position on NavMesh!"); } }
private void UpdateEyelids(FaceTarget face) { face.leftEye.closed = Mathf.Clamp01(KinectDevice.GetFaceExpression(KinectDevice.FaceExpression.EyeClosedLeft) * 4 - 2.5F); face.rightEye.closed = Mathf.Clamp01(KinectDevice.GetFaceExpression(KinectDevice.FaceExpression.EyeClosedRight) * 4 - 2.5F); }
public static void FocusObjectInspector(FaceTarget faceTarget) { EditorGUILayout.ObjectField("Focus Object", faceTarget.focusObject, typeof(GameObject), true); }
private static void InitExpressions(FaceTarget faceTarget) { }