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

2023-12-26 11:36

本文主要是介绍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 视图中可以即时看到调整后的效果,运行后,摄像机就可以时刻捕捉角色的头部位置

这篇关于Unity | 渡鸦避难所-4 | 镜头跟随角色移动的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/539252

相关文章

我在移动打工的日志

客户:给我搞一下录音 我:不会。不在服务范围。 客户:是不想吧 我:笑嘻嘻(气笑) 客户:小姑娘明明会,却欺负老人 我:笑嘻嘻 客户:那我交话费 我:手机号 客户:给我搞录音 我:不会。不懂。没搞过。 客户:那我交话费 我:手机号。这是电信的啊!!我这是中国移动!! 客户:我不管,我要充话费,充话费是你们的 我:可是这是移动!!中国移动!! 客户:我这是手机号 我:那又如何,这是移动!你是电信!!

用Unity2D制作一个人物,实现移动、跳起、人物静止和动起来时的动画:中(人物移动、跳起、静止动作)

上回我们学到创建一个地形和一个人物,今天我们实现一下人物实现移动和跳起,依次点击,我们准备创建一个C#文件 创建好我们点击进去,就会跳转到我们的Vision Studio,然后输入这些代码 using UnityEngine;public class Move : MonoBehaviour // 定义一个名为Move的类,继承自MonoBehaviour{private Rigidbo

简单的角色响应鼠标而移动

actor类 //处理移动距离,核心是找到角色坐标在世界坐标的向量的投影(x,y,z),然后在世界坐标中合成,此CC是在地面行走,所以Y轴投影始终置为0; using UnityEngine; using System.Collections; public class actor : MonoBehaviour { public float speed=0.1f; CharacterCo

物联网之流水LED灯、正常流水灯、反复流水灯、移动流水灯

MENU 硬件电路设计软件程序设计正常流水LED灯反复流水LED灯移动流水LED灯 硬件电路设计 材料名称数量直插式LED1kΩ电阻杜邦线(跳线)若干面包板1 每一个LED的正极与开发板一个GPIO引脚相连,并串联一个电阻,负极接GND。 当然也可以选择只使用一个电阻。 软件程序设计 正常流水LED灯 因为要用到多个GPIO引脚,所以最好把所有的GPI

12C 新特性,MOVE DATAFILE 在线移动 包括system, 附带改名 NID ,cdb_data_files视图坏了

ALTER DATABASE MOVE DATAFILE  可以改名 可以move file,全部一个命令。 resue 可以重用,keep好像不生效!!! system照移动不误-------- SQL> select file_name, status, online_status from dba_data_files where tablespace_name='SYSTEM'

Unity Post Process Unity后处理学习日志

Unity Post Process Unity后处理学习日志 在现代游戏开发中,后处理(Post Processing)技术已经成为提升游戏画面质量的关键工具。Unity的后处理栈(Post Processing Stack)是一个强大的插件,它允许开发者为游戏场景添加各种视觉效果,如景深、色彩校正、辉光、模糊等。这些效果不仅能够增强游戏的视觉吸引力,还能帮助传达特定的情感和氛围。 文档

《C++中的移动构造函数与移动赋值运算符:解锁高效编程的最佳实践》

在 C++的编程世界中,移动构造函数和移动赋值运算符是提升程序性能和效率的重要工具。理解并正确运用它们,可以让我们的代码更加高效、简洁和优雅。 一、引言 随着现代软件系统的日益复杂和对性能要求的不断提高,C++程序员需要不断探索新的技术和方法来优化代码。移动构造函数和移动赋值运算符的出现,为解决资源管理和性能优化问题提供了有力的手段。它们允许我们在不进行不必要的复制操作的情况下,高效地转移资源

Unity协程搭配队列开发Tips弹窗模块

概述 在Unity游戏开发过程中,提示系统是提升用户体验的重要组成部分。一个设计良好的提示窗口不仅能及时传达信息给玩家,还应当做到不干扰游戏流程。本文将探讨如何使用Unity的协程(Coroutine)配合队列(Queue)数据结构来构建一个高效且可扩展的Tips弹窗模块。 技术模块介绍 1. Unity协程(Coroutines) 协程是Unity中的一种特殊函数类型,允许异步操作的实现

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光

Unity 资源 之 Super Confetti FX:点亮项目的璀璨粒子之光 一,前言二,资源包内容三,免费获取资源包 一,前言 在创意的世界里,每一个细节都能决定一个项目的独特魅力。今天,要向大家介绍一款令人惊艳的粒子效果包 ——Super Confetti FX。 二,资源包内容 💥充满活力与动态,是 Super Confetti FX 最显著的标签。它宛如一位

Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(4)

本文仅作笔记学习和分享,不用做任何商业用途 本文包括但不限于unity官方手册,unity唐老狮等教程知识,如有不足还请斧正​​ Unity数据持久化 之 一个通过2进制读取Excel并存储的轮子(3)-CSDN博客  这节就是真正的存储数据了   理清一下思路: 1.存储路径并检查 //2进制文件类存储private static string Data_Binary_Pa