大家好!感谢你们我昨天的第一篇文章发表后那么热情的欢迎。老实说,以前我在这里混了两年,我一直懊悔没有早点开始发这个开发日志。今天已经从你们的反馈中获得了这么多优秀反馈,所以感谢你们。

评论中有人问我关于一天和夜晚循环的事情,可能我就分享一下我怎样实现了我的。 在 Rift Tavern,游戏的核心循环很简单:你通过入口 portal 去做你的工作(大概是上午),然后返回家里(中午),在下午把客栈处理好,把客栈维护好的工作做好,然后到晚上就睡觉以重置(第二天)。

对我来说, lighting change 不仅仅是为了让游戏看起来更漂亮,我认为这确实是玩家体验的一个关键方面。他告诉了玩家他们当前游戏的哪个阶段。这就是为什么我花了很多精力来确保每个时间段都有着不同的视觉实体(每次回到城镇),这样你一走到城镇,就能看到一下你还在哪个时间段。

https://reddit.com/link/1s3ehpx/video/mratb2lmo7rg1/player:

  1. 实现:使用动画窗口
    我想要时间的流动变得自然,而不是仅仅在预设之间跳动。所以,我在 Unity 动画窗口中使用了单独的片段(动画事件)来控制上午,下午和晚上的时段。

我通过动画窗口中的事件来控制所有情况,以往需要代码来控制的,使用事件控制可能并不是最终实行方法,或许我只是想简单快速的把所有控制都集中在一个地方。通过不必点“播放”,我就能在实时看看你的看齐结果,这对小团队来说都是节省了不少时间。

https://preview.redd.it/nadvheboo7rg1.png?width=2924&format=png&auto=webp&s=ce187b6e7242926bdc474e1f8f8c79dc2ff2106e

  1. 动画关键值控制:
    以下是我在关键值中控制的内容:

  2. 方向光:光的明暗度、颜色、变换、剔影强度等。

  3. 灯光模式:雾和周围光等。
  4. 晶亮碎片:UNITY中内置的晒光的位置和强度控制。
  5. 时间特有的雾效果:(将在下一篇开发日志中详细介绍!)
  6. 其他:街道灯的强度、天空颜色的变化以及可toggle控制。

  7. 天空盒 Shader 提示
    UNITY的天空盒变动太难修改了,就自己写了一个简单的 Shader。它接受 3 个立方体(Cubemaps),将它们应用在一个球体上,并在他们之间进行线性插值(Lerp)。就设定为不需要显光,需要渲染背面了。现在,我就可以用动画窗口的时间控制单个的浮点值(_a),将天空进行变化。这真的是很简单快速的方法。

https://preview.redd.it/izcdwvouo7rg1.png?width=2072&format=png&auto=webp&s=53c0a6afef759177a8170d2179193c8318b65a4bhttps://reddit.com/link/1s3ehpx/video/4ry4gbmqo7rg1/player:

回想起来,如果我早点开始做这些了,我想是有很多有价值的反馈来帮助我。我真的需要你们的支持,让我们继续在这里分享。也请去我们的steam页面,查看更多的开发日志,感谢你们!

Steam页面:https://store.steampowered.com/app/3902150/Rift_Tavern/

PS:有人说我的上一篇文章感觉像翻译机翻译的那样,那我就给它重新编写了一篇,看看现在的感觉多好!