UnrealEngine蓝图进阶学习笔记(二):场景与光照

Tip:
在场景中按住alt键拖拽物体可快速复制;

在蓝图中双击连线可创建分支块,按住ctrl键拖拽可对连线进行调节移动;

角色活动场景编辑步骤:

1.将内容中的SM_GridFloor地址拖拽至场景x轴旋转90度放平,调整位置于(-2500,-2500,0)缩放放大5倍,复制99份构成地板(网格对齐值设置成500);收纳于floors文件夹;

2.拖拽玩家出生点至(0,0,500);

3.在场景中随机放置几个石块(网格对齐值改为5);

4.放置生成平行光放置于(0,0,1000),移动性改为可移,防止每次需要重构;亮度调为6.5;

5.在自带的引擎目录中搜索sky,放置(夕阳)天空盒于场景中;

天空盒默认设置中Directional Light选项选中以上平行光,天空盒光源(太阳)则移动至平行光来源的相应方向(正上方);(平行光来源位于正下方时天空盒将随之改为最暗橙红色)

勾选colors determined by sun position,天空盒光源将不随平行光源方向改变;

sun bridhtness值控制天空盒光源强度;

cloud speed、cloud opacity分别控制云层移动速度及不透明度;

zenith \horizon\cloud\overall color分别控制天空、地平线、云层及整体颜色

6.在体积类中找到lightmass 重要体积(游戏中引擎将重点渲染光照的部分),画刷大小设置为(10000,10000,5000)包裹住整个场景;

7.在光源类中拖拽天光至场景(0,0,1000)处,强度设置成1.5加强地板存在;

8.在体积类中拖拽后期处理体积至场景(0,0,1000)处,笔刷大小设置成(1,1,1)勾选“无限范围”以影响全场后处理;

在透镜设置中勾选chromatic aberration的强度和偏移选项,场景中的物体呈现出色散虚幻(譬如濒死模糊)效果;

在颜色分级设置中勾选调节白平衡色温至7000使场景偏向于冷色,勾选调节全局参数饱和度和对比度(色环数值设置成1.2);

将以上光照及后处理效果收纳于environments文件夹;
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第1张图片

9.选中石头在蓝图下拉项中转化成蓝图类放置在blueprints文件夹下,在蓝图编辑器左上角中添加点光源组件放置于(0,0,100),强度设置为10000;

在事件图表删除只剩下开始节点,右键新建Create Dynamic Material Instance(创建动态材质实例)节点,资源材质选中M_Holographic材质,将开始运行节点引脚连接于该节点;返回值引脚提升为MaterialInstance变量,

10.按住S创建序列节点,穿插于开始节点及实例节点间;

11.创建setActorRotation(设置actor旋转)节点,右键分割结构体引脚(只旋转z轴);

12.创建random Floart In Range(范围随机浮点)节点,数值在(-180,180)之间;连接至11中Z轴引脚;10中序列节点then 1引脚连接于11中首节点;(使石头按随机方向出现)

13.在左面板创建setRockRandomColor函数,右键新建getrandomcolor提升成color变量,按住s键创建序列节点穿插于函数开始节点与color变量节点之间;

14.在左边面板拖住材质实例至蓝图选择获取材质实例,脱出引脚搜索set Vector Parameter Value(设置向量参数值)节点,名字改成HolographicColor,面板中拖拽颜色资源于面板,与该节点的值引脚连接;使序列节点的then1节点连接于该节点首引脚;

15.在左边面板拖拽点光源资源至蓝图,拖拽引脚搜索新建setLightColor(设置光源颜色)节点,在序列节点中新建引脚,连接于该节点首引脚;拖拽颜色资源连接于该节点新光源引脚;
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第2张图片
16.在石头的事件图表中的序列节点新建引脚连接于setRockRandomColor函数,右键新建setTimerByFunctionName(以函数名设置定时器)节点,函数名设置成该函数名;与以上函数连接,勾选loop选项设置间隔为5;
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第3张图片

返回场景,设置石头可移动,应看到石头可随机变色;

bug:选中所有石头运用该actor后未能起效,方向和颜色均未改变,首先怀疑随机颜色函数是否引用的color类型不对;

bug修正:重新制作了上节的随机颜色宏,编译运行后随机方向和定时颜色都得到了实现,美中不足的是材质仅是底座发光不是整体发光。

创建触碰随机变色地板

1.内容夹选择地板拖拽至场景,转换为蓝图类,存放在蓝图blocks文件夹,添加组件box collition 命名为trigger;

切换成左视图取消与缩放网格对齐,将x,z方向缩放至1.55于楼板大小相等(不大于楼板);

切换成顶部视图,将y方向缩放至0.175于楼板厚度略宽,以便于检测厚度;

2.切换至事件图表,左面板拖拽主体组件至蓝图新建节点,创建两个动态材质实例并相连,第二个目标值设为1;资源材质分别设为自定义blocks和glow;调整蓝图排版;

3.创建beginoverlap(事件Actor开始重叠)及endoverlap节点(事件Actor结束重叠);分别创建IsPlayer节点(见以下过程)与之相连;
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第4张图片

创建检测碰撞是否为玩家的蓝图宏

4.打开随机颜色宏,右边面板新建IsPlayer宏;

5.创建getPlayerCharter节点,提升为变量创建=节点命名为object并连接其第二个引脚,第一个引脚与输入相连;

6.创建branch节点(或按住B单击),两节点分别于输出节点相连;首引脚于输入节点相连;

(将输入节点的引脚命名为execute则不在节点中显示名称,输出节点的then同理)

UnrealEngine蓝图进阶学习笔记(二):场景与光照_第5张图片

创建函数

7.左边面板新建函数SetMaterialInstanceParament,新建序列节点与头节点相连;

8.新建setVectorparamentValue(设置向量参数值)节点与分支节点相连,命名为lineColor;

9.左边面板拖拽生成blockMaterialInstance,连接于5中节点目标引脚,拖拽提升变量连接与setScalarParameterValue(设置标量参数值)节点目标引脚并命名为Emissive,;

10.将两个设置参数值节点的value引脚都于函数头节点相连,分别命名为Color和Emissive;

11.左边面板拖拽生成GlowMaterialInstance,新建setVectorparamentValue(设置向量参数值)节点,value引脚与函数头节点相连,value引脚与序列节点分支2相连;
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第6张图片

12.回到事件图表,拖拽函数节点与IsPlayer节点的ture引脚相连,第二个参数亮度设为10;endoverlap节点(事件Actor结束重叠)同理(第一个参数设为白色第二个参数设为0.5);
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第7张图片

13.保存测试;选中场景中所有地板,内容面板中找到该地板蓝图,场景中右键替换所有actor,删除蓝图地板;实现石头定时变色,玩家接触地板范围内变色的效果。

bug:

1).运行时蓝图编译错误:
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第8张图片
将凭空多出的参数删除修正为原蓝图内容后运行正常;

2).接触地板变色的功能未实现,排错后发现False无返回连线,修正后如图:

注:该连线仅用于测试效果,测试完毕依旧断开
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第9张图片
UnrealEngine蓝图进阶学习笔记(二):场景与光照_第10张图片

你可能感兴趣的:(虚幻,游戏)