这是在在Unity Japan(youtube)上税村分享的一篇关于七大罪NPR图形技术的文章.
第一次翻译日文的技术文章有错误的地方请在评论区留言,会尽快改正.
原视频地址:https://www.youtube.com/watch?v=8iKWEYvozws&list=PLsOevMLfQeu1AOxUm-XDOYIJKV1hVhzcN&index=9&t=0s
直接进入主题.
项目为了能在游戏中完完全全表现动画中的感觉,制作了各种各样的剧情和出场表现剪辑,以及剪辑之间loadin的加载图片.
当时项目面临着两个挑战,竞争力和生产效率:
如何定义项目的竞争力?
通过游戏的各种细节来表现原生动画中的感觉.
如何定义生产效率呢?
剔除低效率的元素,不断尝试及验证让游戏更加有意思.
技术介绍总览:
-Design R&D(Character Rendering)
-Normal Shift(Face)
-EyeBrow Rendering
-Character FX
-Changing BG Colour(Color Grading, LUT)
-2D Polygonal Imposters for 3D Crowds
-Design R&D(Character Rendering):
角色的渲染为重中之重,只有角色渲染做好了,游戏整体的渲染品质才能得到保证,所以开始的时候进行了各种尝试.
开始我们认为丰富的细节能带来更好的渲染效果,所以使用了normalmap.但是如上图,虽然细节多了但是并不是我们想要的渲染效果而且还多了不必要的贴图采样.
后来我们参考了大量的动画做了很多角色的渲染尝试.
1,根据动画来制作高精度模型.
2,强调动画的线条感.
3,有意的调整模型比例.
之后我们舍弃了使用nomral的渲染方法,而使用了cartoon渲染,简化阴影并且强调了线条的感觉,UV按照重要和不重要的部分进行分块,让UV得到更加有效的利用.
老版本的角色光照:
1,根据观察角度的不同会产生很多不自然的阴影(对于NPR渲染显得"不自然").
2,场景灯光照明方向不可以改变.
动画中的光照参考:
1,不现实的阴影设定.(没有根据正常的场景光照计算阴影)
2,相对于物理的合理来说,情感的表达更加重要.
因此我们放弃了之前使用的shader(左边的),可变参数是非常多的,诸如颜色,镜面反射,等等.美术人员需要针对每个角色调整所有参数来得到最终的效果,这是非常低效的.而且每次需要添加其他追加效果的时候也会比较麻烦.
但是使用matcap的话,可以让参数变得非常简单.而且通过绘制圆形的matcap贴图可以让美术人员更加直观地绘制出想要的效果.
同时我们还为模型制作软件(3DmaxHLSL)提供了相同的着色器,可以不用导入引擎就能检查渲染效果.
使用matcap产生和灯光方向无关的照明方向.
场景中使用的Global Lighting的颜色也附加到角色上,让角色更好的融入场景.
-Normal Shift(Face):
当游戏角色朝前看的时候脸部会产生一些不必要的阴影(上左),右边动画里鼻子,嘴巴周围则是没有阴影,只是简单的用一些线段表示.
因此我们使用了顶点色的alpha通道来控制normal的朝向,当alpha=0的时候把normal方向修改成面向摄像机的方向,还用通过其来改变outline的宽度.
上图右边为使用顶点色修正以后的着色效果.
-EyeBrow Rendering:
之前我们并不是非常在意眉毛的表现,但是对于动漫角色来说眉毛是非常能够表现人物个性的重要因素,如果眉毛被头发遮挡就无法很好的表现角色,所以我们决定让眉毛显示在头发之上.
使用了深度测试 Greater Equal.(默认是 less Equal)
叠在头发之上的眉毛具有透明度.
以上是眉毛的绘制顺序.
经过各种各样的调整之后,最终呈现了上图中的角色渲染效果.
-Character FX:
游戏中角色战斗时可能会有各种debuff,如果替换不同shader来给角色做效果的话,无疑是个巨大的开销.因此直接利用原来的shader进行调整无疑是最方便也是最高效的,matcap就很容易办得到这一点.
1,替换matcap Texture.2,使用additive & multiply等叠加模式.3,改变ouitline的色相. 这样的话无论是冰冻,火焰,石化都能很好的表现.
过场动画中,有时候角色需要受首位灯光影响的效果.我们并没有用一盏灯光去表现.而是通过添加额外的matcap texture,让角色有受光的感觉.
使用unity自带的shader并无法让我们的美术人员制作出想要的效果,所以我们制作了许多各种各样的特效shader以及脚本组件.
未完待续,下篇会介绍场景的一些特殊处理方法,角色表情动画的技术,角色3D转换2D以及AI行为树逻辑.
收藏的话,来个赞吧,翻译不易 :)
交流群:672571935
来源:oschina
链接:https://my.oschina.net/u/4269669/blog/4404635