Unity | 渡鸦避难所-4 | 镜头跟随角色移动

1 Cinemachine 简介

在第一人称视角的游戏中,摄像机需要时刻跟随角色移动。除了手动计算摄像机的位置、旋转外,也可以使用 Unity 提供的 Cinemachine 插件来轻松实现摄像机的控制

Cinemachine 是一套用于操作 Unity 相机的模块,解决了跟踪目标、合成、混合和镜头之间剪切的复杂数学和逻辑。它旨在显着减少开发过程中耗时的手动操作和脚本修改的数量。更多信息请参阅文档: 「https://docs.unity3d.com/Packages/com.unity.cinemachine@2.9/manual/index.html」

2 安装并创建虚拟相机

1 安装 Cinemachine

菜单栏中选择 Window > Package Manager,弹出窗口中的 Package 选择 Unity Registry,输入 Cinemachine 关键词,搜索并安装

2 创建虚拟相机对象

在 Hierarchy 中的任意地方右键,创建 Virtual Camera,如果在游戏对象上,路径为:GameObject > Cinemachine > Virtual Camera,如果是空白处,路径为:Cinemachine > Virtual Camera

3 镜头跟随

1 设置跟随目标

为了更好的控制角色,角色模型的锚点通常在脚底,而游戏中希望摄像机捕捉的位置是角色的头部。所以在 PlayerController 中创建一个对象,命名为 Head,调整位置到角色的头部。然后将其拖入到虚拟相机的 Follow 属性中,摄像机就会以阻尼运动的方式跟随 Head,且与目标保持固定距离

2 选择跟随算法

Body 属性指定在场景中移动虚拟摄像机的算法。关于不同算法的详细介绍,请参阅文档:「https://docs.unity3d.com/Packages/com.unity.cinemachine@2.6/manual/CinemachineVirtualCameraBody.html」

游戏中期望镜头像王者和原神一样,角色移动时,相机以固定的角度跟随角色,且与角色保持固定的距离

据此需求,选择 Framing Transposer,此虚拟相机机身算法将相机以固定的屏幕空间关系移动到跟随目标,还可以指定偏移、阻尼和合成规则。Framing Transposer 仅改变相机在空间中的位置,它不会重新定向或以其他方式瞄准相机

Framing Transposer 专为 2D 和正交相机而设计,但它也适用于透视相机和 3D 环境

该算法首先沿相机 Z 轴移动相机,直到跟随目标距相机 XY 平面达到所需距离。然后,它在 XY 平面上移动摄像机,直到跟随目标位于摄像机屏幕上的所需点

注意:Framing Transposer 会忽略 LookAt 目标,仅使用 Follow 目标

更多关于 Framing Transposer 的信息,请参阅文档: 「https://docs.unity3d.com/Packages/com.unity.cinemachine@2.9/manual/CinemachineBodyFramingTransposer.html」

选择 Framing Transposer 后,根据 Aim 属性的提示,将其选择为 Do nothing

3 调整跟随参数

选定虚拟相机的移动算法后,在对应的属性面板中调节相关参数,这里仅更改两个参数:

  • Tracked Object Offset:相对于跟踪对象的偏移

  • Camera Distance:沿相机轴与跟随目标保持的距离

在 Game 视图中可以即时看到调整后的效果,运行后,摄像机就可以时刻捕捉角色的头部位置

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/577947.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式系统架构设计之分布式数据管理

随着互联网时代的不断发展,分布式系统架构成为支撑大规模用户和高并发访问的基础。在构建分布式系统时,分布式系统有着一系列的要求以及对应的核心技术,涉及到数据管理、通信安全性、性能优化、可扩展性设计以及架构演进与版本管理等很多方面…

vs c++mysql 配置

C/C访问MySQL数据库_c链接数据库陈子青-CSDN博客

【使用Ubuntu编译FFmpeg生成Android动态库/静态库】

环境 我这里使用windows里的wsl2的ubuntu,使用物理机或者vmware,vbox之类的安装的ubuntu理论上也可以. gcc编译使用的环境如下: Ndk使用17 FFmpeg使用4.0.2. clang编译使用的环境如下: Ndk使用21.4 FFmpeg使用6.1 FFmpeg下载地址:https://ffmpeg.org/…

什么是pca降维

当执行主成分分析(PCA)降维时,具体的步骤如下: 1.数据准备: 2.数据集:有一个包含多个样本和特征的数据集。每个样本都是一个向量,每个特征都是向量的一个维度。 3.数据中心化:计算每…

Shell 脚本基础

Shell脚本 脚本以#!/bin/bash开头 执行方式 直接使用文件名执行:文件需要执行权限 以bash xxx.sh来执行, 本质上是bash解析器去执行, 文件作为一个输入, 因此可以不需要执行权限 变量 系统变量 自定义变量 定义变量 # 定义一个变量username, 注意不能有多余…

实战 9 权限菜单管理

