unity 游戏unity画面效果偏移,出现空白部分

在Unity中对与Material的Tilling和offset属性,其中Tilling指嘚是x或者y方向的缩放系数,其大小等于1/总帧数offset为动画的每一帧的偏移量,其基础大小也是1/总帧数但是每一帧的偏移量为一个变化的数,从0开始计算第一帧为0*offset,第二帧为1*/ys5773477/article/details/

本篇教程为基础篇针对U3D入门新手,讲解粒子系统播放序列图的一种实现方法随着基础教程的知识點的慢慢积累,以后将逐步展开进阶篇项目实战篇,终极篇的讲解也会在以后陆续发布AE特效篇,maya特效篇中间也会穿插一些aemaya结合应鼡实力请看官们多多关注。

第一步:翅膀素材可自行百度搜索或手绘,可根据项目或个人喜好取材这里取一个卡通翅膀作为案例素材,希望能起到抛砖引玉的作用

第二步:打开PS,扣除黑色背景只留下翅膀,这一步也可AE处理但考虑到新手朋友对PS远比AE熟悉,就尽量鼡大家熟悉的软件去处理这些工作如果对AE有一定的基础的同学,可在AE中处理可逃过这一步。

  此时选中的是黑色背景按Ctrl+Shift+i,反选所选区域得到翅膀的选区,Ctrl+J把选区做到新层里,隐藏或删除原始图层皆可最后输出为png格式即可。

第三步:打开AE,导入翅膀素材制作翅膀的叧一半。

  新建300X300合成导入翅膀素材拖拽到合成窗口里,调整位置Ctrl+D,复制一个翅膀层按S快捷键,调出缩放属性取消前面小锁链标志,複制的翅膀图层X轴向设置负数沿着Y轴向镜像,然后再勾选上小锁链得下图

第四步:处理翅膀的光感,添加特效滤镜调节出所需色彩效果。如下图

Unmult这个是一个特效插件扣黑作用,网上可搜索到下载之后复制到AE***文件中的插件目录下即可

第五步:调整翅膀层的旋转軸中心点

  调节简单的动画,只需要给翅膀做旋转即可即给旋转属性K关键帧,在做这一步骤之前需要做的一个操作就是把图层的中心旋轉轴设置在翅膀下图位置,按快捷键Y可移动中心轴的位置。

第六步:K帧旋转动画让翅膀挥动起来

 1、选中两个图层,按快捷键R调出旋轉属性,点击属性前面的码表形状的关键帧记录器只有在激活状态,操作的数值变化才会被记录下来合成设置的是8帧,CTRL+K快捷键可设置匼成相关属性

2、下图关键帧设置在-1010两个极端值之间变化,轻微的翅膀挥动动画

第一层左翅膀2”这个层的属性数值从左到右100-10010

第二层左翅膀2”这个层的属性数值从左到右-100100-10

这样做出的效果首尾数值相同,得到一个循环的效果


第七步:调节好关键帧之後,可以输出序列图了在你的合成窗口,按Ctrl+M调出渲染队列橙***字体三个设置项最佳设置无需改动,输出组件如下图设置格式为PNG序列,通道选择RGB+Alpha,点击确定

第八步:渲染队列里的输出到就是储存序列的位置指定到你自己创建的文件夹里即可。设置好之后点击渲染列队里最右边的渲染按钮,等待渲染输出

第九步:输出得到的渲染图是一组序列,8张图大小300x300

第十步:打开PS新建文件大小,因为要做2X4的图方便位置能整齐的摆放,暂先设置高6001200大小尺寸图,最终大小在后面的输出里调节。

第十一步:为了能更精確的摆放位置有个小技巧教给大家,PS里有一个切片工具下图所示。

弹出一个对话框设置划分的参数,参数如下图得到2x4标准切割位置参考线。

第十二步:选中输出的序列图从第一张图选中,按shift加选最后一张图拖拽到ps里,此时出现第一张图按V进入移动模式,移动箌第一个格子里移动好位置,匹配到切割线回车,然后第二张图自动导入同上依次调整好八张图,得到下图效果

第十三步:清除切线参考,否则输出的又会是八张图切割的作用就是把整图切割成小图,这里只是小技巧借用这个切割线得到分配的位置参考线做好の后还是要清理掉切割效果的,在视窗里清除切片

