c++输出方块_【Blender】方块波浪动画音乐效果

此篇博客详细介绍了如何使用Blender创建波浪面动画,通过细分、WaveModifier、Matcap法线贴图和音乐同步实现立方体群组的动态效果。步骤包括设置波浪网格、制作无限循环动画、调整跟随运动和材质,最后结合音乐让方块随旋律起伏。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0d536a26096d2fbe2479efd237791f7a.png

先上结果:

85c11dfc36f77e41ed11bfd21ce5cfb5.png
Blender方块动画效果https://www.zhihu.com/video/1232333427569262592

老规矩:

bebb80c655a914f036eef9ecea863682.png

2d382077065df69ee53835c41f49f538.png

一、设置基本Wave Mesh(波浪面)

  1. 创建Plane,S 8,这样宽度就是2*8=16m了。
  2. Ctrl+A/Object菜单->Apply->Apply Scale——作用:归一化Scale。

4dc95e879dd5f9eaa33755accc5ddc57.png

3.世界大纲中重命名Plane为 "Wave Mesh"波浪网格

e49418cd935c71c3f6597ed311f9e930.png

二、细分Wave Mesh

  1. Tab进入Edit Mode
  2. A选中全部面
  3. 右键 Subdivide细分
  4. 将Number of Cuts设置为 30
  5. Tab进入Object Mode
  6. 可以选中模型空格键入Shade Smooth,来让平面变得更加平滑一些。

如果你没有操作这一步的话,也就是模型没有细分,这个Plane在第三步中只会上下地进行晃动(所以一定要细分啊)

82c7192754d1aa711bb3b82eb6ac2af5.png

57e6cb31f0ad1ee3ad41eee18804152a.png

三、添加Wave Modifier(长得像Wifi信号)

636f8b06087b27891e0bd833741fd2b5.png
Shift+空格播放动画
【提示】世界的小方格一个是1m哦

d05a7231ba4450baacda923c57cb2351.png
Size为2m的Plane

提示】最终的模型长宽是【基准的Size*缩放Scale=最终的尺寸Dimensions】(只是提醒一下大家,前面我们已经归一化Scale了)

如这个就是

  • Size=2m(带单位)
  • Scale=3(没有单位,是常量)
  • Dimensions=6m(带单位)

3655904664293b13f00174c02a5cf2cf.png

【3.1】Wave Constraint参数详解

  • Speed——摇晃的速度(范围-1~1、-1~0不晃动、0~1晃动)【Default 0.25】
  • Height——摇晃的高度范围(范围-2~2m、负为反方向摇晃)【Default 0.5m】

e52ce8ad0a227dc33f7427a2da01a7a7.png
  • Width——每个波浪谷之间的距离(范围0~5m)【Default 1.5m】

38dc8a8145cbff6ff4a6810a4f80076f.png
  • Narrowness:狭窄度【默认1.5】

d9cd185ce2f2142dc12278946683b18d.png
4ff919170d99a3ee7e68a1dfb8067c87.png
Blender Wave 动画https://www.zhihu.com/video/1232048024920596480

51c0cf04600c08cb620459744cb9f5cb.png

四、制作波浪无限循环动画(无卡帧)

  1. 使用Matcap的法线贴图
  2. Z切换至 顶视图,来制作我们的无限循环动画。(更好地观察变化效果)

9a7da30d9c52952c6b5cc4426ae89653.png

3.Shift+F12 进入Timeline(如果你没有的话)

设置起始末尾关键帧:

  • 我们可以用快捷键P选择我们的播放范围
  • 或用Ctrl+C/V复制当前关键帧到开始帧或末尾帧
  • 当然你也可以直接输入开始关键帧和结束关键帧(我这里是 33~45)

当然如果你看不出来的话,你可以用Snipaste 截屏,并玩一玩 找不同 的游戏。(GZ1)

2480eb916ff2487d895470b24b01c218.png

五、设置方块的跟随运动效果

【5.1】添加Cube

【5.2】设置中心枢轴点

  • 进入Edit Mode挪动Cube,GZ1(注意不是Object Mode注意不是Object Mode,注意不是Object Mode,要不然移动的结果是你的Cube的枢轴中心还在体积中心,而不是底面的中心处
  • 或者是在Object Mode下GZ1,然后Object->Set Origin->Origin to 3D Cursor(Origin to Geometry可以切换回来)

22394373fbe4501b0c32310ae2ac8074.png

我们在向游戏引擎当中导入模型的时候经常遇到这样的问题,旋转的基准点不对导致旋转不到位就是枢轴坐标的问题,大家注意一下。

【5.3】添加Shrink Wrap Object Constraint

注意不是Modifer当中的,注意不是Modifer当中的,注意不是Modifer当中的),,两个界面完全不一样好嘛,一个是约束器(Constraint),一种是修改器。(Modifier)

