private void populateNavVirtual(DiscourseClip clip) { // Make a copy of virtual camera and set aim and follow target string name = clip.Name; float start = clip.start + 0.06f; float duration = clip.duration - 0.06f; float fov = clip.fov; float fab_start = clip.fabulaStart; GameObject starting_loc = GameObject.Find(clip.startingPos_string); float start_offset = clip.start_dist_offset; GameObject ending_loc = GameObject.Find(clip.endingPos_string); float end_offset = clip.end_dist_offset; GameObject virtualCamOriginal = GameObject.Find(clip.virtualCamName); GameObject virtualCam = Instantiate(virtualCamOriginal); CinemachineVirtualCamera cva = virtualCam.GetComponent <CinemachineVirtualCamera>(); if (clip.aimTarget != null) { agent = GameObject.Find(clip.aimTarget); cva.m_LookAt = agent.transform; cva.m_Lens.FieldOfView = clip.fov; } bool has_fab_switch = false; if (clip.fabulaStart >= 0f) { has_fab_switch = true; GameObject ttravel = Instantiate(Resources.Load("time_travel", typeof(GameObject))) as GameObject; ttravel.transform.parent = virtualCam.transform; ttravel.GetComponent <timeStorage>().fab_time = clip.fabulaStart; TimelineClip tc = ctrack.CreateDefaultClip(); tc.start = clip.start; tc.duration = clip.duration; tc.displayName = "Time Travel"; var time_travel_clip = tc.asset as ControlPlayableAsset; AnimateBind(time_travel_clip, ttravel); } film_track_clip = ftrack.CreateDefaultClip(); if (has_fab_switch) { start = clip.start + (float)0.06; duration = clip.duration; } film_track_clip.start = start; film_track_clip.duration = duration; film_track_clip.displayName = clip.Name; // specialize and bind var cinemachineShot = film_track_clip.asset as CinemachineShot; CamBind(cinemachineShot, cva); }
private void addTimeTravel(DiscourseClip clip) { time_track_clip = ptrack.CreateClip <setFloatClip>(); time_track_clip.start = clip.start; time_track_clip.duration = clip.duration; time_track_clip.displayName = clip.Name; var timeControl = time_track_clip.asset as setFloatClip; TimeBind(timeControl, agent, clip.fabulaStart); }
private void populateCtrlObject(DiscourseClip clip) { agent = GameObject.Find(clip.TimeLineObject); control_track_clip = ctrack.CreateDefaultClip(); control_track_clip.start = clip.start; control_track_clip.duration = clip.duration; control_track_clip.displayName = clip.Name; var controlAnim = control_track_clip.asset as ControlPlayableAsset; AnimateBind(controlAnim, agent); }
private void populateCamObject(DiscourseClip clip) { agent = GameObject.Find(clip.TimeLineObject); new_cam = agent.GetComponent <CinemachineVirtualCamera>(); film_track_clip = ftrack.CreateDefaultClip(); film_track_clip.start = clip.start; film_track_clip.duration = clip.duration; film_track_clip.displayName = clip.Name; var cinemachineShot = film_track_clip.asset as CinemachineShot; CamBind(cinemachineShot, new_cam); }
// Update is called once per frame (DEPRECIATED) private void populateCustom(DiscourseClip clip) { // find aim target and follow Target agent = GameObject.Find(clip.aimTarget); anchor = GameObject.Find(clip.followTarget); if (anchor == null) { // This "anchor" hosts the actual anchor anchor = new GameObject(); anchor.name = clip.Name; GameObject VC_Host = GameObject.Find("VirtualCams"); anchor.transform.position = new Vector3(0f, 0f, 0f); anchor.transform.parent = VC_Host.transform; //anchor = GameObject.Find(clip.followTarget); //anchor = agent; } // create position of target GameObject target_go = new GameObject(); target_go.name = "target_" + clip.Name; target_go.transform.position = agent.transform.position + new Vector3(0f, HEIGHT, 0f); target_go.transform.parent = agent.transform; Vector3 goal_direction = degToVector3(clip.targetOrientation + agent.transform.eulerAngles.y); goal_direction = goal_direction.normalized * clip.targetDistance; // create position of camera GameObject go = new GameObject(); go.name = clip.Name; go.transform.position = agent.transform.position + goal_direction + new Vector3(0f, HEIGHT, 0f); go.transform.parent = anchor.transform; // create vcam CinemachineVirtualCamera cva = go.AddComponent <CinemachineVirtualCamera>(); cva.m_LookAt = target_go.transform; cva.m_Follow = go.transform; cva.m_Lens.FieldOfView = clip.fov; bool has_fab_switch = false; if (clip.fabulaStart >= 0f) { has_fab_switch = true; //Instantiate(Resources.Load("enemy", typeof(GameObject))) as GameObject; GameObject ttravel = Instantiate(Resources.Load("time_travel", typeof(GameObject))) as GameObject; ttravel.transform.parent = go.transform; ttravel.GetComponent <timeStorage>().fab_time = clip.fabulaStart; TimelineClip tc = ctrack.CreateDefaultClip(); tc.start = clip.start; tc.duration = clip.duration; tc.displayName = "Time Travel"; var time_travel_clip = tc.asset as ControlPlayableAsset; AnimateBind(time_travel_clip, ttravel); //time_track_clip = ptrack.CreateClip<setFloatClip>(); //time_track_clip.start = clip.start; //time_track_clip.duration = clip.duration; //time_track_clip.displayName = "Time Travel"; //time_track_clip.displayName = clip.Name; //var timeControl = time_track_clip.asset as setFloatClip; //TimeBind(timeControl, ttravel, clip.fabulaStart); //ttravel ////gopd. ////gopd.playableAsset = ////TimelineAsset ta = Instantiate(Resources.Load("time_TravelTimeline", typeof(Playable))) as TimelineAsset; //TimelineAsset ta = (TimelineAsset)ScriptableObject.CreateInstance("TimelineAsset"); //ActivationTrack atrack = ta.CreateTrack<ActivationTrack>(null, "local_active_track"); //TimelineClip tc = atrack.CreateDefaultClip(); //tc.start = 0f; //tc.duration = clip.duration; //GameObject son = ttravel.GetComponent<timeStorage>().setFabObj; ////tc.asset = son; //tc.underlyingAsset = son; //var activation_clip = tc.asset as ActivationTrack; ////activation_clip.postPlaybackState = ActivationTrack.PostPlaybackState.Inactive; ////activation_clip.parent = son; //ttravel.transform.parent = go.transform; } // default clip attributes film_track_clip = ftrack.CreateDefaultClip(); float start = clip.start; float duration = clip.duration; if (has_fab_switch) { //start = clip.start + (float)0.16; //duration = clip.duration - (float)0.16; start = clip.start + (float)0.06; duration = clip.duration; } else { } film_track_clip.start = start; film_track_clip.duration = duration; film_track_clip.displayName = clip.Name; // specialize and bind var cinemachineShot = film_track_clip.asset as CinemachineShot; CamBind(cinemachineShot, cva); }
private void populateNavCam(DiscourseClip clip) { string name = clip.Name; float start = clip.start + 0.06f; float duration = clip.duration - 0.06f; float fov = clip.fov; float fab_start = clip.fabulaStart; GameObject starting_loc = GameObject.Find(clip.startingPos_string); float start_offset = clip.start_dist_offset; GameObject ending_loc = GameObject.Find(clip.endingPos_string); float end_offset = clip.end_dist_offset; float orient = clip.targetOrientation; agent = GameObject.Find(clip.aimTarget); // create position of target GameObject target_go = new GameObject(); target_go.name = "target_" + clip.Name; target_go.transform.position = agent.transform.position + new Vector3(0f, HEIGHT, 0f); target_go.transform.parent = agent.transform; Vector3 dest_minus_start = (ending_loc.transform.position - starting_loc.transform.position).normalized; Vector3 agent_starting_position = starting_loc.transform.position + dest_minus_start * start_offset; Vector3 agent_middle_position = agent_starting_position + dest_minus_start * (end_offset / 2); GameObject go = new GameObject(); go.name = clip.Name; float orientation = Mathf.Atan2(dest_minus_start.x, -dest_minus_start.z) * Mathf.Rad2Deg - 90f; Vector3 goal_direction = degToVector3(orient + orientation); //Debug.Log(orient + orientation); go.transform.position = agent_middle_position + (goal_direction * clip.targetDistance) + new Vector3(0f, HEIGHT, 0f); go.transform.rotation.SetLookRotation(agent_starting_position); CinemachineVirtualCamera cva = go.AddComponent <CinemachineVirtualCamera>(); CinemachineComposer cc = cva.AddCinemachineComponent <CinemachineComposer>(); cc.m_DeadZoneWidth = 0.5f; cc.m_SoftZoneWidth = 0.8f; cva.m_Lens.FieldOfView = clip.fov; cva.m_LookAt = target_go.transform; CinemachineBasicMultiChannelPerlin cbmcp = cva.AddCinemachineComponent <CinemachineBasicMultiChannelPerlin>(); cbmcp.m_NoiseProfile = Instantiate(Resources.Load("Handheld_tele_mild", typeof(NoiseSettings))) as NoiseSettings; cbmcp.m_AmplitudeGain = 0.5f; cbmcp.m_FrequencyGain = 1f; if (clip.followTarget != null) { nav_track_clip = ntrack.CreateClip <LerpMoveObjectAsset>(); nav_track_clip.start = clip.start + 0.16f; nav_track_clip.duration = clip.duration - 0.16f; LerpMoveObjectAsset lerp_clip = nav_track_clip.asset as LerpMoveObjectAsset; GameObject camera_destination = new GameObject(); camera_destination.name = "camera lerp destination"; Vector3 end_camera = ending_loc.transform.position + (goal_direction * clip.targetDistance) + new Vector3(0f, HEIGHT, 0f); camera_destination.transform.position = end_camera; GameObject camera_origin = new GameObject(); camera_origin.name = "camera lerp origin"; camera_origin.transform.position = go.transform.position; TransformBind(lerp_clip, go, camera_origin.transform, camera_destination.transform); } bool has_fab_switch = false; if (clip.fabulaStart >= 0f) { has_fab_switch = true; GameObject ttravel = Instantiate(Resources.Load("time_travel", typeof(GameObject))) as GameObject; ttravel.transform.parent = go.transform; ttravel.GetComponent <timeStorage>().fab_time = clip.fabulaStart; TimelineClip tc = ctrack.CreateDefaultClip(); tc.start = clip.start; tc.duration = clip.duration; tc.displayName = "Time Travel"; var time_travel_clip = tc.asset as ControlPlayableAsset; AnimateBind(time_travel_clip, ttravel); } // default clip attributes film_track_clip = ftrack.CreateDefaultClip(); if (has_fab_switch) { start = clip.start + (float)0.06; duration = clip.duration; } film_track_clip.start = start; film_track_clip.duration = duration; film_track_clip.displayName = clip.Name; // specialize and bind var cinemachineShot = film_track_clip.asset as CinemachineShot; CamBind(cinemachineShot, cva); }