Unity教程(十一)使用Cinemachine添加并调整相机

Unity开发2D类银河恶魔城游戏学习笔记

Unity教程(零)Unity和VS的使用相关内容
Unity教程(一)开始学习状态机
Unity教程(二)角色移动的实现
Unity教程(三)角色跳跃的实现
Unity教程(四)碰撞检测
Unity教程(五)角色冲刺的实现
Unity教程(六)角色滑墙的实现
Unity教程(七)角色蹬墙跳的实现
Unity教程(八)角色攻击的基本实现
Unity教程(九)角色攻击的改进

Unity教程(十)Tile Palette搭建平台关卡
Unity教程(十一)相机
Unity教程(十二)视差背景

Unity教程(十三)敌人状态机

如果你更习惯用知乎
Unity开发2D类银河恶魔城游戏学习笔记目录


文章目录


前言

本文为Udemy课程The Ultimate Guide to Creating an RPG Game in Unity学习笔记,如有错误,欢迎指正。

本节使用Cinemachine电影机添加并调整相机。

对应b站视频:
【Unity教程】从0编程制作类银河恶魔城游戏P44


一、概述

Cinematic Studio可以实现复杂的相机运动和相机镜头过渡。

详细参照Unity官方手册

我们使用它的一个包Cinemachine,它是用于操作 Unity 摄像机的模块。Cinemachine 解决了跟踪目标、构图、混合和镜头之间剪辑的复杂数学和逻辑

详细参照Unity官方手册

参照Unity虚拟相机教程

二、Cinemachine的基本使用

参数 功能
Save During Play 勾选后可以在运行时保存组件的修改
Priority 根据数值大小决定优先显示哪个相机,越大的优先级越高
Follow 相机跟随目标(2D大多用这个)
Look At 让相机角度始终朝着目标的方向
Mode Override 相机模式选择
Ortho Size Orthographic模式下视野大小的一半高

body中有许多重要的参数

参数 功能
DampingX、Y、Z 镜头缓动效果
ScreenX、Y 镜头偏移
Dead Zone 死区内镜头不会一直跟随
Soft Zone 在软区内镜头会缓慢跟随目标。超出软区相机会瞬移跟随
Lookahead Time 跟随目标点就会朝移动方向偏移
Lookahead Smoothing 平滑值
Lookahead Ignore Y 忽略Y轴影响(2D游戏常用,防止镜头不稳)

(1)安装Cinemachine包并创建虚拟相机

进入Unity包管理器
Window->Package Manager

把包的来源从In Project 改为Unity Registry

搜索Cinemachine,进行安装

在层次面板右键创建虚拟相机
右键->Cinemachine->Virtual Camera

修改参数

Body改为Framing Transposer

Aim改为Do nothing

勾选Save During Play,这样在运行时更改的设置也可以被保存。

调整Ortho Size可以改变视野的大小

将Player拖到Follow中,相机跟随角色移动

可以看到有个摄像机跟着角色移动

具体运行效果如下

(2)常用参数

点击虚拟相机,打开body

可以看到如图所示,这个小黄点是相机实际跟随的点

修改ScreenX、Y可以移动拍摄的相对位置

修改X、Y、Z Damping改变相机跟随的速度,为了演示明显我先将XDamping调到最大,效果如下:

可以设置Lookahead Time让相机走在角色前面,方便角色看清前面的东西

我们发现小黄点变动幅度很大,画面不稳让人感觉眩晕,这时我们应该勾选Lookahead Ignore,忽略Y轴的移动。并且增加它的平滑度,让移动变得缓慢平滑。

效果如图:

(3)死区和软区

死区:当小黄点在死区内时,摄像机不跟随;当小黄点移动到死区外时,摄像机开始跟随。

软区:当小黄点在软区内时,摄像机缓慢跟随;小黄点超出软区时,摄像机会立即移动

通过BiasX、Y参数可以移动软区的中心,可以用这种方式实现比如:角色向前走时相机缓慢跟随,回身向后时快速跟随

三、调整参数设置达到你想要的效果

根据上述参数设置达到一个你想要的效果。

教程中设置的参数如下,可做参考:

相关推荐
Rabitebla2 分钟前
【Linux操作系统】进程篇(十一):进程程序替换——从底层原理到 exec 函数族
linux·服务器·c++·笔记·学习·算法
叼烟扛炮1 小时前
[LangChain] 学习笔记(03):打破失忆症——对话机制与上下文管理
java·前端·javascript·笔记·学习·langchain
旖旎夜光1 小时前
【C++ 基础入门】类和对象(下):初始化列表、static 成员、友元与内部类
c++·笔记·学习
LONGZHIQIN1 小时前
STM32学习笔记
笔记·stm32·学习·arm
redtank20002 小时前
纯血鸿蒙小工具三件套实测:弹幕手持、爱记录与仓库管理软件
学习·华为·智能手机·harmonyos
§ꦿCFོ༉2 小时前
嵌入式八股文—C语言入门学习(二)
c语言·学习·嵌入式·编程语言
Nerd(BUG版)2 小时前
KMP学习day5--Kotlin Flow异步流基础
开发语言·学习·kotlin
寂寞的船2 小时前
【Unity Bug挑战】第10期 SerializeReference 内存泄漏之谜
unity·c#·游戏引擎·bug
叼烟扛炮3 小时前
Linux 学习笔记(六十一):网络编程毕业设计——Reactor 反应堆模式
linux·网络·笔记·学习·课程设计
叼烟扛炮5 小时前
Linux 学习笔记(五十九):epoll 的生死抉择——LT 与 ET 模式
linux·运维·服务器·网络·笔记·学习·php