Beispiel #1
0
    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);
    }