ue4 怎么传递变量到另一个蓝图_【UE4】Niagara |Spline BP| 带骨骼文字模型程序化对应Spline各个点【上篇】...

b17542b92a668913eb5308bffcd972ca.png

【前言】

【思路一】获得模型顶点以对应Spline上面的各个点

之前文字自动化附着Spline各点想着是Get模型上面的Verts顶点来产生,这就是思路一

思路一:如何获取到模型表面的所有顶点在世界场景当中的位置。

https://forums.unrealengine.com/development-discussion/c-gameplay-programming/7509-accessing-vertex-positions-of-static-mesh​forums.unrealengine.com

但是这个好多还要写C++代码啥的,就没怎么看了。

【思路二】获取模型骨骼以对应Spline上面的各个点

印度小伙的Spline是需要手动挪动的,但是我感觉如果每次导入新文字都这样手动操作简直是太麻烦了,于是结合Blender的文字转Mesh,想着导入到UE4当中直接根据这些Mesh的骨骼来生成Spline各个点该多好啊。后来结合Skeletal Mesh的骨骼测试成功了

【导图】

1a94f3688607fad516225ae90ae6224a.png

609ecab5eca384869a4082e0b8a12042.png

一、在Blender当中创建文字

【1.1】创建Text Tab键入

  1. Shift+A Text
  2. R X 90
    1. Tab 编辑
  3. 键入UE4 Interesting 520(或者是UE4有意思吧

3cc23fcc4850c846299df8c45bcb2b64.png

【1.2】如何键入中文字体

【1.2.1】显示中文路径

  1. Edit Preferences
  2. Interface->Translation勾选可显示中文路径(否则是乱码,之前一直都是,没留意过)

2152ea7560e1712f70fbbafb67898f03.png

【1.2.2】选择ttf格式中文字体

这个跟Curve一样还可以挤出等效果。

Regular选择Font

9d2cb595c68d56071c61ecaf4f65609b.png
字体路径:C:WindowsFonts

在以上路径中打开ttf格式的字体文件

f7f228a124bbf40cfe0171ffc36228b2.png

【注意事项】

我们不可以直接在Blender当中使用输入法打字。

所以需要在外面打好字之后,Ctrl C/V粘贴即可。

d6d044aa9200e0889045150931015a36.png

2d3e403610b030cc5bbcb9ba4820c957.png

二、将文字转化为Mesh

Curve的话不能使用Skin Modifier创建骨骼

1.Object->Convert To

01bda83ab4ae69bce0b17a1b81deac4f.png

2.或者在模型上直接右键也是可以的Convert To Mesh(还有设置枢轴点的,比较方便。)

fc5c1b9cd2bc9db5f96af77aff2ddf28.png

4059119fc6ed24605c84f05ec385bf53.png

三、使用Decimate Modifier给文字进行减面(将文字拆开)

注意啊,上面没有选中文字体格式的话出不来啊。

我这里呢,减到了0.3。之后Apply应用。(之后创建骨骼的时候更省力一点)

5ecbcdbb9030e93a1b2ce45992509cea.png

266dd4927e64fae2d7f2ccf5e95a3865.png

四、添加Skin Modifier将Vertex顶点变成骨骼Bones

直接点击创建。(其他不要管)

a40805ad3976be6772e23434b6fdd5c9.png

不知道这里有一点小Bug,就是直接对所有文字都进行转化的话,如下,只有单个的文字(或最后一个文字)才能转化成骨骼。

7be0bfa5f8d0b488bcb05f8acdb59e18.png

所以需要P 分离,再进行创建骨骼。(UE4 三个单独分开),如果是中文文字的话,骨骼可能只创建了一半,那么你就需要将它们分开。

P Seperate Selection

另外还有Origin的问题,如果你旋转你的文字模型的话,发现枢轴点离本体太远了,你需要Set Origin To Geometry。之后再用Skin Modifier创建骨骼呢。

e55abdd9c493da5307f2d4057f183136.png

五、精简骨骼

【5.1】删除文字内部骨骼和Skin Modifier

骨骼创建好之后,删掉SkinModifier或者是那个小屏幕的UI,不显示当前Modifier的应用效果。

骨骼创建之初跟模型是一样的,内部还有很多折线,我们需要将它们一一删除。

由于我们不能对模型进行处理(三角面四角面好多都在“U”上),只能对转化后的骨骼进行一些处理。

精简后的效果:

a73589035c452bd5a793316e7ccf1664.png

f472e8f99962cc62917a239a3802626b.png

选中新创建的骨骼Armature,进入Edit Mode,对多余的骨骼进行删除。

注意不要选中点删除,要选中线才能删除掉骨骼。可以先Dissolve Bones,如果有些骨骼不能够Dissolve的话,那么再删除(要不然有好多的牵连的黑线)

58e8eb8f8da1de2807e5c047f33184e4.png

【5.2】骨骼相关操作

【5.2.1】显示骨骼名字和UI

在Armature骨骼的Object Data Properties下我们可以更改骨骼的显示形状以及开启名字显示等等。

87450c79bd0bd7ebf7d6fce47ae84052.png

【5.2.2】展开骨骼列表

  1. Shift+左键点击主层,全部展开。
  2. 键盘+/- 逐个地展开下属层(长按跟Shift一样是全部展开的)

【5.2.3】骨骼操作快捷键

9729f396a3fa03fd3984ff8d5a28c559.png

它的操作其实跟编辑模型的顶点是一样的。

【常用的】

1.我们用到的是Alt+F->Switch Direction

  • 选中全部骨骼的话,它可以切换父子的顺序,正着来还是反着来
  • 选中单个骨骼的话,它可以脱离父层,变为跟其他骨骼一样同级。

Y 可直接Split,将骨骼放在同级。

2.F可将两骨骼连在一起。

【5.2.4】骨骼名字

  1. Names->Flip Names(可以将当前所有骨骼名字按照从Bone.001进行排序,注意Strip Numbers需要打勾)
  2. 可通过 【 】快捷键检查文字环绕关系

【5.2.5】编辑骨骼父子关系(骨骼排序)

总共就两种方法,可以X删除添加,也可以Ctrl+P直接附着。

  1. 选儿子后选爹,然后Ctrl+P,Make Parent,Connected即可
  2. 或者是X删除两点之间的骨骼,然后F创建骨骼

【注意事项】

  • 先Alt+F 将所有骨骼放在同级,然后X F即可。将当前骨骼删除,然后F 连接起来,这样的话就会自动绑定上了呢。简直不要太省力!太爽了~

尽量在世界大纲中用Ctrl加选父子,而不要在场景当中用Shift加选父子,前者能得到正常的父子关系结果。

鼠标单击选中线删除,然后框选两个点,F进行连接起来呢。就直接附着上去了呢。

我们需要对骨骼的顺序进行重新排序,在UE4蓝图当中写的就是按照从上到下的顺序进行生成Spline Point的呢。

原骨骼框架,当我们选中相应的骨骼时,发现它们并不是按照(“U”)这样连在一起排列,而是跳来跳去的。所以我们就需要调整一下骨骼的父子关系次序。(从一段环绕到另一端)

9c6a961bcf1d38aa0c9d89579aa25f97.png

调整为如下规整骨骼框架即可。

ce35e20734069905af79848ff7793de2.png

e412aceaf42b1d00e287586127e1a5fe.png

8713c8878a15ed00567ab5e4ddae6e9d.png

六、导出模型并在UE4当中进行检验

不必设置Origin啥的,我们会通过蓝图设置Spline初生点位置。

框选文字和骨骼导出(注意是单个,U一个、E一个、4一个)

导入的时候勾选骨骼

这里要你非常注意一下:

骨骼一定要像顶点连起来的线一样(否则等会儿写蓝图的Spline很难看,我测试了好长时间才发现)

也就是不要出现这个黑线。(我们可以通过Alt+F取消黑线,黑线代表的是骨骼父子关系,也就是当全部骨骼同级的时候这个黑线就会消失掉了呢)

20b0728f72909c1f84744727b3286b20.png

所有的骨骼都需要Connected。(Ctrl+P的时候选择Connected)

6b9431362f0d9a92d70c71ff96b3d70f.png
【Blender】Bone Connectedhttps://www.zhihu.com/video/1247581634322038784
013f29ef1be6d192bc4f5064f8976587.png
【UE4】Spline文字模型骨骼https://www.zhihu.com/video/1246914689067249664

0a69deccccc03c054235bac3bd31bd12.png

七、填写蓝图

我们先创建一个Actor,添加Skeletal Mesh和Spline。(并选中Mesh相对应的文字模型)

44c98e03885989e61ff24ad7ed0bee64.png

【原版——没有中空的文字】

5bebf8695c9f752c736dd3a57445abeb.png

这里的蓝图跟这里程序化生成的类似。

X Tesla:【UE4】Spline BP 程序化模型/动画轨迹(爆肝般的详细)​zhuanlan.zhihu.com

59135d5fad9077ccc60c4ee9eb7b3434.png

注意这个Point Index 和 Index的区别。

如这个Spline BP当中,我们的一个Index有两条线。对于我们这里的蓝图的话,是原先本身它就有2个Spline点,

  • For Loop First Index=Last Index=0 ,那么又生成了一个Index,共三个点
  • For Loop First Index=0,Last Index=1,那么生成两个Index,共四个点

注意一下。

骨骼索引为2~12的话,那么总共有12-2+1=11个骨骼。(last-first+1)

然后封装成一个函数即可。

da7b3e26bd70c81a9e1a4779f9cc73f2.png

当然还要注意这个索引,坑死我了。(UE4这样两级的骨骼竟然不是按照顺序来的)

a764935563f5b3515d6e312fbf44a186.png

自己可以使用GetBoneName进行检验

8ef4a12c1d796e3261dd701af5dbf11c.png

我们在Spline Details下打勾Closed Loop,这样的话,首尾骨骼就会连接起来了。

6ecd57a414ad67930989d6d7f0ac2fe0.png

上图红色框选的部分勾选之后呢,我们就可以直接进行编辑了(但是不要挪动,我们只是点击选择看生成点的索引罢了,不要挪动点的位置,否则Spline不会更新了)

  • 不能编辑——大紫红色
  • 可编辑——红色和白色

【改良版】【有中空的文字】

714db5c0a2913e1262273d5de5b97c29.png

6fe8d47e3f1da7c4616b5d0de0c20aa1.png
  • 设置First Index为第一个骨骼
  • First Bone Order Offset 为骨骼偏移值(对于有中空的文字)
  • Bone Length为骨骼的总长度(有多少数量的骨骼)

87731036a11fe7e7bc6ff5e209fffe02.png

119acbadb7d8421bf70e4bb08c4bab65.png

八、最终SplineBP点+文字骨骼 程序化对应关系大检查

(视频为旧版,但大概就是这么个意思,可以通过程序化来控制我们的Spline线条)

b3c49054f547ae2d8b189e0c405a2de9.png
【UE4】Spline BP+文字骨骼https://www.zhihu.com/video/1246919176465039360

----------------------------------------------------------------------------

df9c5a2ac67c9ad9f787c377ca34fcf4.png

文字中空部分添加一个新的Spline即可。设置初始骨骼和总共骨骼数量即可。

有意思吧 待续~

回家吃饭!

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值