UnRealEngine笔记

1.Location和Rotation的问题

在项目中,经常会遇到需要改动location和rotation的时候。这里的location就是position,也不知道为什么ue里叫这鬼名字(还是unity好,哈哈)。

一般情况下我们会都会先获取对象嘛,Get player pawn 然后去set location的之类的。但是呢,location是有效的。在做旋转的时候,居然没反应,百思不得其解,后面查了资料,有个老哥的解释的原因是:

角色/相机均是由它的Controller控制的,因此我们要更新它的旋转时,更新的是Controller的而不是Character的。

那么知道了原因,我们就好解决了,在Get的时候我们去get player controller,然后去set rotation。

具体如下图:

2.使用UE5.3创建骨骼,IKRig重定向

在使用UE5.3可以编辑谷歌,导入插件Skeletal Mesh Editing Tools。

重启项目,这时候打开骨骼网格体的上方菜单中就有一个编辑工具了。

这时候就可以给模型编辑骨骼,基础部位分为:重定向根(Retarget Root),身子(Spline),脖子(Neck),肩膀(Clavicle),手臂(Arm),手指,腿部(Leg)。

记住!记住!记住!这时候要添加蒙皮(Skin),如果不添加蒙皮!有骨骼也不会动!

选择Bind Skin,懒人直接自动蒙皮就好。当然也可以自己手动Edit Weights。

内容浏览器(Content)右键-动画-重定向-IK绑定(IKRig)。然后将骨骼分类,就是按绑定元素joint按基础部位分类好。

内容浏览器(Content)右键-动画-重定向-IK重定向器(IKRetargeter)。

源:

源IKRig资产选择UE小白人。

源预览网格体根据男性女性选择不同的骨骼体。

目标:

目标IKRig资产选择刚才创建的IKRig。

目标预览网格体选择我们自己的骨骼网格体。

3.Sequencer使用方法

1.创建摄像机动画

先在Content里创建一个关卡序列(Level Sequence)。

首先在你的序列中创建一个 摄像机Actor

点击Sequencer工具栏中的 创建新摄像机(Create New Camera) 按钮。这将为此序列创建一个摄像机Actor,并自动将视口的视角更新为摄像机Actor的视角(称为 导航)。

从视口中,将你的摄像机与初始位置和你要使用的框架对齐。然后,找到摄像机的 变换轨道(Transform track),选择它,然后按 Enter 键。这将设置摄像机的初始变换关键帧。

说人话就是找人你要的起始电位,都调整好了,然后按回车,这时候Transform的轨道上相应的位置就会出现一个红色的圆点。

那么起始点有了,这时候拖动播放滑块​,或者直接在旁边输入多少帧,比如输入100

 然后这时候要看Cine Camera Actor有没有锁定到窗口上。怎么看呢,就看这摄像机的图标是不是亮着的,不亮就点一下。视窗就锁定住了,这时候你用WASD加上鼠标旋转进行操作,移动啊旋转啊到指定的位置,然后再按回车。这时候轨迹就确定了。

完事了你就可以拖动播放滑块或者点击以下按钮进行预览

4.UE 蓝图通信的多种方式

1.普通Actor与关卡蓝图之间的通信

普通Actor可以通过Execute Console Command与关卡蓝图进行通信

例子:在函数Execute Console Command中的Command中输入字符串ce function value,这段字符串其实是分三块。1.ce相当于广播。2.function是关卡蓝图相对应的function函数名。3.value是传入的参数。 

2.普通Actor与普通Actor之间的通信 

普通Actor可以通过Execute Console Command与普通Actor进行通信,有的人会说哎呀这函数怎么跟上面的一样啊,是的,其实Execute Console Command是叫控制台命令。

例子:在函数Execute Console Command中的Command中输入字符串ke Actor function value。这段字符串其实是分四块。1.ce相当于广播。2.Actor是类型(我猜的)。3.function是关卡蓝图相对应的function函数名。4.value是传入的参数。 

以上两种更多时候适用于调试。

3.对象引用蓝图通信

其实很好理解,就是运用各种手段获取到这个Actor,比如使用Get Actor of class,Get Tag啦,spawn Actor等等。不过得到这个Actor之后都要做一次类型转换Cast to (蓝图Actor类名称),然后进行后续的一系列操作。

也可以像Unity那样,把变量暴露出来,在面板上预先填入Actor。

4.通过接口调用蓝图通信

新建一个蓝图接口,接口不需要写具体的函数执行内容,与普通的函数方法不同,他只有一个接口名称,具体的执行内容在继承的蓝图中编写。

这时候打开一个需要继承接口的Actor,在类设置中,找到接口,添加刚才新建接口的名称。之后在左侧,我的蓝图中接口列下找到接口名称的函数了。双击打开这个接口,在后面写上执行内容。然后打开任意一个Actor,右键搜索这个接口名称。没完呢,一样要获取到那个继承了接口的Actor,将他强转Cast to XXX,引用线链接过去就好了。

5.蓝图工程中编译C++报错

在编译别人的工程的时候不知道为啥提示:ue5 Failed to move file from XXXXXXXXXXX。

我删除的文件夹是 Binaries 和 DerivedDataCache。不应该删除 Source 文件夹,因为整个项目都基于源文件夹。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值