斯坦福UE4 + C++课程学习记录 21:音频入门

目录

1. 创建声音


1. 创建声音

        首先,创建一个Audio文件夹来防放置音频相关的文件。

        我们要给魔法粒子加上音效,具体包括粒子飞行时候的音效(一个可以无限循环播放的音效)和粒子爆炸时的音效。        

        在内容浏览器中右键新建音效 -> Sound Cue,命名为MagicProjectile_Loop并打开。为了实现魔法粒子音效的循环播放,课程里选择了连续的声音Basic_ActorLocation01。在内容浏览器中找到该资源后单击选择(变为选中的黄色),然后直接回到MagicProjectile_Loop的编辑器中,右键添加声波播放器(Wave Player),勾选其“循环”选项,最后连上引脚如下:

图21-1 添加声波播放器

         随后,我们要设置该声音的衰减,即在空间中音量随距离变化的规律。右键新建音效 -> 音效衰减,命名为Att_Projectiles。出于入门教学熟悉流程的目的,我们只是创建音效衰减并维持它的默认设置。在MagicProjectile_Loop中点击“输出”节点,在衰减设置中选择刚刚创建的Att_Projectiles。

        接下来,再创建一个粒子爆炸音效MagicProjectile_Impact,使用同样的方法,按住Ctrl同时选择A_Ability_MeteorImpact01和A_Ability_MeteorImpact02两个音频,右键添加随机播放。为了使每次爆炸的效果更加随机,再添加一个“调制器”节点,这个节点可在设置的参数范围内随机增加或减少一些音高和音量,如图21-2所示。最后,同样在衰减设置中选择刚刚创建的Att_Projectiles。

图21-2 爆炸声设置

        完成后,可以直接把音频拖拽到世界中,运行测试就可以听到声音随距离变化的最终效果。

图21-3 音效衰减范围

        课程中这部分对音频的介绍十分简单,后续作业还需要我们将声音附到发射的粒子上,从而使这个声音跟随粒子的运动在空间中传播。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要绘制斯坦福兔子模型,首先需要加载模型文件。可以使用Assimp库来加载模型文件。接下来,需要使用OpenGL来渲染模型。 下面是一个简单的OpenGL C代码片段,可以绘制斯坦福兔子模型: ```c #include <GL/gl.h> #include <GL/glut.h> #include <stdio.h> #include <stdlib.h> #include <math.h> #include <string.h> #include <assimp/cimport.h> #include <assimp/scene.h> #include <assimp/postprocess.h> void display() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // 绘制斯坦福兔子模型 glPushMatrix(); glColor3f(1.0, 1.0, 1.0); glScalef(0.02, 0.02, 0.02); glTranslatef(-20.0, -10.0, 0.0); glRotatef(-90.0, 1.0, 0.0, 0.0); aiVector3D zero(0.0f, 0.0f, 0.0f); const aiScene* scene = aiImportFile("bunny.obj", aiProcessPreset_TargetRealtime_MaxQuality); aiMesh* mesh = scene->mMeshes[0]; glBegin(GL_TRIANGLES); for (GLuint i = 0; i < mesh->mNumFaces; i++) { const aiFace& face = mesh->mFaces[i]; for (GLuint j = 0; j < 3; j++) { aiVector3D pos = mesh->mVertices[face.mIndices[j]]; glVertex3f(pos.x, pos.y, pos.z); } } glEnd(); aiReleaseImport(scene); glPopMatrix(); glutSwapBuffers(); } void init() { glClearColor(0.0, 0.0, 0.0, 0.0); glEnable(GL_DEPTH_TEST); } int main(int argc, char** argv) { glutInit(&argc, argv); glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(640, 480); glutCreateWindow("Stanford Bunny"); init(); glutDisplayFunc(display); glutMainLoop(); return 0; } ``` 其中,bunny.obj是斯坦福兔子模型的模型文件,需要放在代码所在目录或指定路径下。在display函数中,通过Assimp库加载模型文件,并使用OpenGL绘制模型。需要注意的是,需要设置适当的缩放、平移和旋转来调整模型的位置和大小。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Surkea

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值