如何用Unity实现更高品质效果图的美术效果

给我们留言
地址:福建省晋江市青阳街道洪山路国际工业设计园纳金网
电话: 400-067-3919
(周一到周五, 周六周日休息)
设计师入口
查看: 5318|回复: 6
最后登录注册时间阅读权限90积分32973
资深设计师, 积分 32973, 距离下一级还需 17027 积分
纳金币32806 精华12
unity做的翻书效果?这个是美术实现还是代码完成?
最后登录注册时间阅读权限100积分71880
纳金币59389 精华23
翻页动作与模型从3dsmax 或是Maya制作,导入后用代码控制翻页
最后登录注册时间阅读权限90积分28981
资深设计师, 积分 28981, 距离下一级还需 21019 积分
纳金币30927 精华3
最后登录注册时间阅读权限10积分68
设计初学者, 积分 68, 距离下一级还需 32 积分
纳金币27 精华0
unity3d 翻书效果 http://cl314413./blog/static//
最后登录注册时间阅读权限100积分71880
纳金币59389 精华23
原帖由&&cl314413&&于
10:35 发表:
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & unity3d 翻书效果 http://cl314413./blog/static//
& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &
-----------------------------------------------------
不错的效果,感谢分享!
最后登录注册时间阅读权限90积分32161
资深设计师, 积分 32161, 距离下一级还需 17839 积分
纳金币33407 精华83
还有一个插件可以做到 - 3d flipping book
最后登录注册时间阅读权限90积分23575
资深设计师, 积分 23575, 距离下一级还需 26425 积分
纳金币20074 精华62
3d flipping book这个demo看起来很不错啊
活跃且尽责职守的版主
站长推荐 /1
纳金名模第151期地毯3d模型:数量100个,大小为2.15GB。完全免费下载哦!这样的福利我和我的小伙伴们都惊呆了!!下载地址:
Powered by - X2.5
Narkii Inc.UGUI运用美术字体
UGUI运用美术字体
在游戏的制作中,美术字的运用是美化游戏的常用手段。比如普攻,暴击打出的战斗飘字就常常利用不同的美术字来做出区别。那么在Unity中如何把美术字运用起来呢?且看下文:
1、道具准备。
BMFont:位图字体制作工具。这是我收藏的一个,下载地址:
安装好之后,打开位图字体制作工具,长这样的:
菜单栏上单击 Edit -& Open Image Manager
打开之后长这样的:
再单击 Image -& Import image,把你要做成位图字体的图片依次导入进来。
注意下这个:
这个Id填的是你导入数字的ASCII,我导入的是 数字 “0” 所以我填48。
每当你成功导入一个数字,在背后的字符面板相应数字框的右下角都会有一个亮起的小点点。
或许你像我一样很懒,觉得这样导入好累好蠢。那你可以马上把这软件关了,然后打开 位图制作工具的安装目录并找到名为:bmfont.bmfc 的文件
用你喜欢的文本编辑器打开它。打开后它是长这样的:
细心的你肯定发现了最后一行的内容,这记录了我刚才导入的数字图片的位置,和一些信息。之后你就会 Ctrl + C,Ctrl+V,。。。,。。。,。。。Ctrl + S,然后这个文件就长这样了:(别问我为什么只弄了两个,懒)
在打开工具你就会发现
这两个数字已经被成功导入了。(别问为什么,反正偷懒的目的达到了就行)
到此,我需要的 0,1,2数字都已经完全导入,接下来就是要导出。
导出之前先要设置一些参数
设置完了之后:
给好名字后将得到两个文件:
这样我们的位图字体就制作完成了。接下来让我们把这位图字体运用到UGUI的Text控件里去。
2、应用位图字体
把刚才得到的两个文件导入到unity合适的目录中。
先在Unity里创建一个自定义字体MyFont,和一个空的材质球MyFont,材质球的shader用UI/Default Font。
只要我们把MyFont里的Default Material 和 Character Rects 用上我们刚制作好的字体信息即可。下面写代码验证:
using UnityEngine
using System.Collections.Generic
using UnityEditor
using System.IO
using System.Xml
public class BMFont {
[MenuItem("Tools/Font")]
static void Font()
Material mtr = Resources.Load&Material&("Fonts/MyFont")
Texture2D texture = Resources.Load&Texture2D&("Fonts/MyFont_0")
mtr.SetTexture(0, texture)
Font font = Resources.Load&Font&("Fonts/MyFont")
XmlDocument xml = new XmlDocument()
xml.Load(Application.dataPath + "/Resources/Fonts/MyFont.fnt")
List&CharacterInfo& chtInfoList = new List&CharacterInfo&()
XmlNode node = xml.SelectSingleNode("font/chars")
foreach (XmlNode nd in node.ChildNodes)
XmlElement xe = (XmlElement)nd
int x = int.Parse(xe.GetAttribute("x"))
int y = int.Parse(xe.GetAttribute("y"))
int width = int.Parse(xe.GetAttribute("width"))
int height = int.Parse(xe.GetAttribute("height"))
int advance = int.Parse(xe.GetAttribute("xadvance"))
CharacterInfo chtInfo = new CharacterInfo()
float texWidth = texture.width
float texHeight = texture.width
chtInfo.glyphHeight = texture.height
chtInfo.glyphWidth = texture.width
chtInfo.index = int.Parse(xe.GetAttribute("id"))
//这里注意下UV坐标系和从BMFont里得到的信息的坐标系是不一样的哦,前者左下角为(0,0),
//右上角为(1,1)。而后者则是左上角上角为(0,0),右下角为(图宽,图高)
chtInfo.uvTopLeft = new Vector2((float)x / texture.width, 1 - (float)y / texture.height)
chtInfo.uvTopRight = new Vector2((float)(x + width) / texture.width, 1 - (float)y / texture.height)
chtInfo.uvBottomLeft = new Vector2((float)x / texture.width,1 - (float)(y + height) / texture.height)
chtInfo.uvBottomRight = new Vector2((float)(x + width) / texture.width,1 - (float)(y + height) / texture.height)
chtInfo.minX = 0
chtInfo.minY = -height
chtInfo.maxX = width
chtInfo.maxY = 0
chtInfo.advance = advance
chtInfoList.Add(chtInfo)
font.characterInfo = chtInfoList.ToArray()
AssetDatabase.Refresh()
好的,代码写好了,就可以到Unity里验证了(以上代码仅是验证代码,请捡而用之)。切回Unity,点击 Tools/Font
再看看我们刚创建的材质球
说明图片已给上。和字体MyFont
MyFont的Character Rects信息也有了,再把材质球拖到MyFont的Default Material中
到此,一切就准备就绪了,激动时刻到来了。在Hierarchy里创建一个Text控件
并把MyFont拖到Text的Font中
修改文本为 0~2的数字(因为就只做了0,1,2),并把Text的颜色值调到最左上角,效果出现了
完了!!!!
(接下来研究研究BMFont的使用命令行来制作字体,这样就可以完全自动化了,充分解放本人的懒惰基因。有成果了放出来)
unity测试版本:5.3.0f4
看过本文的人也看了:
我要留言技术领域:
取消收藏确定要取消收藏吗?
删除图谱提示你保存在该图谱下的知识内容也会被删除,建议你先将内容移到其他图谱中。你确定要删除知识图谱及其内容吗?
删除节点提示无法删除该知识节点,因该节点下仍保存有相关知识内容!
删除节点提示你确定要删除该知识节点吗?如何用Unity实现更高品质的美术效果?|课堂笔记 - 推酷
如何用Unity实现更高品质的美术效果?|课堂笔记
据统计,全球前1000款最卖座的手机游戏中,约三分之一的游戏都是使用Unity软件制作而成,其中就包括最近十分火爆的《Pok&mon Go》游戏。
而它和Epic Games公司旗下的虚幻引擎(Unreal Engine)也构成了业界两大领先的引擎。虽然目前国内大厂开始在自研引擎领域试水,但对于大部分团队而言,这两种引擎对于项目开发将是必不可少的工具之一。那么,游戏开发者该如何选择引擎打造高品质游戏画面?
7月21日,第五期葡萄学院「如何选择引擎打造高品质游戏画面?」圆满完成。 前《永恒之塔》技术总监鲁栋振虽然是一名韩国开发者,去年刚刚来到中国,但是它作为本期学院的导师,依然进行了详尽的中文分享 ,并回答了同学们的疑问。
以下内容是第五期葡萄学院的精华内容,经葡萄君整理发布。
PS:本次公开的内容并非我们课堂内容的全部,如果您对葡萄课堂的内容感兴趣,不妨关注我们的下一期内容。当然如果您想成为老师,分享您的内容,我们也非常欢迎~╰(*&▽&*)╯不管您想成为学员还是老师,请添加 游戏葡萄君 (微信号: gamegrapes )为好友,快来加入吧~
大家好,我叫Eugene Rho,中文名鲁栋振。今天准备分享下我在移动游戏开发中的经验。
最先分享的是为什么我选择了Unity引擎,而不使用虚幻引擎?
我想在移动设备上开发高品质的游戏,但是在移动设备上会遇到这样的问题:
但是移动设备会有很多硬件的限制,虚幻引擎虽然画面很好,但是只能在opengl 3.0以上比较好的展示,无法兼容中国更多的安卓手机,而Unity引擎在移动设备上相差不多。
虚幻引擎在很多安卓手机会是这样的画面:
但是我希望Unity也能开发出更好看的画面。所以,我在Unity基础上,采用虚幻引擎的渲染方式,二次开发:
这是虚幻引擎在高配置手机上出来的HDR效果:
它的实现原理是这样的:
这是虚幻引擎用来实现更好看画面的、像素保存的方式。我框起来的深度值,会决定平时游戏制作中,景深还有影子,雾等方面的表现。
一般的颜色是0-255,但是如果想保存高光效果,就必须使用32bit float color render target。使用它需要消耗很多内存,这个时候就容易导致游戏闪退,还会memory bandwidth开销提高,所以很多高品质的手机单机游戏,只能在iOS苹果手机上运行。如果硬件配置不够,则无法显示HDR效果。
但是,我又想在低配置手机上,实现HDR效果,所以我采用了这样的办法:
我们不使用float color render target 的方式,高光的颜色信息收集到alpha channel。
高光部分的信息消失,但是高光Luminance会保存到alpha channel。我们可以不使用float RT,还是用byte RT,可保存高光lumimance信息。使用这个信息,通过bloom技术能实现HDR效果。
左边是没有HDR,右边是使用这个技法实现的HDR。这个技法比正式的HDR性能很高。因为不使用float RT. 不需要多内存和多memory bandwidth。
左边是在alpha channel保存的Luminance信息。这个问题的缺点是不能保存有颜色的高光。因为只能保存高光的Luminance,不保存高光颜色。不过可以实现很亮的白色,不能实现很亮的红色。
但还有一个优点是,除了计算灯光出来的HDR,它还能表现跟灯光没有关系的特效bloom。还有其他优点,如下图:
然后我没有采用Unity的bloom效果,而是自己改造了渲染引擎的bloom效果,按着已经收到的luminance信息,使用该找的bloom shader,实现了最后的结果。
除了HDR,使用LUMINANCE,还可以别的效果,正在开发按着每个配置上出现的效果不同的系统,然后,我们在最好的手机上可以实现这个效果。
最后一个是场景。但是考虑到中国环境,有些高品质的材质贴图还是得换成512。
1.提个问题,alpha通道才8位,怎么放HDR也就是大于255的亮度值?
我本来也考虑使用正式的HDR。在电脑上使用过,在手机上也实现过。这其中我发现了一个点,高光的像素一般不超512,float值的话就是不超2。当然有超的很高亮的部分,我发现了这样的部分很小,决定忽略这点。
所以在alpha channel上保存的luminance是超1到2的值。超2的像素是保存为2,这也算是一个缺点。不能表现超量的效果,这个可以调整。如果一个场景上不要1~2的luminance可以使用1~3的范围,这个不用固定的范围。
2.游戏开发中美术对游戏性能把控的一个度怎么去衡量?往往游戏中会遇到性能问题,而不得不妥协然后降低美术效果。
韩国很重视画面效果,所以开始不考虑性能,先做出好看的画面,再考虑如何优化。我对中国公司还了解的不多,但是我知道网易开发的质量也非常高。所以,我想我在中国大概要理解中国的需求和韩国的需求。我现在的方式是,按照目前团队的需求,在这个范围内做出更好看的画面。
Unity比虚幻引擎更需要图形渲染优化技术,因为Unity引擎的渲染目前不如虚幻引擎, 一个好的角色,是由模型面数,贴图质量,材质系统和渲染系统,还有特效共同打造 。模型面数和贴图质量主要是看美术从业者素质,材质系统和渲染主要是看程序员。
特效的话其实韩国也很缺高质量的从业者。每个引擎都一样,哪怕是自己研发的引擎,也还是需要自己开发渲染工艺。我也经常参考虚幻4他们是如何做出好的画面,比如会看Shader一些源代码。
3.市面上的Unity引擎做出来的游戏的画面,感觉很粗糙,相比于九阴真经这种用自己引擎的游戏,如果是2d游戏的话选择COCOS2d是不是更好呢,能具体说下优劣吗?
很抱歉,我的游戏开发生涯没有接触过2D游戏引擎,无法回答,我一直是3D游戏开发。
4.次世代手游的贴图能做哪些优化来降低贴图容量大小同时保证视觉效果?
这其实是很困难的,一个游戏包体大部分是贴图大小,不完全是美术从业者,程序也很重要。我也在尝试有没有好办法,目前还没完全开发完,所以尝试中的技术,不方便公开。
Unity引擎一个缺点是,不支持PNG或JPG发布。虽然提供Texture2D.LoadImage().. 可以使用这个函数,使用 jpg 文件,但是这个方式也有限制。这个函数只能生成uncompressed 贴图,它占很大的内存。我们正在考虑开发发布jpg文件,开发native library,自己 encode to ETC.. 使用NEON architecture. 然后使用生成compressed贴图。
目前基本的功能已经开发完测试了,但是还是缺少足够的开发人员,在深圳招人很不容易,大家都去腾讯了。我也特别希望能有人和我一起做这方面开发的尝试。
我觉得这个办法可以保证视觉效果不降低,然后又可以优化贴图,但是自己一个人开发过来,所以暂时说的这个办法,没有完全验证。
5.在unreal引擎下怎么根据设计的要求?比如同屏要求多少主角、敌人、场景等计算同屏的模型数上限?
这个问题没有标准答案, 模型面数其实不是最重要的问题,还得根据游戏类型决定。 我们自己的游戏就是一万多面的回合制。我们只有一个Boss,所以可以设置一万多面,一百多骨骼,但是我觉得没有参考意义。比面数更重要的是Drawcall,这个要控制在200以下,面数8万和10万的时候,差不了太多。但是Drawcall很重要,最好控制同屏200以下。
6.美术对于美术专业工具的使用会更专业,而程序在通过评估引擎和实际情况后,可能不去使用美术之前选择的或者他们擅长的美术工具,这种情况下如何平衡?
这个问题可能得大家一起讨论,比如团队中的程序是否愿意为美术开发专门的工具。我之前和现在的团队,都会为美术尽可能的开发一些工具,为了方便他们高效的工作。我自己特别想做出好看的画面,所以, 我建议最好是双方去平衡下开发效率,决定工具使用情况,没有什么对错,只有是不是适合自己团队。 我现在来到中国,为美术专门开发的其实也很少,因为程序开发任务很重。
7.1个角色算上各种挂件(披风、护臂、武器等),有近5k面,100多根骨骼,挂件有自己独立的动画,总共6个以上skinmeshrender。这种标准在手机上超了吗?
是BOSS可以,是NPC就超了。偶尔出现1,2个可以,如果都这样就会很卡吧,主角如果只有一个的话应该还可以。我没有这样使用,而是在U3D上,使用自己改造的渲染Paran工具,并不是把U3D和虚幻结合一起用,如果开发VR,我可能会选择虚幻(不过也还没超过Unity);如果是开发手机游戏,短时间不会选择Unity。
8.MMO中每个玩家都可能达到这种标准,请问鲁老师是怎么平衡的呢?
很难,这样的角色只能有1-2个,多了超标。
9.很多游戏中是不使用normal map 而是使用直接模型,但那样有很多面数,如果权衡的话是用高面数实现还是使用贴图实现?
我现在开发的使用的是Normal map。
10.请问美术人员在游戏引擎中制作材质设定的时候,引擎的节点多以程序语言表现出来, 那么美术人员该如何做能更好的理解这些节点所表达的含义以及使用这些节点进行材质编辑?
Shader优化是程序,程序制作局部的部件,并且给美术人员一定的限制,为了保证效率,美术人员负责组合使用这些部件。
Unity有这样的插件,可以自己调整,不用自己写代码,但是不好用。我们不使用Unity4了,Unity5的效果更好。如果需要更好的静态展示,得多和美术沟通,程序和美术要一起合作,但是Unity4的渲染效果更差。
11.请问鲁老师能分享unity4制作次时代静态展示模型的一些心得吗?好多游戏在创建角色场景会使用高模提取法线,再用低模实现高光效果,我尝试下,总是有很强的塑料感。
主要是shader灯光和材质导致,皮肤效果需要分散效果。
12.U5新的烘培很慢不好用,有啥解法呢?
我们也很辛苦,Unity5不支持多台烘培,只能买好机器了,或者期待官方更快的开发完这个功能。
13.U3D自带的pbr效率不高样。老师在用么?
自己改造用,不用官方的,很费效率。
14.如果做成VR项目,与普通次时代项目具体区别需要注意一些什么?
我还没有资源开发VR,你要支持我吗?
15.之前看过你分享的Micro Shader + Node Class Hierarchy材质系统,能给解释一下么?能多介绍点实现细节么?
是说这个吗?
本来一个Shader是一个整体。我现在开发的Shader,美术根据自己想要的效果,在我的shader里去挑选对应效果,然后MIX到一起。虽然Unity的 #pragma shader_feature 或者 multicompile 很方便,但这两个功能有数量限制,所以我自己开发了这样的系统。而且开发过uber shader方式的系统,这个也有限制。所以这次开发了新的方式的系统。
16.这套材质系统是在运行时自动适配的吧?
材质系统不是自动适配,材质系统是editor time时MIX出来,美术从业者在开发游戏时候会使用得到,它也是程序员为了做出更好的画面和效果而开发的系统。
我听说中国很多团队都不太重视这个系统。但是对于做出很好的游戏画面和品质,很有帮助,美术开发人员需要这个,才能做出好品质的模型。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致Unity3D 游戏源码《魔方》实现完整源码下载 - Unity3d技术 - 泰课在线 - 国内专业的Unity在线学习平台|Unity3d培训|Unity教程|Unity教程 Unreal 虚幻 AR|移动开发|美术CG|UI平面设计|前端开发 - Powered By EduSoho}

我要回帖

更多关于 高品质的美术高考 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信