时尚风格网站,沈阳专业网站建设企业,手机网站个人中心源码,北京市工商注册网上服务系统文章目录 一、资源管理器简介1.1 界面介绍1.2 资源商店1.3 AI专区1.3.1 AI文生图1.3.2 AI图生图1.3.3 立绘头像 二、导入导出2.1 文件格式2.2 模型导入2.2.1 模型制作后导出2.2.2 模型文件导入Y3编辑器2.2.3 Y3编辑器角色、装饰物模型要求 2.3 纹理导入2.4 材质贴图2.4.1 材质支… 文章目录 一、资源管理器简介1.1 界面介绍1.2 资源商店1.3 AI专区1.3.1 AI文生图1.3.2 AI图生图1.3.3 立绘头像 二、导入导出2.1 文件格式2.2 模型导入2.2.1 模型制作后导出2.2.2 模型文件导入Y3编辑器2.2.3 Y3编辑器角色、装饰物模型要求 2.3 纹理导入2.4 材质贴图2.4.1 材质支持类型2.4.2 PBR材质贴图制作指引2.4.3 英雄三国材质 三、角色模型3.1 常规功能3.2 模型部件替换 四、特效待补五、序列帧动画5.1 本地资源导入5.2 在编辑器中使用序列帧 六、资源管理6.1 资源文件6.1.1 资源文件类型6.1.2 资源文件结构6.1.3 资源管理6.1.4 资源文件FAQ 6.2 缩小包体6.2.1 优化官方资源6.2.2 自定义资源6.2.3 测试包体大小 七、存档/排行榜设置7.1 全局存到和玩家存档7.2 存档详细流程7.3 离线存档7.4 排行榜功能7.4.1 开启排行榜7.4.2 存档槽7.4.3 排行榜清空与拉黑 八、防作弊设置8.1 启用防作弊功能8.2 物品掉落限制8.3 Y3地图防作弊策略 Y3编辑器教程1编辑器简介及菜单栏详解文件、编辑、窗口、细节、调试 Y3编辑器教程2场景编辑地形编辑、物件放置 Y3编辑器教程3物体编辑器 Y3编辑器教程4触发器1界面及使用简介、变量作用域、入门案例 Y3编辑器教程5触发器进阶使用镜头、UI、表格、函数库、排行榜、游戏不同步 Y3编辑器教程6触发器进阶案例 Y3编辑器教程7界面编辑器 Y3编辑器教程8资源管理器与存档、防作弊设置 Y3地图制作1水果缤纷乐、密室逃脱、机甲风暴
一、资源管理器简介 参考官方文档《资源管理器》 1.1 界面介绍 资源管理器是用来管理所有项目资源的资源库它们是纯美术性的完全不包含游戏逻辑没法编辑属性当然也没有触发器。它们会被一些物体的属性所引用或者被触发器引用
模型资源会被单位所引用。声音资源会被物编中的声音所引用物编中将会有一些属性编辑比如对其的分类以及淡入淡出时间等。特效资源触发器可以创建指定某个特效 分类页签切换不同类型资源显示包括 模型、声音、特效、图标、 鼠标样式、 天空球和字体、地形纹理、序列帧与AI专区。 鼠标样式为细节-美术效果-指示器外观中的鼠标选择不同的风格天空球细节-美术效果-天空球中选择最适合的用于地面之外的空间背景。AI专区支持您根据需求与描述利用AI技术生成技能图标、立绘、头像与称号还支持智能抠图和高清修复。 收藏夹用于显示/管理用户收藏的资源。点击新建文件夹通过文件夹对自定义资源进行分类。资源目录资源所在的文件夹资源列表选中文件夹包括其子文件夹中具体的资源条目展示页资源展示3D显示支持鼠标拖拽改变视角详情页用于显示/调整资源具体信息上传是否压缩等资源标签与资源搜索相关。资源搜索相关规则参考【通用搜索】搜索优化-模糊搜索规则资源筛选通过标签对当前资源列表内的资源进行筛选。 点击窗口右上角的导入将本地资源上传到资源管理器中规则请查看下一章资产导入。点击云图标查看或隐藏资源商店中的资源。 右键单击一个资源对其进行以下操作收藏复制ID剪切删除重命名重置标签创建到物编和创建到场景 。模型、音频和特效这三个资源可以快速创建到物编中单位声音魔法效果/投射物的玩家自定义栏中。 点击右下角的 “”为资源设置一个自定义的标签以便更好地对其进行分类。如果你不再需要这个标签右击资源的缩略图选择重置标签那么这些标签将被恢复到默认状态。 1.2 资源商店 在资源商店中您可以选择角色、动物、建筑、装饰、植物、岩石、特效、图标、音频和ECA在导入后可以在您的项目中使用。下载的资产可以在我的资产中进行管理比如您可以批量导入资产。 1.3 AI专区
1.3.1 AI文生图 基础模型可以理解为他们是不同的AI画师是决定画面内容的最主要因素。不同的基础模型训练时所用的素材不同其画风和知识面也有不同风格模型可以作为特定画风的模型进行叠加使用描述词对想要生成的画面元素进行描述可以是词语、短句支持中英文输入。参考语法类型风格画面主体背景光照构图。 描述词相关性图像与描述词的匹配程度。相关性越高生成的图像越符合描述词的描述内容相关性越低AI自由发挥空间越大。推荐7-15过高容易导致画面色彩失真和图像质量降低。随机种子图像通过采样算法一步步生成最后图片随机种子控制了采样的结果。锁定种子和采样步数等参数可以固定采样结果生成几乎一样的图片。采样步数AI绘图是一个生成随机噪点再降噪的过程采样步数决定了要在多少步之内完成全部的降噪过程也即完成 AI 绘图作品。采样步数越高画面越精细但生成时间也越长一般情况下20-30步即可。
1.3.2 AI图生图 图生图技术允许用户在参考图像的基础上通过AI重绘生成一张新图像。它能够保留原图形状或布局但风格和细节由提示词和参数决定。图生图的应用场景包括二次创作、特定风格的复现以及产品设计等。 缩放模式若生成图片与源图片的尺寸不一样则需要从以下的四种图片模式选择一种 拉伸原图只调整图片大小图片所有内容进行保留会使用拉伸。裁剪原图 从图片中心向四周的方向将比例外的部分裁剪。填充空白 以图片中心向四周的方向将比例内多余的部分进行填充生成图片。仅调整大小调整图片大小为生图设置的宽高并利用潜在的空间特征进行放大。 重绘幅度可以理解为 AI 对原图的修改程度数值越小修改程度越小。 0.1-0.2只会在微小的图案和阴影上产生微弱的变化。0.4-0.6会明显影响画面中的小物品。0.6-1将会对整张图的构成产生显著影响例如人物的姿势和位置甚至整个构图都会发生变化。 1会生成一个跟参考图毫无关联的图其实就等于纯粹的文生图。 局部重绘允许对图片上涂抹的地方进行重绘而其它部分不变。 上传参考图后打开局部重绘开关使用笔刷涂抹想要修改的地方并在描述词里描述想要修改的内容。比如下图中涂抹人物衣服后提示词描述修改为“身穿盔甲的男性站立”。
1.3.3 立绘头像 可选择资源管理器的模型生成立绘头像或者输入模型图片生成对应立绘头像。上传的图片要求尽量背景纯色人物形态清晰如果选择怪物动物等不具备人物特征的模型将无法识别生成。 人物所占画面比例越大生成的效果会越好尽量使人物完整的展示在预览区域内。在左侧模型预览区域调整模型角度鼠标滚轮可放大缩小模型Ctrl鼠标右鍵可旋转模型调整好角度后后点击“截图”按钮点击默认角度将重置截图恢复默认角度。最后点击生成稍等几分钟即可获得全身、头像、半身立绘。 二、导入导出
2.1 文件格式 编辑器导入/导出文件在资源管理器目录下点击导入按钮选择文件并填写相关信息即可导入比如导入Caozhi G.fbx模型在资源管理器目录下点击导出按钮选择需要导出的内容确认后选择导出位置。
导入类型文件格式导入类型文件格式模型fbx模型贴图tga、png音效mp3、wav图片png、jpg鼠标样式cur天空球exr、hdr序列帧plist、多选png地形纹理png 2.0.43版本更新后所有自定义资源存放在LocalData\Your_Map\custom\OriginalRes路径下一共是10个文件夹
文件夹说明文件夹说明cur鼠标样式effect特效font字体icon图标model模型sequence序列帧sky_box天空盒sound音频terrain_texture地形纹理Live2DLive2D windows系统中导入文件除了通过编辑器内的资源管理器进行导入还可以将资源文件直接拖入对应的自定义资源文件夹内然后在编辑器内点击刷新按钮即可完成导入。导入的文件以源文件描述文件的形式存储方便查看和调整可以直接在windows目录中将对应资源替换成其他同名图片打开编辑器刷新后即可生效。 第一次刷新时会处理当前地图内的所有资源建议先备份原地图时间相对较长600M的资源在固态中测试用时10min左右请耐心等待处理完成后地图文件大小会有较大幅度的提升可以直接在windows文件管理中对源资源文件进行一定的修改调整单独删除源文件或meta文件可能造成对应资源丢失修改前请做好备份工作由于目前批量资源操作速度比较慢暂时没做开图自动刷新后续优化完成后会加上 2.2 模型导入
2.2.1 模型制作后导出 模型制作后在导出到电脑之前首先需要确认单位比例将系统单位和显示单位设置成一致。以3D Max为例打开模型文件可以拉一个box来验证大小示例文件单位为厘米时是正常比例。 导出前确定资产合规性详细请查看 Y3 角色、装饰物模型要求将模型导出为fbx格式。fbx导出Geometry选项设置如下如果是带绑定的模型请确保Skins处于勾选状态 检查导出单位是否与系统单位设置一致一般情况使用Automatic自动即可 对于模型的动画导出时可以带模型导出或只导出骨骼动画导出设置同上。如果最终的动画轨迹与DCC中有差异可以在导出设置里勾选 Bake Animation并设置动画结束帧End 模型的骨骼蒙皮等信息读取自源文件纯动画fbx无法作为源文件 2.2.2 模型文件导入Y3编辑器 打开Y3编辑器的资源管理器界面在模型标签页下点击右上角的导入按钮选择需要导入的模型文件即可。需要接入动画系统的模型骨骼模型导入Y3时必须要idle1,die,walk这3个动画文件需要提前制作好。模型导入后将默认播放idle1动画待机动画如果没有则为T-pose。如果没有这3个动画且在游戏内用不到这个3个动画可以使用任意动画来填充槽位。 导入后我们可以看到模型底部有一个箭头方向对于角色模型我们需要使角色的面朝向和箭头方向一致。我们可以通过正方向矫正功能来调整角色朝向如下所示我们将角色旋转180度后角色朝向与箭头方向保持一致。 在右侧可设置模型动画和纹理贴图号添加更多动作并修改动画名称。点击动画条目的空白处可预览动画如果动画数量较多可全选动画文件批量导入。导入完毕后可以在玩家自定义目录下找到我们的资源可以通过右键再次编辑修改。 2.2.3 Y3编辑器角色、装饰物模型要求 Y3编辑器模型导入支持静态网格体和骨骼网格体带蒙皮的模型推荐使用FBX格式进行导入导出FBX时建议将除蒙皮skin外的其他节点修改器塌陷或删除并转为三角面否则结果可能与预期产生偏差。另外不支持模型内的融合变形。
面数规格英雄、BOSS、精英怪、载具出现的环境差异较大建议根据不同视角选择合适的面数规格面数一律是指三角形非多边形
类型半身视角/屏占比大于1全身视角/屏占比大于0.5常规俯视角/屏占比较小模型尺寸建议英雄、BOSS、精英怪、载具≤20000≤10000≤5000-普通怪物、NPC、坐骑、动物、武器≤5000---复杂建筑≤20000≤10000≤5000-普通建筑-≤10000≤5000≤5M雕像-≤10000≤5000≤6M大型山石-≤10000≤5000≤12M小型山石--≤2500≤5M大型树-≤10000≤5000≤8M小型树--≤5000≤3M灌木--≤2500≤2M其他小物件--≤2500≤1.5M LOD限制Y3编辑器自定义导入不支持LOD细节层次几何图形需要多级LOD的资产建议将LOD拆分成多个资产导入通过ECA逻辑切换不同的模型。例如在角色展示界面使用高面数模型游戏内使用低面数模型。 模型贴图尺寸必须为2的n次幂通常为正方形。模型主体贴图建议为1024*1024像素最大不要超过2048*2048。 模型与材质拆分模型资产的子模型数量和材质数量均会增加绘制接口调⽤drawcall影响渲染效率CPU对于同屏大量角色的情况需要严格控制角色子模型和材质的数量。建议导入前检查模型将使用相同材质的子模型进行合并。英雄、boss类角色建议drawcall≤4其他角色和场景装饰物建议drawcall≤2。 骨骼限制 骨骼数量不能超过128根如果模型资源的骨骼超过128需要手动减少骨骼或者将模型拆分成多个模型资源进行导入。避免骨骼名称重复仅支持1个根骨骼、仅支持每关节 4 个顶点的蒙皮、仅支持蒙皮skin不支持链接或蒙皮包裹等功能。
2.3 纹理导入 在编辑器中我们可以使用地形纹理快速生成不同的场景效果引擎自带了丰富的地面纹理。当引擎中的纹理不能满足需求时可自定义导入所需纹理。打开编辑器主界面-资源管理器 选择地形纹理分页点击导入在弹窗中选择目标图片进行基础的参数设置确认后就会自动生成对应的纹理贴图5s左右。 打开地形编辑窗口-地形分页点击纹理配置按钮红框内在左侧打开目标纹理的对应路径拖拽至当前纹理页并点击应用即可将自定义纹理添加到地编中。 2.4 材质贴图
2.4.1 材质支持类型 目前支持的材质类型有 PBR材质基于物理的渲染流程、英雄三国材质次世代制作流程、卡通材质。如果包含混合纹理请选择PBR材质 混合贴图RGB通道信息示例R:粗糙度 G:金属度 B:AO 如果包含高光纹理请选择英雄三国材质 如果希望有更强的卡通效果表现可以选择卡通材质建议使用 卡通材质新 如果资产的纹理只有颜色图或只有颜色和法线请选择 PBR材质、英雄三国卡通材质 中的任意一种缺失的纹理贴图保持材质默认即可。
2.4.2 PBR材质贴图制作指引 PBR意为基于物理的渲染用于更精确的描述光如何与物体表面的互动。PBR的优势在于拥有一套相对标准化的工作流程能够获得更加稳定、可预测的高质量效果。我们使用金属/粗糙度工作流(Metal-Roughness)需要作者上传3张纹理颜色、法线、混合。 颜色贴图 颜色贴图A通道作为半透明通道输入。颜色贴图除了微观遮蔽信息Micro-occlusion以外不应该含有任何光照信息。颜色贴图中的颜色对于非金属材质来说是它的反照率颜色Albedo对于金属材质来说则是它的反射值Reflectance value所带色相与其反射的波长有关。非金属部分暗色值不应该低于 30 sRGB严格点是 50 sRGB亮色值不应该高于 240 sRGB。金属部分Base Color 贴图中的值是指金属的反射值真实世界中的测量值。原始金属的反射值映射到 sRGB 范围大概是 180-255。 法线贴图法线贴图使用DxDirectX模式与3D Max的法线贴图方向一致。如果是OpenGL模式的法线需要在图像处理软件中将法线贴图的绿通道颜色翻转。 混合贴图混合贴图RGB通道分别为粗糙度、金属度、AO。 粗糙度为黑色表示完全光滑白色表示完全粗糙表面几乎看不到高光。这是一个非常主观的领域作为一个艺术设计者可以放开手去尝试。金属度贴是一个灰度贴图作用就类似于一个图层遮罩用于定义物体中哪个区域是原始金属的贴图。 金属被氧化、腐蚀、上漆、覆尘后这些区域需要被当做非导体电介质材质来看待。在金属贴图中纯黑0.0代表了非金属纯白1.0代表了金属我们可以用过渡的灰阶来表示不同程度氧化和污垢。如果金属贴图中有值低于 235 sRGB那么在 Base Color 中对应区域的反射值也应该降低。 AO用于计算环境遮蔽在低配效果下AO会直接作用与颜色以加强低配效果若资源不需要AO需要将B通道填为白色。如果资源的混合纹理是多张灰度图请在图像处理软件中按正确的通道顺序将其合并。
2.4.3 英雄三国材质
英雄三国材质(英三材质)是匹配旧时代资产的材质输入时需要颜色、法线、高光贴图。
颜色贴图与PBR材质的颜色图要求不同英三材质的颜色图需要将部分光影、质感信息绘制到贴图上。法线贴图法线贴图使用DxDirectX模式与3D Max的法线贴图方向一致。如果是OpenGL模式的法线需要在图像处理软件中将法线贴图的绿通道颜色翻转。高光贴图材质通过高光图来控制模型的高光区域、颜色和强度其光照计算相对于PBR材质要简单很多。 高光图通常可以通过颜色图调整亮度曲线得到。通过高光图的亮度聚拢程度来表现材质的光滑度。金属感强的区域高光图可以适当提亮非金属的区域需要将高光图压暗。颜色图与高光图的关系参考 三、角色模型
3.1 常规功能 角色模型通常用于制作单位分为三种类型英雄无限制、 建筑无法移动、转身、获得经验、生物无法获得经验点数。在物体编辑器-数据中您可以设置一个单位是否具有生命值生命值的显示样式以及是否显示玩家名称。在物体编辑器-表现中您还可以更改角色的动作并在窗口底部查看相应的动画。 如果您想要替换模型您可以点击模型名称后面的进入资源管理器进入导入在资源管理器中预览所有单位及其动作。 在操作区中放置一个角色后您可以在物件预览区中更改其动作。 您还可以通过触发器调用角色模型及其动作 3.2 模型部件替换
导入编辑器首先需要将一个完整的模型切割成若干份导入编辑器例如头胳膊腿脚身体和空root模型。切割后的部件应共用同一套骨骼动画否则可能后续会导致表现错误。初始的空root模型也要与其他部件共用一套骨骼。 定义模型 导入编辑器之后需要对导入模型进行定义。先将其由初始状态替换为对应的空“root”模型随后根据自身命名喜好将其拆开的各个部件模型按照对应的字符串名替换上去比如将该root模型的头部模型命名为“head” 替换模型 游戏中如需要替换某个部位的模型如戴上头盔即替换头部模型换掉鞋子即替换脚部模型等等则根据之前定义的字符串名将该模型的对应标签的模型部件替换为其他模型
四、特效待补
五、序列帧动画 在界面编辑器中我们需要插入一些动画时可以使用序列帧动画的功能本教程将介绍序列帧动画的本地导入和使用教程。
5.1 本地资源导入
导入图片适用于用户仅有散图的情况。在导入窗口中批量选择图片被选中的图片将以命名升序的顺序导入编辑器中导入图集与plist文件当用户从cocos或unity制作好序列帧之后本地有完整图集和plist文件点击导入选择对应的plist文件即可。系统会尝试自动检索绑定的png文件如果没有搜索到则会留空需要手动绑定 导入gif图片由于引擎暂不支持直接进行gif的导入所以目前需要使用者自己先将gif处理成单独的png文件再进行导入。以PS为例打开gif后选择 导出 将图层导出到文件 然后将分离出来的png文件批量导入即可。 导入图集适用于用户仅有png图集文件的情况。在搜集对应序列帧资源时经常出现仅提供了图集没有描述文件的情况这种情况需要手动切图。 以PS为例打开对应图片后选择切片工具框选图集整体在右键菜单中选择划分切片输入对应参数后 按altshiftctrls保存为png格式随后将生成的png批量导入即可。
5.2 在编辑器中使用序列帧 经过第一步的导入流程后我们成功的将一个序列帧文件创建到了资源管理器中。现在我们将尝试去使用它。 打开界面编辑器往画布内添加一个序列帧控件。 点击属性中的序列帧添加一个序列帧添加完成后即可在界面中看到对应序列帧的效果。 在运行过程中可以通过以下ECA调整序列帧效果 六、资源管理
6.1 资源文件
6.1.1 资源文件类型
资源文件大致可以理解为三个部分
源文件非必须格式较为通用一般无法被引擎直接使用引擎需要经过一系列解析才可以获取相关内容。所有的源文件存在在对应地图文件的custom文件夹中除去CustomImportRepo.local 引擎资源必须 引擎解析源文件后生成的引擎文件一般不可读仅可放在引擎中使用。所有的引擎文件存在于CustomImportRepo.local文件夹中。 编辑器信息必须 引擎文件在编辑器里的信息包括但不限于ID、参数、层级关系等。所有的编辑器信息记录在工程一级目录的editor_table文件夹中 源文件可以生成对应的引擎资源和编辑器信息但对于工程来说并不是必需品。 例如当我将一张图片导入编辑器后会在editor_table\editoricon目录下生成对应的json文件且会在对应的foloder_info中记录其层级信息引擎内容则生成在custom\CustomImportRepo.local\Texture中。 用户需要通过编辑器信息去获取引擎资源。如果编辑器信息丢失且没有源文件能帮助其修复对应资源将会被视为冗余资源被删除。 例如 一般在多人协作时由于漏上传文件更新不全等误操作容易导致出现上述问题首先需要确定OriginalRes中的文件是否完整完整的话可以删除custom\CustomImportRepo.local下的resource.repository文件并刷新解决。 冗余资源在编辑器打开地图后会弹窗提示对应列表。 引擎资源丢失如果编辑器信息存在但是引擎资源丢失拿到的就会是一些空图、空模型、空特效甚至有可能引起引擎崩溃 例如手动删除custom\CustomImportRepo.local下任意文件夹开图大概率闪退。 为什么要分成这几类文件主要是出于工作效率考虑对资源进行预处理。如果每一次都需要从源文件开始的话基本上就等同于吃饭从种水稻开始一样。
6.1.2 资源文件结构 2.0.43版本更新后所有自定义资源存放在LocalData\Your_Map\custom\OriginalRes路径下。OriginalRes文件夹下.package后缀的文件夹是编辑器内的资源条目与资源管理器内一一对应。没有后缀的文件夹是编辑器内的普通文件夹。 由于OriginalRes的功能是个新功能对于老图做了一些兼容性处理大致流程是在第一次刷新的时候会将现有资源导出一份按照兼容模式的格式存进OriginalRes内所以OriginalRes中的文件大致分为两种格式正常模式上图 和 兼容模式下图 正常模式的文件内容如下
模型蒙皮、动画文件FBX或MDX、贴图、描述文件记录的是资源版本以及一些编辑器内的设置除特效外的其他资源资源原始文件描述文件。
6.1.3 资源管理 资源刷新根据源文件生成对应的引擎资源和编辑器信息如果是第一次使用还会初始化工程内的所有资源建议备份原地图处理时间可能较长600M的资源在固态中测试用时10min左右。 清理 清理掉目前冗余的资源 修复 重新生成引擎目录多用于编辑器信息和引擎资源出现出入的情况 源资源文件修改可以直接在文件管理中修改源资源文件但修改前请做好备份。 源文件、引擎资源和编辑器信息见《资源文件说明》。 自定义资源管理 查看目前所有自定义资源使用情况支持一键清理未使用资源目前引用统计暂时统计不到lua代码中的引用如果是lua项目慎用。 右键相关右键点击自定义资源可以进行以下操作 替代将这个资源替换为其他同类资源所有的引用也会一同处理再次编辑对资源进行二次修改打开文件夹跳转到该资源在OriginalRes中对应的的目录
6.1.4 资源文件FAQ
怎么上传SVN/GIT 最推荐的方式是三类文件全量上传但如果存在多人合作同时上传资源的情况有可能会导致resource.repository冲突这个时候将其他所有文件上传并打开编辑器点击快速修复即可。怎么判断是哪类文件出现了问题 如果资源管理器内没有对应目录一般是编辑器信息丢失推荐重新导入。如果对应目录依然在但是资源管理器内不显示一般是引擎资源出现问题推荐右键替换后将源文件再次代入。上传打包地图文件过大怎么优化 所有的自定义资源都是会打进游戏包体的推荐及时清理掉未使用的自定义资源可以尝试使用资源管理器中自带的资源管理功能lua中引用的资源目前无法统计到批量删除和刷新的速度问题。 目前经过一系列优化一张大小为5G的图全量刷新所需要的时间已经被控制在了半个小时以内删除未使用资源大约需要20分钟超过这个时间一般是出现了报错建议将图和日志文件发给官方处理。
6.2 缩小包体 资源文件分为自定义资源、官方资源两种包体资源也是这两部分所以可以从这两部分进行考虑。 官方资源概念Y3官方资产公用资源。若玩家在游玩您的地图前已经在其他地图下载过官方资源则无需重复下载但是作者地图对官方资源的引用会影响包体的大小。
6.2.1 优化官方资源
物体编辑器UI编辑器单位-图标图标、单位-小地图头像图标、单位-模型模型、单位-自定义键值all图片图标装饰物-模型模型模型控件模型物品-图标图标、物品-模型模型、物品-自定义键值all特效控件特效技能-图标图标、技能-自定义键值alllive2d控件live2d魔法效果-图标图标、魔法效果-特效特效、魔法效果-挂接模型模型、魔法效果-自定义键值all序列帧控件序列帧投射物-图标图标、投射物-特效特效、投射物-挂接模型模型、投射物-自定义键值allspine控件spine科技-图标图标、科技-自定义键值all文本框字体可破坏物-图标图标、可破坏物-自定义键值all输入框字体声音-音频音频、声音-自定义键值all特效引用的模型、其他特效、音频特效、模型、音频
场景地编美术效果血条编辑器直接放置在场景中的特效和模型特效、模型图片图标天空盒天空盒场景中使用到的地表纹理(贴图)模型控件模型特效指示器外观cur文本框字体跳字管理图标
所以需要检查游戏内容以减少不必要的引用通常有以下几种情况带来不必要的引用。
不必要的初始模板内容创建地图时自带的资源英雄、装饰物、物品等如不使用则进行删除。 多余的商城下载资源。下载的包体内会包含多个单位、技能如不使用可删除。 多余的物编内容逐个检查每种类型下的内容是否被使用比如场景中放置、触发器使用等不需要则删除。对于可破坏物和装饰物可用工具进行清理。 在物编窗口内选择清理数据按钮即可查看目前未放置到场景内的物体勾选“全选未使用”并点击清理按钮即可删除当前未使用的物体 检查地形纹理并清理 自定义资源 使用资源管理器的自带功能删除冗余资源打开资源管理弹窗勾选“全选未使用”并点击清理按钮即可删除当前未使用的自定义资源。 手动删除冗余资源。
直接在文件夹中删除在地图的custom文件夹中查看各个文件的占用情况包括文件大小和最后修改日期。删除不必要的文件或备份旧版本以释放存储空间。
6.2.2 自定义资源
下图为一个Y3工程的目录结构 其中大致分为这样几类 全工程通用的设置、规则、触发器等内容 资源custom,editor table文件夹 本地存档archive文件夹 关卡maps文件夹
具体各个文件对应内容如下图所示 6.2.3 测试包体大小 完成缩包后可尝试重新上传确认包体大小是否达标。但由于资源部分分为地图数据和官方资源数据而官方资源数据会在不同地图间复用所以要了解真实的地图大小需要对本地的所有数据进行清理清理之后重新下载地图就能获取真实的地图大小。
2.0\game\LocalData\etc : 存放了地图数据2.0\game\LocalData\OfficialShopResource : 存放了官方资源数据
将上述两个文件夹删除重新下载地图平台上显示的地图下载量即真实的地图大小。 七、存档/排行榜设置
7.1 全局存到和玩家存档 全局存档全局存档与你的地图绑定用于累计进入地图的所有玩家对游戏进度的贡献需要通过对应的ECA进行读写。全局存档对应数据存储在地图工程路径下的archive/global_archive.json文件中。 玩家存档 实时存档本地存档变化后本帧的所有操作会在下一帧自动上传体现实时性。字符串、布尔值、整数、实数等基础类型数据都是实时存档。非实时存档本地存档变化后需要调用“上传玩家存档”ECA才会上传两次上传间有一分钟冷却时间。表格存档根据“禁用覆盖”选项区分禁用表示实时允许表示非实时。实时存档表格需用配套ECA修改值不能使用“设置玩家表格存档”ECA。初始值要么设置一个初始表要么ECA先创建一个新表之后才能正常进行修改。 为了提升存档的易用性与安全性目前版本的编辑器中表格类型存档不再支持允许覆盖也就是只能用实时存档。 注意目前全局存档的数值类型为int32可表示范围为-2147483648~2147483647。如果数值超出了此范围则玩家进入游戏时会无法正常获取对应的值比如用了一段时间之后突然拿不到全局存档的值了。遇到这种情况你也可以直接增加一个当前值的负值就能把对应的全局存档值重新置为0。 一般情况下比较关键的数据需要及时存储的数据都建议使用实时存档因为实时存档不会因为闪退丢失并且安全性更高(一定程度上防外挂)如玩家金币。 使用表格的实时存档时注意key不要有特殊符号并尽量使用纯英文的key确保不会因为像[,],,:,int_,_int,Fix32(,),[,]等特殊符号而导致出现key识别的问题。value字符串格式也不要有类似的特殊符号不支持嵌套字符串格式。 本地排行榜没有实际本地存储的数据运行时是通过存档配置以及玩家存档值计算而得出。因此想要修改值实际只需要修改对应玩家的存档值即可。在后续的迭代计划中全局存档也将变成实时存档表格存档已经不再支持不安全的允许覆盖性存档总体上将不再支持非实时存档。 查询玩家存档在作者之家找到“用户运营-存档查询”输入玩家id即可查询存档也可以下载查询到的玩家存档直接覆盖本地的存档验证。 7.2 存档详细流程 1.2.22版本前存档将会先在玩家的客户端发生变化然后在调用上传存档时上传到服务器进行存储。由于上传存在最小间隔的限制玩家消耗物品后如果断开网络链接不再重连可能会丢失进度达到重复刷取的效果。 为了避免这个问题1.2.22版本后的字符串、布尔、整数、浮点数存档将在设置后立即上传。由于表格型存档涉及到的数据量较大实时上传可能造成多种问题所以表格型存档和全局存档的数据将仍然通过上传存档的语句进行上传。 另外为了解决表格型存档的既有问题编辑器也为表格存档提供了实时上传的修改方式。打开存档槽设置后找到需要升级的表格存档槽将默认的是否禁用覆盖操作由否改为是即可。表格型存档槽将会默认加密无须对其额外进行加密表操作。 注意在修改过后原来的设置表格存档槽位为表的ECA将不再能够生效。 需要对表格槽位进行修改时需要使用新的语句直接访问存档槽位进行设置。 当前支持设置和增量设置两种方式。使用设置语句时会直接将玩家对应字段的存档变为参数值。在使用增量设置时服务器将会根据玩家服务器的已有数据做运算得到最终结果相对来说会更加安全但仅支持数值类型的参数需要自行保证索引的准确性。 在使用时建议在游戏初始化阶段将存档槽的数据存为表格变量每次存档操作确保表格变量与存档槽中的数据同步进行修改。为了满足调试需求提供了新的从表格存档中取值的方式主要用于验证存档槽与自行管理的表格变量中的数据是否一致。
7.3 离线存档 离线存档用于获取非当局玩家的存档数据可以用此数据做离线pvp竞技场等业务。
离线存档配置首先在存档槽设置界面创建一个字符串类型的存档然后切换到离线存档页签选择刚才新建的字符串存档进行离线存档配置。 离线存档获取通过“玩家-请求获取玩家离线存档”动作并配合函数玩家 - 获取排行榜指定排名玩家的aid来异步的获取指定玩家的离线存档。 为了提升存档的易用性与安全性对于非实时存档表格类型存档不再支持允许覆盖类型旧存档可修改为禁用覆盖。 7.4 排行榜功能
7.4.1 开启排行榜 存档排行榜是Y3编辑器中一个功能开发者可以选择特定的整形存档数据如玩家得分、经验值等设置这些数据是否应该被计入排行榜。当设置了整形存档计入排行榜后这些数据的任何变化都会自动同步更新到排行榜中反映玩家的最新排名。 在游戏编辑器的主界面-细节中可以打开存档设置界面。在游戏开始时排行榜数据会被加载进游戏中通过对应的ECA来获取对应排名玩家的昵称和得分。 你可以设置排行榜记录的最大玩家数这个数字最多为200但通常默认为10。注意如果设置的人数太多可能导致游戏开始时卡顿一般设置1个排行榜即可。另外降序表示分数高的排在前面升序则是分数低的排在前面。 排行榜更新当玩家的游戏存档数据被成功保存到数据库时排行榜会立即更新。目前排行榜上保存的数据是以玩家的 [aid#昵称]账号ID和昵称 作为key唯一标识来获取其存档值排名分数。
7.4.2 存档槽 无论是RPG游戏中玩家的装备和等级还是RTS游戏中的关卡进度都需要被妥善保存。在Y3编辑器的“存储槽”选项卡中你可以通过点击“加号”按钮来创建新的存档参数这些参数将构成你游戏项目的存档结构。你还可以通过编写触发器将这些存档数据上传到云服务器进行存储并通过开发者平台来配置存档。 每个存档参数包括四个部分槽位、数据类型、数据名称和初始值。数据名称和数据类型可以通过双击进行修改初始值则通过单击添加。
7.4.3 排行榜清空与拉黑 获取权限首先您需要有权限来清空排行榜。如果您没有这个权限可以联系游戏运营团队申请。 数据隔离请记住排行榜数据和玩家的存档数据是分开存储的它们之间不会相互影响。这意味着清空排行榜上的数据并不会影响到玩家的实际游戏存档只有排行榜上显示的数据会被清除。如果您需要清空特定的存档槽数据需要通过特定的游戏事件ECA来实现。 误操作恢复如果您不小心清空了排行榜数据可以选择恢复到最近一次删除前的状态。 排行榜有拉黑功能玩家被加入黑名单后无法更新存档数据到排行榜但存档数据是正常更新。排行榜中原有的数据如果也不想看到则需要手动删除操作 八、防作弊设置
8.1 启用防作弊功能 防作弊配置主要用于解决玩家通过本地作弊程序修改与存档有关的内存值然后将修改后的结果上报存档服务器导致的存档异常增加的情况。打开存档设置界面你可以点击新建策略组来创建一个防作弊策略。 请注意防作弊配置目前仅适用于数值型的存档槽位且每个存档槽位只能被一个防作弊策略约束。如果你无法创建新的策略检查是否有数值型存档槽位尚未配置防作弊策略。 创建防作弊策略后你可以在策略条目中查看和编辑防刷分规则正在编辑策略的存档槽位会在下拉列表中显示。勾选存档槽右边的仅增加服务器将会把这个存档槽中所有导致下降的操作否决。 编辑防作弊规则存档槽下面的界面对应着防刷分策略的表单点击“加号”可以创建一条防作弊配置。比如下图配置了四个地图等级区间的玩家每天经验存档槽最大的增加量。在每天新增上限的基础上你还可以通过点击每日最大值右侧的加号创建单局新增的限制。 在1-10级的地图上玩家每天最多获得100点经验11-30时每天最多获得100点经验以此类推。在1-10级的地图上在前600秒玩家最多只能获得10点经验在600到1800最多获得50点经验超过1800秒最多获得100点经验。玩家等级超过配置的最大地图等级时不再受到防刷分规则的约束。 8.2 物品掉落限制 这是一种游戏设计策略其中随机掉落的逻辑不是在玩家的本地设备上执行而是在服务器上执行这样可以减少玩家通过修改本地游戏数据来操纵掉落结果的可能性。 相关ECA描述参数说明返回值/行为存档使玩家以服务器掉落策略执行掉落(在服务器上计算以确保公平性和防止作弊)包含一个匿名函数动作列表这些操作会在服务器完成掉落计算后执行如果发送掉落请求的客户端不是参数中指定的玩家那么这个掉落请求将不会生效但动作列表仍执行如日志记录或错误处理特殊 - 获取服务器执行结果仅在存档ECA的动作列表中可以看到返回整数。0成功1不满足触发间隔2不满足每日限制999服务器链接问题特殊 - 遍历服务器掉落结果做动作仅在存档ECA的动作列表中可以看到有几个物品掉落就遍历几次见第4和第5条执行失败时列表为空对应动作不执行特殊 - 获取遍历到的掉落影响存档所在槽位获取当前遍历到的掉落物品将影响的存档槽位的id返回一个整数代表玩家存档中的一个特定槽位的id这个槽位将被掉落物品更新特殊 - 获取遍历到的服务器掉落的存档影响值获取当前遍历到的掉落物品对存档槽位的实际增量值。返回整数代表对应玩家存档id的实际增量
8.3 Y3地图防作弊策略 避免随机性数据延迟存档避免将随机生成的数据如抽奖结果、属性洗练结果、开箱结果等延迟存储。 之前讲过当表格数据被设置为允许覆盖时其存档模式就变成非实时存档会有一分钟的存档上传间隔使用这类类数据的存档槽也就不是实时更新的。当玩家对随机结果不满意可以在数据上传之前结束游戏进程“杀端”从而避免不想要的结果被存档。使用禁用覆盖操作的表格存档槽或其它类型存档槽可避免此情况。 使用加密表保护关键数据使用ECA接口表-加密表格可通过特殊算法对指定表中的数据进行加密提高数据的安全性。但是此项操作性能成本较高故仅推荐对关键数据表进行使用。 开启反作弊检查官方提供了一些作弊检查机制可在运行时识别一些作弊情况。比如使用ECA接口单位-开启属性作弊检查即可开启对某一单位的检查。如果官方机制识别到作弊情况可通过监听-玩家 - 检测到作弊 进行监听。 若检测到的单位为空单位则代表存档作弊否则为单位属性作弊。注意!!!检测到存档作弊后默认会禁止该玩家在本局游戏中再上传所有类型的存档不过在此事件触发期间仍允许上传(仅限该事件期间可通过存档对玩家进行例如标记黑名单等方式处理。 设置存档槽限制规则根据业务需求合理设置存档槽的限制规则。 上传日期限制/上传时间段限制限定某个存档槽只能在星期几或某个时间段被修改适用于一些仅在周期性活动投放的数值。单局分数限制
地图等级、每日成长限制 使用服务器随机池使用服务器随机池代替本地逻辑配置掉落个数、每日限制、触发间隔等参数。开发者可以为不同的掉落物品设置不同的概率权重还可以以此更新玩家存档中的特定数值如玩家的积分、货币或其他资源减少被玩家恶意串改的可能。 利用多人环境的不同步回调进行防作弊检测 如果地图异步问题解决的很好异步率能够控制在万分之几的状态且是一个强PVP玩法可以考虑利用不同步回调进行防作弊逻辑或者通过GameAPI.add_detail_log指令增加自定义存档检测逻辑进行多玩家的存档检测从而防止作弊。 其它方式 自定义的加密方式使用特殊的加密方法来隐藏游戏数据让作弊者难以理解。使用实数类型存档在存储游戏数据时尽量使用实数而非简单的整数因为实数类型在编辑器内部进行了加密逻辑无法通过界面上显示的值进行内存定位能够提高破解难度。使用加密表存档将游戏的存档数据加密即使作弊者看到这些数据也无法直接使用。存档表中的值改成字符串作弊工具CT代码会寻找并修改游戏中用于设置数值的函数然后只需要简单地修改内存中的数值就可以改变游戏状态。为了应对这种情况开发者将数值转换为自定义的字符串格式相当于用自己的方式进行加密。这样即使作弊者能够找到这些数值在内存中的位置他们也无法直接识别和修改这些数值因为它们不再是简单的数字而是加密或编码后的字符串。 正在制作的防作弊机制 指定存档槽数值修改的gamemode例如仅限gamemode天梯时修改随机只读存档通过服务器生成一个随机数值仅能通过服务器修改请求服务器扣除存档槽数值回调向服务器请求减少某个存档槽的数值。如果扣除失败则返回失败如果扣除成功则在回调中响应后续逻辑。该机制可以避免被作弊器修改/锁定货币数值的情况。限制存档槽值只能被服务器修改禁止存档槽的值被客户端修改。通过服务器随机池和请求服务器扣除数值回调配合使用。 比如玩家获得货币的过程不是在客户端计算的而是通过服务器的随机池来决定。当玩家需要使用货币时这个过程也需要通过服务器的接口来完成。玩家的请求会发送到服务器服务器会处理这个请求并在服务器端扣除相应的货币数量。这意味着所有的计算和数据变动都在服务器端进行客户端只负责显示结果。 预设存档槽数值变化行为在编辑器中提前配置多个数值类存档槽的变化行为逻辑如 行为ID1 元宝-2金创药 5。通过纯服务端逻辑避免客户端自行修改存档槽数值时可能出现的作弊可能。