前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Cinemachine使用

Cinemachine使用

作者头像
全栈程序员站长
发布2022-09-01 11:20:09
7220
发布2022-09-01 11:20:09
举报

大家好,又见面了,我是你们的朋友全栈君。

根据BeaverJoe教程总结笔记,素材来源:https://www.bilibili.com/video/BV1oa4y1s7gg

在这里插入图片描述
在这里插入图片描述

创建相机后主相机会自动添加Brain组件,主相机决定使用哪个虚拟相机,虚拟相机的数值会同步调整到主相机上,主相机无法手动控制: 此时相机已经会自动跟随物体;

在这里插入图片描述
在这里插入图片描述

选择相机跟随哪个物体,一般2Dfollow,3Dlookat:

在这里插入图片描述
在这里插入图片描述

Body部分

save during play:退出运行后会保存运行时的数值; x、y、z Damping控制缓慢移动的速度,值越大越慢;

在这里插入图片描述
在这里插入图片描述

决定相机聚焦的中心位置,效果相当于控制人物显示在哪里

在这里插入图片描述
在这里插入图片描述

死区——人物在这个范围内移动时,相机不会移动,出了这个区域就会移动,即无色区域和蓝色区域;到达红色区域时相机会瞬间跟随;

在这里插入图片描述
在这里插入图片描述

蓝色区域调整

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

Lookahead Time数值调大时,相机中心点(黄色点)会向移动方向移动一段距离,可以看到更多的视野,如果跳跃时画面抖动太厉害可以勾选IgnoreY;

在这里插入图片描述
在这里插入图片描述

添加边界,保证摄像机不会拍摄到不想要的地方,步骤1:点击add extension

在这里插入图片描述
在这里插入图片描述

步骤二:创建空物体,添加box collider组件,勾选use by composite,再添加composite collider(因为这里类型要求需要composite collider),勾选istrigger,在Geometry type上勾选polygons,在自动添加的刚体上勾选static,防止空物体掉下来,最后拖进去;

在这里插入图片描述
在这里插入图片描述

更简单的方法: 直接给空物体添加polygon collider,勾选is trgger;

两个相机平滑过渡

首先两个相机没有相交; 方法一:将一个相机disable掉,就能直接实现;代码中设置进入(激活)和退出(失活)的触发事件; 方法二:调整虚拟相机的优先度,值越大越先使用;

在这里插入图片描述
在这里插入图片描述

相机过渡时间和速度曲线在主相机这里设置:

在这里插入图片描述
在这里插入图片描述

3D场景

1.创建virtual camera:此时调整视野需要选虚拟相机,不是主相机;

在这里插入图片描述
在这里插入图片描述

2.赋值look at:

在这里插入图片描述
在这里插入图片描述

3.噪声(可选):第一行为振动模式,第三、四行为振幅和频率

在这里插入图片描述
在这里插入图片描述

4.创建其他相机:每一个都先点solo再调整视角,不然可能会把之前的相机一起调整到当前视角; **

加粗样式
加粗样式

**

在这里插入图片描述
在这里插入图片描述

5.创建好后创建一个空物体,命名为TimeLine,点击timeline窗口create; 这里不需要动画轨道,删掉该轨道和空物体里的animator组件;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

activation track是在某个时间段激活某个东西,其他也是相应功能;

在这里插入图片描述
在这里插入图片描述

方法一:使用Activation Track(通过激活和失活实现):右上角可以设置显示为时间

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建group方便管理:相当于空物体的作用

在这里插入图片描述
在这里插入图片描述

director组件中可以勾选循环:

在这里插入图片描述
在这里插入图片描述

方法二: cinemachine track:

在这里插入图片描述
在这里插入图片描述

将主相机拖入:再分别把虚拟相机拖入,也可以右键add shot,组件赋值,一个效果;

在这里插入图片描述
在这里插入图片描述

此时是瞬间切换,把前面相机拖到后面的相机可以实现blend效果;

在这里插入图片描述
在这里插入图片描述

同时可以设置manual手动调整blend的曲线;

在这里插入图片描述
在这里插入图片描述

如何自定义Track

timeine需要三个脚本:track(轨道)、clip(片段资源)、behavior(执行逻辑) 以创建text为例: track:

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Timeline;
using UnityEngine.UI;

[TrackBindingType(typeof(Text))] //绑定组件类型,可以添加text的track
[TrackClipType(typeof(SubClip))]//实现添加clip
public class SubTrack : TrackAsset
{ 
   

}

clip:

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;

public class SubClip : PlayableAsset
{ 
   
    public string originText;
    //实现抽象类
    //创建资源文件,就是graph,是playable类型,将它反馈出来才能在behavior中使用
    public override Playable CreatePlayable(PlayableGraph graph, GameObject owner)
    { 
   
        var playable = ScriptPlayable<Subbehavior>.Create(graph);
        Subbehavior sb=playable.GetBehaviour();
        sb.subtitleText = originText;
        return playable;


    }
}

behavior:

代码语言:javascript
复制
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.UI;

public class Subbehavior : PlayableBehaviour
{ 
   
    //之后的clip片段资源将会赋值到这个变量中并且在这个behavior脚本中按照逻辑执行
    public string subtitleText;

    //相当于update方法
    public override void ProcessFrame(Playable playable, FrameData info, object playerData)
    { 
   
        //info:当前帧传入的数据信息
        //playerData是最后要输出的数据
        Text _text = playerData as Text;
        _text.text = subtitleText;
        _text.color = new Color(0, 0, 0, info.weight);

    }
}

设置淡入淡出:

在这里插入图片描述
在这里插入图片描述

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/140173.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年5月2,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Body部分
  • 两个相机平滑过渡
  • 3D场景
  • 如何自定义Track
相关产品与服务
图像处理
图像处理基于腾讯云深度学习等人工智能技术,提供综合性的图像优化处理服务,包括图像质量评估、图像清晰度增强、图像智能裁剪等。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档