创建一个带有灯光的密室案例

一、创建关卡

1. 新建 New Level , 选择 Empty Level,创建一个 Geometrey (几何) 形状的 Box,命名为Grand,设置其位置为(x=0,y=0,z=0),设置其大小Brush Settings为(X:1000,Y:5000,Z:20)。
2. 查看顶视图(TOP),查看Box中心点是否居于顶视图的原点;查看左侧视图(Left),将Grand的上顶边与水平中心线对齐,也就是设置位置z=-10。
3. 选择不带光照模式查看效果。
4. 按住Alt 拖动地面,复制出天花板;再次复制形成四个墙面,调整墙面的位置和大小,形成封闭的密室。需要注意的是墙面交叉会出现贴图闪烁,所以尽量让墙面正好对齐。
5. 设置墙面、地面和天花板的贴图为M_Brick_Clay_Old,并设置墙面的缩放比例为U=4,V=4,同时设置墙面材质的旋转角度,使得墙面材质更符合正常方向。
6. 带光照视图中,拖动一个点光源,设置intensity(强度)为1000,设置一下灯光颜色暗一些。把灯光复制几份,放好位置。
7. 选择所有点光源,设置属性为静态的,重新构建一下,这样,点光源就不会对人物造成影响,例如反光之类。
8. 放置 Player Start(玩家起点)。

PS:可以将之前创作的感应石门蓝图类拖动一个对象放置在本关卡里做为场景的一部分。

二、创建壁灯

1. 新建蓝图类BP_Light,继承Actor。
2. 双击蓝图类BP_Light,添加新场景Root,替换掉默认场景DefaultSceneRoot,可以通过细节->Rendering->Editer Billboard Scale的来设置蓝图中原点的大小。
3. 添加壁灯。
组件中添加Static Mesh (静态网格),命名为LightMesh,选择Static Mesh为开发者教程案例中的SM_Lamp_Wall,材料为默认的M_lamp。
4. 添加点光源
组件中添加Point Light(点光源),命名为PointLight,设置细节->Light->Intensity(强度)为500,并设置一个合适的颜色。
5. 将BP_Light对象放置在场景中,通过实际场景调整点光源的位置。
6. 在场景中添加多个壁灯。

PS:也可以在场景中创建Static Mesh,然后添加点光源,选中两个物体,选择蓝图,转换物体为蓝图类。

三、设置函数开关壁灯

1. 打开BP_Light蓝图类,添加函数,命名为:设置壁灯开关,在细节中,添加一个布尔型的输入值,命名为Enable,编译并双击进入函数编辑器。
2. 把组件中的Point Light拖动到函数中进行获得,从Point Light中引出Set Visibility节点,并与设置壁灯开关节点相连,Enable属性赋值给New Visibility属性(设置开关)。
3. 在关卡蓝图中,点击某个BP_Light,从中引出设置壁灯开关的函数,并设置键盘K进行触发测试。

四、场景中壁灯的开启与关闭。

在游戏开始时调用函数,将所有灯关闭,实现当玩家进入触发点时,灯光依次打开(左右墙两两一对儿,按0.5秒延迟依次打开)。

五、通过鼠标和射线控制

目的是通过用户控制的角色通过注视物体并点击鼠标左键开启粒子和光线等效果。

1. 创建蓝图类BP_Statue,继承Actor。

2. 为BP_Statue添加组件
a. 替换默认Scene,命名为Root。
b. 添加Static Mesh,默认命名,Static Mesh选择为初学者案例中的SM_Lamp_Ceiling并调整位置。
c. 添加Static Mesh,命名为BaseStatue,Static Mesh选择为SM_Statue并调整位置。
d. 添加ParicleSystem(粒子),默认命名,Particles->Template选择为P_Sparks,关闭效果,调整位置。
e. 添加TextRender(三维文字),默认命名,Text->Text:You Win,Text->Horizontal Alignment:Center,Text Render Color:黄色,调整位置。
f. 添加SpotLight,默认命名,颜色选择紫色,旋转Y=-90°,关闭效果,调整位置。

3. 为BP_Statue添加控制函数
a. 添加蓝图类变量IsActive,布尔型,默认值为false。
b. 添加函数命名为:设置效果启动,添加函数参数变量IsActive,布尔型。
c. 当函数启动时,设置蓝图类变量IsActive的值为函数的参数变量IsActive。

创建一个带有灯光的密室案例

4. 添加事件效果
a. 添加分支,条件为蓝图类变量IsActive。
b. 当条件为真时,添加序列。序列一:设置文字每秒180°沿Z轴旋转;序列二:设置Spot Light和Particle System的Set Visibility节点的NewVisibility为真(启动光和粒子效果)。
c. 当条件为假时,设置Spot Light和Particle System的Set Visibility节点的NewVisibility为假(关闭光和粒子效果)。

创建一个带有灯光的密室案例

5. 拖动BP_Statue的对象到场景中,可以在关卡蓝图中,按键R绑定IsActive为False的该对象的【设置效果启动】函数,按键T绑定IsAcive为True的【设置效果启动】函数,进行测试。

创建一个带有灯光的密室案例

6. 添加左键点击事件和射线碰触
a. 找到玩家角色蓝图类ThirdPersonCharacter(不同的版本名称和文件位置不一致),双击打开进入编辑器。找到蓝图类的Skeletal Mesh,双击进入骨骼编辑器。
b. 从左上角 骨架>网格物体>动画 的导航中选择 【骨架】,并从骨架树中找到名称为【head】的头部骨架。在head上点击右键,add socket(添加子端点),命名为head_socket,并调整位置,使其居于眼前眉心的位置。PS:主要作为射线的起始点。
c. 打开ThirdPersonCharacter的事件图表,增加鼠标左键发射射线的功能,发射射线的节点为LineTraceByChannel,Start起始点,End为终点,设置当该射线碰触到BP_Statue类对象后触发效果。

创建一个带有灯光的密室案例

六. 添加音效

1. 为场景添加音效。
选择初学者文件夹StarterContent->Audio->Starter_Music_Cue拖动到场景任意位置中。

2. 为粒子效果添加音效。
a. 打开BP_Statue蓝图类,在组件中添加Audio,命名为Audio_Statue,Sound选择Fire_Sparks01_Cue,Auto Activate选择false,默认不播放。
b. 在蓝图类事件图表中,增加Audio_Statue的是否播放的判断,使用Set Active节点设置是否播放。

3. 为感应石门的火焰添加音效。


版权声明:本文为CSDN博主「幽冥丶虾米」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_14930205/article/details/78573531

最新文章