我是个非常喜欢虚幻4的小白,只是想分享一些我在学习虚幻4中的一些心得和对专有名词的个性化理解,鄙人不才,虽然实现了“目标偏移”和“人物静止时看得到脸,运动时看不到脸”的功能,不过还只停留在记忆层面。我是很想知道原理的人,所以思考过后,决定从整个“旋转”方面入手,这两天就被标题中的三个设定所困扰。
核心问题就是pawn到底该如何理解,它到底是个什么东西,我用了组控制变量实验,在文末我会阐明实验的准备工作并放上最能指明pawn的两个实验,喜欢的就鼓励鼓励,哪里错了也请指正。
为了方便我自己或者是各位读者理解,先放三个设定界面的图:
摄像机设置:人物蓝图——springarm细节面板——摄像机设置。
四项全打勾,使得摄像机能够在空间内移动。
将“将旋转朝向运动”打勾,使得角色的旋转与运动方向一致,教程上说是“角色朝向只与键盘有关”
人物蓝图—类默认值—pawn
使用控制器旋转yaw打勾。
补充:pitch:以Y为轴体旋转,yaw:以Z为轴体旋转:roll:以X为轴体。
根据上三图,不难发现一个共有的,最常被使用的东西——pawn。我不放官方解释,发表一下我经过不断实验得出的个人见解。不过在这之前,先看一个UE4中封装好的用来获取鼠标运动并输出轴值给“pawn”的函数。(“pitch”可以替换为‘yaw’或者‘roll’)
此函数的作用是获取鼠标的运动方向及缩放比例,并输出以“??”轴旋转的轴值给其指向的对象“pawn”
何为鼠标的运动方向及缩放比例?——设置——项目设置——引擎——输入——绑定——在两个轴映射中根据自己的选择自定义全局事件,并在事件的字框中选择按那个控制键触发。
鼠标X:你横向移动鼠标
缩放1.0:首先,他有正负值,正为右左为负。1.0的意思:引擎中实际操作次数与你手工操作次数的比例
回到pawn:pawn的汉语翻译是“棋子”——被利用的人,主要意思是能被控制,但不是控制器。在这里的功能中,就有一个特殊的pawn——character,虽然character有角色的意思,但这并不意味着pawn就是等于人物模型“actor”
那pawn到底是个什么东西呢?其实是无形的,我们可以做这样一个实验,首先你得编写好如下蓝图:
视角的上下左右可以跟随鼠标走向的基础蓝图——是个必要不充分条件
是为了实现“禁止时可以看到角色的脸,运动是看不到”但在这里我们只是借用其后半部分的设置变量的功能。即——————
类默认值的pawn属性中roll pitch yaw旋转是否可用和character movement细节面板中的角色移动(旋转设置)中的将旋转朝向运动是否可用。
但必须联合人物蓝图中的相机设置。
你们可以根据自己的实验方法手动勾选或取消这三样及其子变量,从大串“控制变量”的实验中得到自己想证明的东西。
我要洗澡去了,这里直接放上最能说明pawn的实验,我先声明一个假设:类默认值中pawn的旋转属性这栏,使用控制器旋转“pitch”、“yaw”、“roll”这些选项只是限制pawn的旋转方向,而非确定pawn能否旋转。
第一步:三个板块的变量全部设false,即不打勾。
第二步,在蓝图中添加函数“获取控制旋转”会有行小字,目标是pawn,然后从“returne value”拉出引线添加“拆分旋转体“然后将Z拉出提升为变量(为什么是Z?因为你的鼠标在以Z为轴的平面上),最后添加”打印文本“,如图所示:
切记连接执行引脚,可以在前方添加”事件tick“即每一帧都执行。
然后运行,你会发现,你视角无法变化,但是随着鼠标的移动,有些数据一直在疯狂的变化:
数据不断变化,并可察觉这是个以Z为轴的旋转变化,因为数据是-360~360。如果诸位读者也在做实验,不妨试着一边用键盘操控人物,一边疯狂移动鼠标(前提是你已编写好相关事件蓝图)你会发现一个很奇怪的现象——在按住向前的按钮没有按其他按钮的情况下,随着鼠标的移动,人物会朝着不同方向移动,注意!!这个朝着不同方向不是脸朝着不同方向!!——对于这个以后再做探究。
根据实验结果以及我们刚刚编写的第三个含有”打印文本“封装函数的蓝图可知,这些数据是由pawn的旋转引起的,也就是由鼠标控制引起的,所以得出:类默认值的“pawn”旋转属性只是对其依照哪一轴旋转进行设定,并不是设定他是否能旋转。无论如何,只要你对pawn进行了值得更新,他就会旋转
第二个实验:得出的视觉效果就是浏览模型
第一步:将人物蓝图中类默认值的三个旋转值全打勾,
你就在浏览模型了。如图:
也许你会说,为什么左右不行,我是这样理解的:鼠标怎么立体呀?
根据两个实验,我认为人物actor中的pawn其实就是actor脚底下与其相连的一个无形的东西,让人误以为pawn=actor的原因是
这个东西与人物一体控制着人物的旋转,只要那个封装函数在,不管默认值可不可用,pawn一直在旋的转,最后一句是最重要
我还会继续深入研究,也请大佬们用自己的理解方式纠正我