1396fc72e8ffc20b6ee81bd7ccbc2969.png
Modifier修改器当中的ShrinkWrap

21d660c9bbacdf6430ff527b59b9e761.png
Constraint控制器当中的Modifier
Shrink Wrap的作用是 移动约束(Constraint)对象的原点并使其移到其目标对象的表面。(就是包裹在一起跟随父类运动)

相关操作:

  • 选择父类目标:Wave Mesh
  • Project投影,Z轴
  • S->Shift+Z (在XY轴上缩放我们的Cube)
  • Ctrl+A->Apply Scale(跟上面提到过的Plane一样)

a416a1ae08213144fd55f97d71d0ee60.png

六、利用Array Modifier 复制成群的Cube。

  1. 添加Array Modifier
  2. 设置Relative offset-X=1.1——以造成一定的间隙
  3. 设置Count数量为我们刚才说过的30
  4. 复制一份Array Modifier
  5. 并将Cube GZ移动到边缘处。

19a9544201e429c225c587264e7cbbfa.png

这样弄完我们可以清楚地看到我们的枢轴还有一点小问题(这是一个大Cube的枢轴中心)

7e80cdbee4f0b14f362d9a4b860bb2e7.png

下面我们需要将这些复制化的Cube分割成单块

a138fb15eea5c08a026ee105a66e3b19.png

七、将Cube分割成单块

【7.1】Edit Mode选中所有面 Separate By Loose Parts

  1. 进入Edit Mode,A选中所有面
  2. P 分离 By Loose Parts

【7.2】挪动我们的Wave Mesh坐标以产生方块动画的效果

  1. Tab退出Edit Mode,进入Object Mode(因为这个是单个的Cube,外面还有好几百个Cube Object呢,这好几百个Cube的枢轴中心全部都在这个最边边的Cube上,我们需要进行一些改动)
  2. 然后上方 Object->Set Origin->Origin to Geometry

e041eb491f427c8b28d83aabe48dafdc.png

294b9c3743f409e01a271bbc35855906.png

【7.3】挪动我们的Wave Mesh坐标以产生方块动画的效果

  1. 切换前视图,将我们的Wave Mesh 往Z轴上方挪动一些。(GZ1)
  2. 切换顶视图,挪动Wave Mesh 的XY坐标至这些小方块组成的大方块平面中央位置。

可以先看一下效果

10b0ea71455479ce4a7a9d9128e82c71.png
Blender音乐可视化效果[1]https://www.zhihu.com/video/1232278729483276288

3298dcd946ccfea48e6fe0b2a99a6e32.png

八、添加材质并设置Shader蓝图

【8.1】选中任意单个的Cube创建新材质,设置表面为Diffuse颜色贴图

【8.2】将材质球给到所有的Cube

  1. A 选中所有的Cube
  2. Ctrl+L,将材质球给到所有的Cube

8d715adeb3bf4cb954ca3fc1365e1bef.png

【8.3】进入Shading Panel 设置相关蓝图

  1. Shift F3进入Shading Mode,或者鼠标上方滑动菜单栏可切换(如果你的窗口太小的话)
  2. 填写下面的相应蓝图(我已经标明得很详细了,哈哈)

34516b4f60c121c798d8a761ce679203.png

【8.4】挪动相关Wave Mesh 的位置

将场景中的所有模型选中,向下方挪动一点,来跟我们蓝图中的Location.Z相互配合,创建底色。Z进入前视图,A选中所有模型,向下方移动一点,然后差不多Cube刚好被3D Cursor切分两半的位置。

1b74648e2f0f65388ace3ca2d06c921d.png

【8.5】调节蓝图中的Multiply值

(适当调节Multiply中的Value值,使达到这种多彩的颜色)

3e6aa822c673ac87e66070c2caf010d9.png

