教程:表现强化课程 #2 利用光影

本课程将学习在 ACTION GAME MAKER 中实现各种表现方法。
第二讲将制作光与影。

课程开始前的准备工作

继续使用第一讲中使用的项目。
请打开项目并进行准备。

步骤1:尝试设置 PointLight2D

  1. 打开 game_scene 标签页,选择 ObjectRoot。
  2. 添加一个新节点 PointLight2D。此时不会有任何变化,这是因为还没有纹理。
  3. 将文件系统中的 templates > other 文件夹中的 2d_lights_and_shadows_neutral_point_light.webp 拖放到检查器窗口中 PointLight2D 的 Texture 属性上。
  4. 应该会显示白色的光源。基本上就是这样,但为了让您自由尝试,我们将解释一些常用属性:
  • Texture Scale:可以更改纹理的缩放比例。
  • Color:可以更改光源的颜色。
  • Energy:可以更改光源的亮度。数值越大,光线越强。
  1. 接下来,让我们设置阴影。请将 Shadow 下的 Enabled 属性开启。仅此即可启用阴影处理。示例中预设的瓦片和角色已默认配置为生成阴影,因此移动 PointLight2D 并靠近它们时,应该会看到阴影。
  2. 在下一步中,我们将说明如何创建阴影。

说明

关于 Texture
本教程中我们创建了一个普通的圆形光源,但您可以自由设计形状。例如,如果使用扇形纹理,就可以实现类似手电筒的光效。
纹理仅支持黑白两色,黑色部分将变为透明,因此您不妨尝试自己制作。

活用 AnimationPlayer
本次介绍的 Color、Scale、Energy 等属性均可作为 AnimationPlayer 的关键帧使用,因此可以制作出闪烁的光效等动画效果。关于 AnimationPlayer 的详细说明,请参考图形课程。

步骤2:创建用于阴影的碰撞体(LightOccluder2D)。

  1. 要生成阴影,需要单独设置用于阴影的碰撞体(LightOccluder2D)。让我们为示例对象添加一个 LightOccluder2D。
  2. 请打开 sampleobject 的 Decoration_Statue.tscn 文件。
  3. 添加 LightOccluder2D 节点。
  4. 在检查器中创建一个新的 OccluderPolygon2D。
  5. 在编辑器窗口顶部的工具栏中选择“创建点”工具,并在雕像内部创建多边形。虽然可以创建复杂的形状,但处理负担会相应增加,因此建议首先使用简单的形状。
  6. 尝试将 Decoration_Statue.tscn 放置在步骤 1 中创建的光照范围内。应该会沿着多边形的形状生成阴影。

说明

阴影效果不自然
将 OccluderPolygon2D 的 CullMode 更改为 Clockwise(顺时针)或 Counter-Clockwise(逆时针)可能会有所改善。如果点是按顺时针方向绘制的,请选择 Clockwise;如果是按逆时针方向绘制的,请选择 Counter-Clockwise。

希望阴影更精细
可以在 PointLight2D 的设置中使阴影更精细。将 Shadow 属性的 Filter 从 None (Fast) 更改为 PCF5 或 PCF13。阴影会变得模糊且更精细……但请注意,这会增加处理负担。

希望为瓦片添加阴影
如果希望为瓦片添加阴影,可以在瓦片设置(TileSet)中进行选择,并在 Rendering > Occlusion Layer 中设置瓦片的多边形。
此外,在 ACTION GAME MAKER 中,通过以自动瓦片格式导入,Occlusion Layer 会自动设置,因此对于自动瓦片无需特别设置。

步骤3:尝试使用 DirectionalLight2D

  1. 打开 game_scene 标签页,将 DirectionalLight2D 设置为 BaseLayer 的子节点。
  2. 画面会变得非常刺眼,因此请将 Energy 值降低至 0.4 左右。
  3. DirectionalLight2D 是用于模拟阳光效果的节点。将颜色调为偏蓝,可呈现夜晚或朝霞的效果;调为偏红,则可呈现晚霞般的视觉效果。
  4. 此处同样可以通过启用 Shadow 来生成交影,但默认情况下光线来自正上方。可以通过 Transform 中的 Rotation 调整角度,建议设置一个合适的角度。
  5. 关于“教程:表现强化课程 #2 使用光与影”的内容到此结束。
    接下来请查看:
    チュートリアル: 表現強化コース #3 シェーダーを使ってみよう。
1 个赞