背景屏幕破碎教程分享

八云辉夜 发表于    2024年12月31日 16:23
8751
14
288

可能有更好的或者更正确的步骤或者方法,也希望各位在评论区分享,感谢~~


破碎效果如下,可以看到只是破碎了角色后面的背景,而不是把整个画面都破碎。

Animation 2024-08-31-4-08-3795 (1).gif

这里用到了两个摄像机,分别拍摄不同的层级,最后把其中一个摄像机渲染出来的东西放到破碎的模型上,这个破碎模型和角色需要单独改下层(Layer),也就是下图所示的。

image.png

1:首先,我们先修改人物模型的Layer为Effect(可以自己随意命名)层,这里修改角色纯粹我不想一个个修改场景特效和其他的。

2:创建一个Camera,以后都称呼为Camera01,找到它的culling Mask项,修改为只拍摄Effect层,这样这个摄像机拍摄到的东西只有Effect层的东西了,而目前Effect层我们只有角色,所以Camera01画面中只会有角色。

image.png

3:创建一个新的Camera,以后都称呼为Camera02,之后需要把Camera02放到Camera01下面,因为考虑到Camera01可能会涉嫌到摄像机运动,而背景和角色的运动得是一致的,所以直接放到Camera01下面当子级(记得把Camera02旋转位移缩放等参数重置)

4:Camera02,找到它的culling Mask项,修改为拍摄除了Effect层的其他层。

image.png

5:在max中先创建一个Box,长度为1.92m,宽度为1.08m,高度为0.013m,我这里的长宽比例是对应1080P的分辨率,也就是1920X1080。

如果你是手机端或者其他比例的屏幕,记得修改它。

之后塌陷到或者右键-转换为-转换为可编辑多边形(注:记得备份一下这个BOX,可能后续会用到)

image.png

6:然后对这个模型,用破碎插件进行破碎(直接网上找一键破碎插件即可,如果对破碎形状有特殊要求可以用RayFire破碎插件破碎,如破碎块数较少可以自己手动分割模型)

下图是我用RayFire破碎后的样子,每块碎片都是独立的元素,后面就是制作破碎的动画了,有能力的可以自己手K帧动画,或者unity直接写脚本什么的。

image.png

这边参考的是@bu吐不舒服 吐哥视频BV14r4y1G7Xs(B站BV号)中的tyFlow插件,我只用了下面几个节点(看你想要得到的效果,我这边的效果这几个节点已经够了)

image.png

节点中的时序很重要,代表了这些节点什么时候生效,且持续到什么时候

image.png

当参数都调后用,用导出粒子(对象)节点进行导出为对象,只有这样才会变成带有动画属性的对象

image.png

点击后你会发现对象不知道在哪,此时记得隐藏tyFlow,因为它生成在原本的位置,刚好和tyFlow对上了。

7:开始分材质ID,因为最终想要的效果是破碎的正反面是摄像机拍摄的画面,侧面是其他颜色

image.png

8:全选破碎对象(记得只选择破碎对象),然后给它们添加一个编辑多边形修改指令

image.png

选择多边形,然后开始手动选择正反面

image.png

image.png

选好后,在编辑多边形修改指令参数下面找到多边形:材质ID,设置ID这里输入2

image.png

正反面的材质ID选好后,Ctrl+I反选,此时会选中侧面然后多边形:材质ID,设置ID这里输入2,这个时候材质ID已经设置完毕,可以给破碎模式上材质球了。

9:单个对象操作的情况下,且是可编辑多边形的情况下,可以直接选中面,然后赋予材质球,反选某些面赋予另外的材质球。

但是破碎模型是多个对象,所以得批量操作(如果你不嫌麻烦可以把所有对象右键-转化为-转换为可编辑多边形然后手动赋予),这样就导致上面的效果没法用,而编辑多边形修改指令并不能达到想要的效果。

所以这里用到了多维子材质,先选择一个材质球,然后点击Standard,搜索多维子对象,选择它,就能变成多维子材质,把这个多维子材质赋予破碎模型,之后再修改两个材质球的的命名,这边命名为01正面,02侧面,然后把这两个材质球按材质ID拖到多维子材质中。

image.png

image.png

这样,模型的材质就弄好了。

image.png

10:全选破碎模型,给予UVW展开修改器指令,然后投影正确的破碎UV(注,此时记得把帧拖到第0帧,也就是不破碎的时候),此时可以给个长方形的图(16:9即可)上去看看是不是UV有歪,歪了的话记得旋转。

image.png

然后进行塌陷(注:塌陷为记得选择多个对象!!)

image.png

如果对侧面的UV有特殊要求的,可以用UV2通道,然后再unity中用shader来控制,这边案例不需要用到所以就不展开讲解了。

导出前可以创建一个虚拟对象,然后把破碎模型全部链接到虚拟对象上。(纯个人习惯)

image.png

之后就是选择这个虚拟对象+破碎模型,导出选定对象,记得导出的时候查看动画是否勾选,烘焙动画的结束帧是否是你想要的结束帧,最后确定导出FBX

image.png

11:让我们回到unity中,在Project面板中,创建RenderTexture

image.png

选择创建后的RenderTexture,首先修改其尺寸,这边案例用的是1920X1080,之后就是修改ColorFormat为R32G32B32A32_SFLOAT,Depth Stencil Format为D32_SFLOAT_S8_UINT(这两个修改我只能说我这边需要用到这两个,你们项目可根据自己的需求来,并不一定是定死的)

image.png

找到我们的Camera02,把RenderTexture赋予给摄像机中的Target Texture中,这样Camera02拍摄到的画面会实时更新到RenderTexture中

image.png

12:用RenderTexture创建材质球,这里材质shader选择的是Unlit/Texture,有特殊需求的可以自己选自己想要的,

image.png

侧面的材质球也是看需求自己选,这里用的是Standard材质

image.png

把这两个材质球赋予破碎模型,模型赋予最好在模型的设置那改

image.png

而不是把模型拖到Hierarchy面板中,修改它,因为可能会导致材质ID错乱。

image.png

材质球赋予后,把破碎模型挂到Camera01下面,并且放远一点,然后手动调整破碎模型大小。(注:破碎模型记得修改层级为Effect,这样是防止Camera02拍到这个模型)

image.png

案例中的摆放位置如下图所示

image.png

13:最后就是在timeline中,恰当的时候调用破碎模型的破碎动画。

注意!!可能有些破碎模型在破碎的时候就有了些小问题,导致能看到一些细缝

image.png

这个时候,要么你重新破碎,然后按流程重新走一遍,要么就是手动切box,然后重新走一遍流程,亦或者,拿出上面我让你备份的box,修改下UV,导出,然后挂到Camera01中(注:Box记得修改层级为Effect,这样是防止Camera02拍到这个模型),位移旋转大小等直接复制破碎模型的,靠timeline的Activation Track来控制显影(亦或者Unity中手动K显影)

不需要的时候用显示这个box隐藏破碎模型,需要破碎的时候隐藏box显示破碎模型

image.png


最后感谢帮助我解决难题的大佬们@ADY521@白茶若云斟@混元形意太极门掌门人@阿蓝丶

顺便提前祝大家新年快乐(*^▽^*)

发表于    2024年12月31日 16:23
关于作者
八云辉夜
回答
0
文章
0
粉丝
526
URL已复制到剪贴板!