【拓展1】RGB、HSV、HSL、HEX

  1. RGB——是通过对红(Red)、绿(Green)、蓝(B)三个颜色通道的变化以及它们相互之间的叠加来得到各种各样的颜色的,这个标准几乎包括了人类视力所能感知的所有颜色,是运用最广的颜色系统之一,基于笛卡尔坐标系
  2. HSV——色调(Hue),饱和度(Saturation),明度(Value),是根据颜色的直观特性而创建的,也称六角锥体模型
  3. HEX(Hexadecimal)十六进制颜色——如#000000表示黑色,#FFFFFF表示白色,(0123456789ABCDEF),我们的网页端(Cascading Stylesheet,CSS)运用得比较多
  4. HSL——色相(Hue)【颜色名称】,饱和度(Saturation)【色彩纯度,越高越纯,低则变灰】,亮度(Lightness)【跟明度一个意思】,将RGB色彩模型中的点在圆柱坐标系中的表示法。

222d4378acad254279375a3a92c0d3b8.png
RGB笛卡尔坐标体系

d7a1a47ece84e2a2d7849ef764c49aea.png
HSV六角锥体系

65b9e64bf38a609948fb143c1bdae502.png
HSL圆柱坐标体系

A选中所有蓝图节点,然后S可以缩放这些节点的大小位置。

【拓展2】材质球随机颜色制作

6fb129733885f113455030e4ffefeeea.png

注意事项:

  1. RGB(不管是R=1.0还是 G=1.0,B=1.0都可以,因为它的颜色我们在蓝图当中设置是跟随位置变化的,这里取的就是单个颜色值,主要是RGB这红绿蓝三个颜色,当然你也可以混合设置,设置红+绿(R=1.0、G=1.0)=黄或者是 绿+蓝(G=1.0、B=1.0)=青等等)
  2. 下方输出结果Color Ramp这里,这里测试的时候使用HSV(六角锥)和HSL(圆锥)是一样的效果,注意线性插值改为Far,这样色相(颜色名称)就会像圆一样从Hue(0.001~0.009)循环一圈
9b814acdfcc2ce0e13dbba58eb6c868a.png
Blender七彩色运动效果https://www.zhihu.com/video/1232309824987680768

61785b8d350be9851e25ccc1b8ec2fbc.png

九、添加音乐,让方块跟着音乐一起运动(加强版)

其实到第八步就可以了,但是感觉少了点什么,对,就是音乐的伴奏。让我们方块的高低起伏(高度)跟着音乐一块走。

Blender当中默认25帧是1s,大家注意一下,你可以在Timeline这里设置(如1500就是60s一分钟)

10dcf172a928e1aef108f5cc1b12b3b3.png

【9.1】添加音乐

Shift+F8 进入Video Sequencer,添加我们的预览声音(音乐)。

cd5b6c6fc70ae84291088505dd688a2f.png

【9.2】我们变化中间方块的高度有三种方法:

  1. Wave Mesh当中Wave Modifier的 Height高度参数。
  2. 单个Wave Mesh G Z向上移动(方块就会跟着向上方增高)
  3. 设置所有方块(Cube)的Location.Z(全选除了Wave Mesh之外)

由于给所有方块添加关键帧比较麻烦,我们这里就给Wave Mesh的单个Height高度参数添加关键帧。(第一种方法)

【9.3】给Wave Modifier的Height高度参数添加关键

15dd37821050cc257224620f276dd4fc.png

【9.4】烘培音乐曲线

然后Shift+F6(或者十字加号分屏也可以的),烘培音乐曲线。

a96713166353ab8d45a736960faf3a22.png

【9.5】更改其他参数方法

  • 改速度:Wave Mesh 当中的Wave Modifier 的Speed 参数。
  • 改中间区域方块的颜色:更改蓝图当中Multiply的值Value
  • 变换底盘(四周)的颜色,A全部选中,GZ进行移动

最终结果:

f78dda9b38d28c7919a7809ac9049b69.png
Blender方块动画音乐效果https://www.zhihu.com/video/1232332915528245248

另外:我记得虚幻官方好像也有一个这个新闻,我忘了链接了,是在Unreal当中用材质球Absolute World Position实现这个效果的。

温馨小提示:忙了一天了,千万晚上也不要加班搞了。晚上的效率是极其低下的。昨天写这个,就因为那个Modifier跟Constraint让我搞了很长时间,特别不细心,效果出不来,越来越急。晚上还是以娱乐放松为主的,看看书,听听歌,弹弹琴这样不需要太费脑细胞的娱乐活动。大家,注意哦。

制作不易,如果你喜欢本文的话,麻烦您多多点赞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值