第十四步:储存格式并且修改大小,ps文件储存为Web所用格式,设置里根据项目对资源嘚需求修改图像大小如果是个人练习图可大一点,相对会清晰很多如果项目需要压缩节省资源,可设置大小变小一点会损失一些unity画媔效果效果,自己衡量找到一个平衡点这里不多赘述。注意的参数下图也已经标出PNG格式,大小设置和输出后文件大小都在红框里

第┿五步:下面要做到Unity3d里面,打开U3D创建一个粒子系统命名为“par_chibang”

第十六步:在你项目目录里创建一个新材质,一般我在工程目录里创建的材质文件夹名为Materials在里面创建一个材质球,自己命名我命名mat_chibang。把这个材质直接拖拽给刚才创建的粒子系统上即可就给这个粒子系統赋予了这个材质,材质的设置稍后配图讲解

第十七步:设置粒子属性,下面截图参考如果对粒子系统各属性不是很了解,日后我会貼出一个新帖子专门讲解粒子属性,以及实操项目中遇到的问题和一些小技巧下面把修改过的参数属性截图贴上来。

上步骤基本粒子屬性不再多赘述,下面关于配合材质需要专门图文讲解下,此时把之前做的2x4组合图的翅膀图复制到U3D项目工程里可建立文件夹名为Tex存放图贴,给材质上图贴方法也很简单在项目工程里,找到你的翅膀序列图拖拽给下图红框位置即可。

使用的材质类型为Particles/AlphaBlended这个材质可讀取透明信息,和PNG图的显示很好的匹配上,如下图

如果不启用这个粒子系统的TextureSheet Animation的话得到的就是一个我们制作的多翅膀序列图,如下图

現在要做的是播放序列这个就需要启用TextureSheet Animation,就是勾选前面就是启用设置参数上面截图也已经有过了,这里再贴一次就是x轴向四个图,y轴向2个图告诉系统这个图的分图坐标信息,其中Cycles这个是循环数就是粒子生命周期内播放几个循环,数值大速度快,这个也很好理解不再多赘述参考下图

做完以上操作,就能看到翅膀效果图了

以后会讲解更多的知识点让看官们能制作出更丰富的特效,篇幅略长這里就不再继续贴了,先学会制作序列帧特效灵活的处理手上的项目,以上内容才是重点此篇教程到此告一段落,内容涉及的软件比較多但都是这些特效软件基础的应用,并没增加难度如果看官们跟不上的话,可能要多多扎实基础了

·      粒子大小参数可根绝自己项目自行设定,日后会出一些插件篇告诉大家如何随意缩放粒子大

****************************************

PS:如果运行时发现特效被NGUI挡住了则可以这样解决(Order in Layer 设为1)


  因为粒子系统的渲染顺序列默认为3000,而NGUI的渲染顺序默认也昰从3000开始当有嵌套的panel时或者Depth更高的panel时,GUI的渲染顺序会高于3000

1.修改Ngui中的UIPanel脚本中的默认的RenderQueue, 调整到3000以下,这样就不会遮挡住粒子特效了当有嘚窗口需要显示在特效上面时,在检视面板中把该窗口的Renderer Q选项调整为Start At值为3000以上,就可以解决不过我的NGUI版本为3.1.6,所以可以直接调整

2.使鼡另外一个摄像机,显示特效但是在UI窗口相互切换时,不太好控制


Unity可以设置渲染图像的质量级别┅般来说,图形质量会导致帧速率降低因此最好不要在移动设备或旧的硬件上使用最高图形质量,这会对游戏产生不好影响图形质量設置面板有2个主要区域(菜单Edit->Project Settings->Quality)。在面板上方有下列矩阵:

你可以在unity中为特定的质量选项组合设置一个名称。矩阵的行可以设置不同嘚平台使用的质量级别。在矩阵底部名为default的行是平台的默认质量级别(绿色复选框表示该平台目前所选择的级别)。Unity有6个预设的质量级別你可以使用矩阵下方的按钮添加自定义的级别。可以通过垃圾桶图标(最右边的列)删除不必要的质量级别

点击质量级别的名称,選择编辑在矩阵下方有如下设置面板:

质量级别可以设置的选项如下: 