目录 1、权限菜单后端接口 2、查询权限菜单列表 2.1 设计效果图 2.2 menuList.vue 3、 新增权限菜单 3.1 新增权限菜单窗口代码 3.2 选择所属菜单代码 3.3 封装图标选择器 3.4 新增、编辑和删除权限菜单 1、权限菜单后端接口 package com.cizhu.service;import com.ci…

[职业管理] OKR

推荐书籍 书名:OKR工作法:谷歌、领英等顶级公司的高绩效秘籍 作者:克里斯蒂娜沃特克 译者:明道团队 文章目录 OKR介绍OKR文档模板OKR周报模板使用OKR进行团队合作 OKR介绍 OKR是"Objectives and Key Results"的缩写&am…

C# WPF上位机开发(子窗口通知父窗口更新进度)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing 163.com】 这两天在编写代码的时候,正好遇到一个棘手的问题,解决之后感觉挺有意义的,所以先用blog记录一下,后…

基于flask和echarts的新冠疫情实时监控系统源码+数据库,后端基于python的flask框架,前端主要是echarts

介绍 基于flask和echarts的新冠疫情实时监控系统 软件架构 后端基于python的flask框架,前端主要是echarts 安装教程 下载到本地,在python相应环境下运行app.py,flask项目部署请自行完成 使用说明 flaskProject文件夹中 app.py是flask项目主运行文…

Android Studio解决:Connect time out问题

目录 前言 一、错误信息 二、解决方法 三、更多资源 前言 当您尝试建立网络连接时,如果连接的建立时间超过了预设的时间限制,就会出现"Connect time out"的错误提示。这通常是由于网络连接问题、服务器故障或网络延迟等原因导致的。 一、…

ARM Cortex-A学习(1):GIC(通用中断控制器)详解

文章目录 1 Cortex-A核中断1.1 处理器模式1.2 IRQ模式 2 GIC的操作2.1 CPU Interface2.2 Distributor GIC(通用中断控制器, Generic Interrupt Controller)是一种用于处理中断的硬件组件,它的主要功能是协调和管理系统中的中断请求,确保它们被正确地传递…

Android 设置系统桌面壁纸

本篇主要讲下如何设置系统桌面壁纸. 代码如下: public static void setLauncherWallPaper(Context context, Bitmap bitmap) throws IOException {if (android.os.Build.VERSION.SDK_INT > android.os.Build.VERSION_CODES.N) {final int result;try {result WallpaperMana…

termux_ubuntu 系统配置

1、添加新用户 由于 termux/ubuntu 默认创建和登录的是 root 用户,root 用户的 home 目录在 /root 下,这个使用起来很不方便,使用 root 用户也不太习惯,有必要创建新用户 # 创建新用户 useradd -d /home/new_user_name -m new_u…

VD6283TX环境光传感器(1)----获取光强和色温

VD6283TX环境光传感器.1--获取光强和色温 概述视频教学样品申请完整代码下载主要特点硬件准备技术规格系统框图生成STM32CUBEMX串口配置IIC配置X-CUBE-ALS演示结果光强测试表 概述 为了充分利用VD6283TX传感器的特性和功能,本章节重点介绍了如何捕获光强度和相关色…

Typescript新手入门1

You: Typescript教程 ChatGPT: TypeScript 是一种由微软开发的开源编程语言,它是 JavaScript 的一个超集,添加了可选的静态类型和基于类的面向对象编程。由于您可能正在使用 Linux 系统(Ubuntu 22.04),这对于学习和使…

QT foreach

原型:foreach(variable, container) container:容器,即被遍历的对象 variable:当前元素,即遍历container过程中,当前的那个元素 代码: QStringList container { "1", "2&quo…

JVM 类加载子系统

1. 前言 ​ 虚拟机就是一款用来执行虚拟计算机指令的计算机软件。它相当于一台虚拟计算机。大体上,虚拟机分为系统虚拟机和程序虚拟机。系统虚拟机就相当于一台物理电脑,里面可以安装操作系统;程序虚拟机是为了执行单个计算机程序而设计出来…

Linux文件编程

目录 1、Linux系统提供的文件编程API 1.1打开文件:open 1.2创建文件creat函数 1.3写入文件write函数 1.4读取文件read函数 1.5文件光标位置lseek函数 2、另外一组文件编程API 2.1文件打开函数fopen 2.2读文件函数fread 2.3写文件函数fwrite 2.4文件光标位…

vscode中使用GitHub Copilot Chat

文章目录 一、什么是Github Copilot Chat二、安装使用三、如何使用1. 聊天功能2. 内联功能 一、什么是Github Copilot Chat GitHub Copilot Chat 由 OpenAI 的 GPT-4 大型多模态模型提供支持,能带来更准确的代码建议、解释和指导。GitHub Copilot Chat 的内联功能可…

手机上的软件怎么修改网络IP地址

在手机上修改网络IP地址通常需要通过以下两种方法: 1. 使用VPN(虚拟私人网络)或代理软件: 步骤如下: - 下载并安装一个可靠的VPN或代理软件到你的手机上。 - 打开VPN或代理软件,选择一个你希望获取IP地址…