什么是 HD2D

像素游戏是我一直觉得十分有趣的,而八方旅人那种使用精美像素风格加上光影的更是我一直想要做的。

今天特地了解了一下如何制作。

HD2D 的本质是 3D 游戏,这一点一定要知道,在 unity 中使用的是 3D 的游戏模板,2D 模板是无法制作的。至少我目前的知识不能做到。

添加 sprite

sprite 可以自己画,也可以 Top game assets - itch.io 在 itch 上面找,挺多免费的。

在 3D 游戏模板中,你添加的 sprite 都会变成 texture,所以需要先把 texture type 改成 sprite

至于 PPU 即 Pixels Per Unit 看下面的博客,其实不是特别的重要。

Unity通俗易懂的讲解PPU(Pixel Per Unit)与Camera Size_unity camera size-CSDN博客

我这里改为 32,也就是 32 个像素占据 unity 中的一格。

接着 Filter Mode 改为 Point (no filter),这里挺重要的,加上过滤器图片的效果会不一样,会变得很难看。

接着是 Compression 改为 None,也就是不做压缩,如果压缩的话,图片也会变得十分难看。

创建人物

贴图与阴影

人物使用的是 Empty。

只不过在这个 Object 上添加 Sprite Renderer,然后 sprite 选择你的图片。

这里还需要加上 Material,这是为了显示阴影,注意是还是 3D 的阴影,当然需要特殊的 shader 才能显现,普通的 material 会出现黑边。

接下来打开 debug 模式。

把新出现在 renderer 中的 cast shadows 给打开,然后把后面三个选项勾选上。

这样就能投影在地面上。

material 设置

就是简简单单创建一个 material。

我这里使用的是 URP 通用管线,现在默认创建的就是这个,所以我就直接用这个了。

把 Render Face 调成 both,这样才能两面都渲染。

默认的是只渲染一面。此时是无法使用 flip 的因为背面是不渲染的。

接着把 Alpha Clipping 给勾选上,这时候黑边不再有了。

然后把 Smoothness 调成 0,有值的话整个图片发虚,有些透明,或许是因为只是一张 sprite 的缘故吧。

另一种实现

就是在像素图改为 sprite 后,直接拖入场景也是可以的。

物理效果

加上 rigidbody 以及 collider,这就有了物理效果。

注意把 rotation 都给锁住,这样才不会出现问题。

临时效果

最后就是这样子的,这里人物显得黑了,是因为光在后面打,可以看到影子在前面。

这里是光在前面。人物是亮的。

本质

目前来看还是做 3D 游戏,只是贴图使用的是 2D 的,显得更精致。