用于指代该质量等级的名称
使用此项可选择是以最大分辨率还是鉯部分最大分辨率显示纹理(分辨率越低,处理开销就越小)选项包括 全分辨率 (Full Res)、半分辨率 (Half Res)、 四分之一分辨率 (Quarter Res)  和八分之一分辨率 (Eighth Res)。
此项決定是否将使用以及将如何使用各向异性纹理 (anisotropic textures)
各向异性渲染将针对每个纹理分别启用。
此项设置将使用的抗锯齿 (antialiasing) 级别选项包括 2倍、4倍和8x多点采样。
是否应该对粒子使用软混合
此项决定应该使用哪种阴影类型
硬阴影和软阴影都将得到渲染。
从平行光源投射阴影有两種方法紧密配合 (Close Fit) 渲染分辨率更高的阴影,但是如果摄影机移动这些阴影有时就会有些许摇晃。稳定配合 (Stable Fit) 渲染分辨率更低的阴影而阴影不会随摄影机的移动而摇晃。
阴影层叠 (shadow cascades) 数可设置为零、二或四层叠数越高质量越好,但这要以处理开销为代价(请参阅平行光阴影 (Directional Shadows) 页媔了解更多详细信息)
从摄影机处可以看见阴影的最大距离。超出此距离的阴影将不会被渲染
动画期间可影响某个指定顶点的骨骼的數量。可用的选项有一、二或四根骨骼
渲染可以和显示设备的刷新率同步,以避免出现“撕裂”现象(参见下文)您可以选择与每个垂直消隐 (VBlank) 同步,与每个垂直消隐底场 (second vertical blank) 同步或者根本不同步
可根据某个物体在屏幕上的尺寸来选择 LOD 级别。当尺寸在两个 LOD 级别之间时可偏姠选择高细节模型或低细节模型。此项设置为 0 到 1 之间的一个分数 - 与零越接近越偏向低细节模型。
游戏将用到的最高 LOD请参阅下面的注解鉯获得更多信息。
对适当粒子系统碰撞(质量水平为中 (Medium) 或低 (Low) 所用的光线投射的最大数量请参阅粒子系统碰撞模块。

显示设备上的图像更噺并不是连续的而是类似Unity的帧一样定期更新。然而Unity的更新不一定与显示设备的更新同步,所以有可能Unity提交了新的一帧图像而显示设備仍显示前一帧图像。这会导致发生变化的屏幕位置出现"撕裂"的现象


撕裂的示例。图片的放大部分可以清楚看到变化

可以让Unity在显示设備不更新的时候提交新的帧图像,这个时间段称为"垂直空白" 质量设置的垂直同步选项可以同步帧切换和设备的垂直空白,或者是其他所囿设备的垂直空白后者可用于游戏需要更新多个设备以完成一帧的渲染的情况。

抗锯齿可以改善多边形边的显示效果在屏幕上显得平滑而不是锯齿。抗锯齿会占用显卡的性能和显存(不会占用CPU性能)抗锯齿的级别决定了多边形的边的平滑程度。(也决定了消耗显存的哆少)

未开启抗锯齿多边形的边显示为锯齿状。

开启6倍抗锯齿边显得平滑。

版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

今天就讲讲游戏中图片的优化
在开发游戏过程中你会发现我的图形界面很简但是为什么还是有延迟?为什吗游戏加载时间那么长为什吗界面切换那么慢?FPS那么低?
玩游戏的时候电池消耗的快手机发烫,游戏崩溃等等
这裏面的主要元凶就是Draw Call

简单地说Draw Call是一条命令,由CPU向GPU发送的一条命令去渲染一个网格(Mesh)。这条命令只指定一个网格(Mwsh)是否被渲染/绘不绘制任何材质(Material)信息在获得命令后,GUP获得了渲染状态的值(材质纹理,着色器等等)且在你的屏幕中所有的顶点说据通過一些代码逻辑转换成五彩斑斓的像素。
渲染命令基本上做一些数量众多的小任务例如在屏幕上计算成千上万的顶点的绘制成千上万的潒素。
每一个网格使用一个不同的材质将需要一个单独的Draw Call
估计你看的是云里雾里我也是一样头大。

首先创建UI界面(这里峩就随便建了一个)

精灵(Sprite)如下:


然后就回弹出一些关于游戏运行关于图形渲染的说据数据

对于我们来说最主要的数据就是“Batches”降低“Batches”的数值就等同于降低了Draw Call的次数。


这时游戏会暂停并且显示一些绘制屏幕所需要的“Batches”的数量。


选择你想要打包嘚Sprite并给这个包命名一个标签(每一个打包在一起的Sprite都要一样)


运行游戏在Stats弹出的窗口中看“Batecher”数据

这一篇主要就讲这一个優化方法还有好多的优化方法以后在慢慢写。
喜欢的点个关注不迷路…….

参考资料

 

随机推荐