旧目录规则
\---Art
+---Enviroments
| +---Map_Canyon
| | +---Dec
| | | +---Materials
| | | +---Models
| | | +---Prefabs
| | | \---Textures
| | +---LBuilding
| | | +---Materials
| | | +---Models
| | | +---Prefabs
| | | \---Textures
| | +---MBuilding
| | | +---Materials
| | | +---Models
| | | +---Prefabs
| | | \---Textures
| | +---Physics_Hulls
| | +---Road
| | | +---Materials
| | | +---Models
| | | +---Prefabs
| | | \---Textures
| | \---SBuilding
| | +---Materials
| | +---Models
| | +---Prefabs
| | \---Textures
缺点
-
每种游戏对象下很多资产类型的文件夹,比较重复。如M1/(Materials,Models,Textures,Prefabs)。可通过Unity的Project下文件搜索过滤器。
-
场景3D按场景分类资源,场景间资源共用比较少,从场景间分离出共用资源较难快快快*作。
-
资源文件没有单独命名,比较依赖所属分类文件夹。
优点
- 主观上展现资产比较清晰
优点
- 美术资源Prefab分离策划程序配置,美术纯资源可直接迁移到美术工程,逻辑配置的预制件不迁移到美术工程。
- 按预制件美术资源所属名称设置预制件层级Layer?因为是美术资源的预制件,可通过工具批量根据规则设置层级。比如是机甲预制件资源,根据名称和目录自动设置层级。
- 不再创建文件夹叫Models,Textures,或者Materials。把所有相关类型资产文件放在同一个文件夹。制作人员编辑资源时,方便预制件,模型,材质球,贴图一起编辑。而不是打开一个个文件夹,找到相关资源。制作人员可通过Unity的Project目录资源类别的方法搜索
- 以前最后一个序号只为匹配命名格式,无实际意义,现在可以不填写
- 场景3D资源Dec改名为Props,因为这些资源会在场景中大量重复使用
资源文件目录和命名需要考虑的因素有
- 文件夹命名的粒度
- 项目资源文件规划。
- 美术资源自动化检查和设置工具
- 上下游资源使用的习惯
- 不能混用多套目录规则,各组的规则基本保持一致。
- 工程结构最好的情况是,一目了然,不需要专门写备注“这是干什么的”
- 方便一些自动化工具录入规则:预制件层级设置工具等
对资源目录的规范管理和资源文件同等重要,都应该像法律一样被严格遵守。不规范的目录结构会导致严重的混乱。
\---Art
+---Characters
| +---MaterialLibrary
| +---TexturesLibrary
| +---ModelLibrary
| +---NPC
| \---Players
| +---M1
| | +---Configs
| | \---Animations
| | +---Body
| | \---Equip
| \---M5
| | M_M5_Bag_1.mat
| | M_M5_WeaponDH_1.mat
| | P_M5_CloakingL_1_Bip001LThigh_Skin.prefab
| | P_M5_Model.prefab
| | P_M5_WeaponDH_1_RH_Skin.prefab
| | SK_M5_Body_1_Skin.fbx
| | SK_M5_CloakingL_1_Bip001LThigh_Skin.FBX
| | SK_M5_WeaponDH_1_RH_Skin.FBX
| | T_M5_Bag_1_AO.tif
| | T_M5_Bag_1_D.tif
| | T_M5_Bag_1_E.tif
| | T_M5_Bag_1_MADS.png
| | T_M5_Bag_1_N.tif
| |
| | +---Configs
| | \---Animations
| +---Body
| | @M5_Ascend1.fbx
| | @M5_DashB1.fbx
| | @M5_Melee1_1_LH_MeleeAt1.FBX
| | @M5_UVAL1_1_Skill2.FBX
| |
| \---Equip
+---Effects
| +---Effect_Scene
| +---Effect_Skill
| +---Effect_Whitebox
| +---Effect_Npc
| +---Common
| | +---Models
| | \---Textures
+---Environments
| +---Architecture
| | +---Buildings
| | | M_Building_Command_1_1_1.mat
| | | Sk_Building_Command_1_1.FBX
| | | T_Building_Command_1_1_1_AO.tif
| | | T_Building_Command_1_1_1_D.tif
| | | T_Building_Command_1_1_1_MADS.tif
| | | T_Building_Command_1_1_1_N.tif
| | |
| | +---Indoor
| | +---Props(包括格纳库道具模型及动画)
| | \---Roads
| +---Decals
| +---MaterialLibrary
| | +---Metal
| | +---Noise
| | | T_Noise_1.png
| | | T_Noise_Clouds.tif
| | | T_Noise_Wind.tif
| | |
| | +---Plastic
| | \---Soil
| +---Nature
| | +---Foliage
| | +---Stones
| | \---Trees
| +---WhiteBox
| \---Terrain
+---Maps
| \---Map_Tokyo
+---Shaders
| +---Editor
| +---Graphs
| | SF_Skin_1.shadergraph
| |
| \---SubGraphs
+---Movie
| +---Movie_Character
| +---TimelineLibrary(共用)
| +---Players
| +---M1
| +---Timeline
| \---Animations
| \---M5
| +---Movie_Map
| +---Movie_Playback
| +---Movie_UI
\---UI
文件目录使用分职能管理文件
-
特效,Effects文件夹
-
地编,Maps文件夹
-
场景模型,Enviroments文件夹
-
角色模型,Characters文件夹
-
设计,UI文件夹
-
着色器(TA),Shaders文件夹
- 使用PascalCase大小写规范
文件夹的命名需要遵守PascalCase规范,也就是所有单词的首字母大写,并且中间没有任何连接符。例如DesertEagle, RocketPistol, and ASeriesOfWords,参照大小写规范。
- 不要使用空格
绝对不要在目录名中使用空格。空格会导致引擎以及其他命令行工具出现错误,同样,也不要把你的工程放在包含有空格的目录下面。
- 不要使用其他Unicode语言字符或奇怪的符号
如果你游戏中的角色的名字叫做'Zoë',那么文件夹要其名为Zoe。在目录名中使用这样的字符的后果甚至比使用空格还严重,因为某些引擎工具在设计时压根就没有考虑这种情况。
- 记住永远在目录名中只使用a-z, A-Z, 和 0-9这些安全的字符,如果你使用了类似于
@, -, _, ,, *, 或者 #
这样的字符,一些软件和工具会出问题。
场景元素类型 | |
---|---|
Building | 建筑物 |
Indoor | 室内(不与室外模型一体的室内、通道) |
Prop | 小物件 |
Child | 挂件(只会挂靠在其他建筑上的物件) |
Road | 道路(面数比较高) |
Inside | 破碎建筑物等物体的內构 |
Tree | 树 |
Foliage | 灌木丛,花草,蕨类植物 |
Decal | 场景贴花 |
Stone | 石头,岩石,悬崖 |
Destruction | 破碎体 |
Terrain | 地形 |
请不要将未使用的美术资源放到主干工程,可放在美术工程。
如果项目使用主材质,layered materials,或任何形式的可重用材质或纹理,不属于资产的任何子集,这些资产应该位于这里。如下面文件夹
-
3D材质库(MaterialLibrary),放一些通用的材质球,Tilling材质可放在这里,命名中不用加Tilling。
-
3D贴图库(TextureLibrary),放一些通用的贴图,和一些Noise贴图。
-
特效通用资源库(TextureLibrary)
-
UI通用资源库(GUILibrary)
对于资源的命名的规范应该像法律一样被遵守。一个项目如果有好的命名规范,那么在资源管理、查找、解析、维护时,都会有极大的便利性。
(旧基本命名规则)元素类型_场景名称_美术自定义名字_排序
记住前缀_基础资产名称_变体_后缀
模式并按照常识就可以保证良好的资产名称。以下是关于每个元素的一些详细规则。
前缀和后缀由资产类型通过下面的资产名称缩写表确定。后缀如果没有可为空
基础资产名称表示相关资产的逻辑分组,所有资产都应该有一个基础资产名称,基础资产名称字段只能有一个。这个逻辑组中的任何资产都应该遵循前缀_基础资产名称_变体_后缀
。基础资产名称应该由与这组资产的上下文相关的简短且易于识别的名称确定。例如,如果有一个名为M1的机甲角色,那么M1的所有资产都将具有M1的基础资产名称。
变体是一个简短且易于识别的名称,对于资产的独特和特定变体,表示资产的逻辑分组,这些资产是基本资产名称的子集。对于资产的唯一但通用的变体,Variant是一个从1开始的数字。例如,如果生成一些难以描述的岩石,那么它们就会被命名为Rock_1、Rock_2、Rock_3等等。如果有超过100个资产,应该考虑使用不同的基名或使用多个变体名来组织它们。
根据资产变体的制作方式,您可以将变体名称链接在一起,变体字段可以多个。例如,如果正在创建地板资产,应该使用基本名称Flooring,并带有连锁变体,如Flooring_Marble_1, Flooring_Maple_1,Flooring_Tile_Squares_1,P_Building_Wall_1_Base,P_Building_Wall_2_Base,P_Building_Wall_1_A。T_Dirt_Blue_D,M_Dirt_Blue
变体名可用用阿拉伯数字来排序,兄弟用A,B,C,D**(同一个妈生的)**。
使用前缀的好处
- List item添加前缀来区分资产类型,例如“P_”命名预制件,"Scn_"命名场景。当我们发现预制件和模型很容易混淆时,我们开始使用前缀。
- 当把材质球,预制件,模型,贴图放在一起时,命名带有前缀,可区分不同类型资源,因为旧规则不同类型资源会有重名。
- 这种方法的另一个优点是,在搜索字段中输入"P_Bear"而不是t:Prefab Bear,它更短。
当给一个资源命名的时候,请参照以下表格来决定在基本资源名前所使用的前缀
资产类型 | 前缀 | 后缀 | 备注 |
---|---|---|---|
Scene | * | 例如 Scenes/A4_C17_Parking_Garage.unity |
|
Scene (Lighting) | _Lighting | ||
Scene (Geometry) | _Geo | ||
Scene (Gameplay) | _Gameplay | ||
Prefab | P_ | ||
Probe (Reflection) | RP_ | ||
Probe (Light) | LP_ | ||
Volume | V_ | ||
Trigger Area | _Trigger | ||
Material | M_ | ||
Physical Material | PM_ | 物理材质球 | |
Static Mesh | SM_ | ||
Animation Mesh | @ | @M5_Ascend1.fbx | |
Skeletal Mesh | SK_ | ||
Bone Constraint配置文件 | BC_ | Blender的骨骼约束文件,存放位置例如:M1/Configs/BC_M12_Arm_1_L | |
Slot插槽配置文件 | Slot_ | 特效或者机甲水贴插槽配置文件,M1/Configs/Slot_M12_1 | |
Destructible Mesh | DM_ | 破碎模型 | |
Mesh Collider模型 | SM_ | _Collider | 区别于原始模型专门做的 |
Skeleton | SKEL_ | ||
Rig | RIG_ | ||
Animation Clip | A_ | ||
Animation Controller | AC_ | ||
Avatar Mask | AM_ | ||
Texture | T_ | _? | 见贴图 |
Visual Effects | VFX_ | ||
Particle System | PS_ | ||
Light | L_ | ||
Camera (Cinemachine) | CM_ | Virtual Camera |
文件扩展名: PNG
, TIFF
or HDR
贴图名称 | 贴图类别 | 前缀 | 后缀 | 备注 |
---|---|---|---|---|
颜色贴图 | Base Color : (tif 48位) | T_ | _D | |
颜色贴图带Alpha | Base Color With Alpha/Opacity | T_ | _A | |
混合贴图 | Texture (Packed) (tif 64位) | T_ | _* | *可看下面表 |
法线贴图 | Normal Map : (tif 48位) | T_ | _N | |
自发光贴图 | Emission : (tif 48位) | T_ | _E | |
AO贴图 | Ambient Occlusion : (tif 48位) | T_ | _AO | |
曲率图 | T_ | _C | ||
油污图 | T_ | _G | ||
序列图 | 可有不同贴图类型 | TS_ | _* | TS_X_D,TS_X_N |
遮罩 | ||||
地形高度贴图 | Height :(tif 48位) | _H | ||
Cubemap贴图 | Cubemap:(exr) | TC_ | ||
Render Target | RT_ |
不分二方连续或者四方连续贴图,由材质名称即可判定
通常的做法是将多层纹理数据打包到一个纹理数据中。 这方面的一个例子是将金属度、环境遮蔽、细节遮罩、光滑度、分别打包为纹理的红、绿、蓝、Alpha通道。 要确定后缀,只需将上面给定的后缀字母堆叠在一起,例如_MADS。 图示如下:
注意当MADS贴图导入Unity请不要勾sRGB。
模型文件等级 | 文件后缀 | 备注 |
---|---|---|
HD | _HD | 展示型模型,不用于战斗场景中 |
LOD 第0级 | 模型面数最多 | |
LOD第一级 | _LOD1 | |
LOD第二级 | _LOD2 | |
LOD第三级 | _LOD3 | 模型面数最低,模型简模轮廓 |
无法复制加载中的内容
关卡分成多个加载场景,美术资源场景,灯光场景
可能是下面这些,可新增
变体名称 | 英文名称 | 备注 |
---|---|---|
是否破碎 | Break | |
是否动画 | Anim | |
底座 | Base | |
是否合组 | Group | 对预制件打组生成 |
资产类型 | 前缀 | 后缀 | 备注 |
---|---|---|---|
Physical Material | PM_ | ||
Physics Asset | PHYS_ | 破碎 | |
Destructible Mesh | DM_ |
3ds Max中的所有网格
资产类型 | 前缀 | 后缀 | 备注 |
---|---|---|---|
Mesh | Mesh_LOD1* | 如果模型使用LOD,使用后缀lod* | |
Mesh Collider | _Collider |
例:
场景建筑物
资产类型 | 资产名字 |
---|---|
预制件 | P_Flooring_Marble |
模型 | SM_Flooring_Marble |
材质 | M_Flooring_Marble |
贴图 | T_Flooring_Marble |
岩石
资产类型 | 资产名字 |
---|---|
Static Mesh (1) | S_Rock_1 |
Static Mesh (2) | S_Rock_2 |
Static Mesh (3) | S_Rock_3 |
Material | M_Rock |
Material Variant(Snow) | M_Rock_Snow |
资产类型 | 资产名字 |
---|---|
底座残骸预制件 | P_Building_Base |
资产类型 | 资产名字 |
---|---|
预制件 | P_Decal_Stain |
材质 | M_Decal_Stain |
贴图 | T_Decal_Stain |
大类 | 共同命名(X) | FBX | 带骨骼绑定FBX | 预制件 | 材质 | 贴图 | 动画 | 共同命名例子 |
---|---|---|---|---|---|---|---|---|
机身 | 机甲编号_机身部位_机身部位编号 | SM_X | SK_X | P_X | M_X | T_X_贴图类别 | @机甲编号_机身部位_机身部位编号_动画名字 | M1_Head_1 |
手臂和腿要分左右 机甲编号_机身部位_机身部位编号_左右 |
M1_Arm_1_L M1_Arm_1_R M1_Leg_1_L M1_Leg_1_R |
|||||||
装备(含武器) | 机甲编号_装备类型_装备编号_左右 | SM_X | SK_X | M_X | T_X_贴图类别 | @机机甲编号_装备类型_装备编号_动画名字 | M1_WeaponBHL_1 |
机甲编号
机甲编号 | ID(序号累加) | 名称 | 英文名称 |
---|---|---|---|
M | 1 | 小白 | M1 |
驾驶员编号 | ID | 名称 | 英文名称 |
C | 1 | 驾驶员 | C1 |
NPC编号 | ID | 名称 | 英文名称 |
NRA | 1 | NPC机甲0.3强度 | NRA1 |
NRB | 1 | NPC机甲0.5强度 | NRB1 |
NV | 1 | NPC载具 | NV1 |
NT | 1 | 防御塔单位 | NT1 |
NB | 1 | Boss类单位 | NB1 |
编号:C加序号
模型命名
前缀_驾驶员编号_部位_序号
例:
SM_C1_Body_1
硬表面部位,前缀_驾驶员编号_TrimSheet_序号
例:
SM_C1_TrimSheet_1
材质球命名
前缀_驾驶员编号_部位_序号
例:
M_C1_Body_1
硬表面部位,前缀_驾驶员编号_颜色_序号
例:
M_C1_Black_1
武器装备前加挂载点名称 | 相同 | ||
---|---|---|---|
挂载点 | 命名 | + 后缀L R BH DH SH | |
Hand 手 | HandX | 手持 | 例:HandX_1_BH 两把武器,双持 _DHL 一把武器左手拿右手扶 _DHR 一把武器右手拿左手扶 _SHL 一把武器左手拿 _SHR 一把武器右手拿 HandX_1_L 左臂挂载武器 HandX_1_R 右臂挂载武器 + 后缀L R BH DH SH 区分左右,不加则不分左右 |
Arm 手臂 | ArmX | 手臂挂载 | |
shoulder 肩 | shoulderX | 肩部挂载 | |
Back 背部 | BackX | 背部挂载 | |
Leg 腿部 | LegX | 腿部挂载 |
武器装备命名(X) | |
---|---|
Rifle | 步枪 |
Pistol | 手枪 |
Cannon | 加农炮 |
Grenade | 投弹炮 |
Funnel | 浮游炮 |
Electromagnetism | 电磁炮 |
Axe | 斧头 |
Hooklock | 勾爪 |
Shield | 盾牌 |
Spear | 长矛 |
Hammer | 长锤子 |
Sword | 长\短剑 |
RobotArmKnife | 机械臂刀类 |
RobotArmGun | 机械臂枪炮类 |
launcher | 发射装置 |
Scanner | 扫描装置 |
Cloaking | 隐身装置 |
Energy+武器名称 | |
EnergyWeapon | 能量武器 |
装备名称+ L R 不加代表不分左右 | |
Bag | 背包 |
Missile | 导弹舱 |
MissileL | 导弹舱 左 |
MissileR | 导弹舱 右 |
Uav | 无人机 |
机身部位 | 名称 | 范围描述 | 图示颜色 |
---|---|---|---|
躯干 | Torso | 躯干,胸,腹,驾驶舱 | 绿色 |
头 | Head | 天线,头,脖子 | 黄色 |
手 | Arm | 肩,手臂,手掌 | 紫色 |
腿 | Leg | 大腿,小腿,脚掌 | 红色 |
如图:不同颜色代表不同部位换装(图示仅参考)
动画名字是不确定命名字段。
如果是临时模型,需加后缀字段_Temp。临时模型不会对文件进行规则检查。
例:SK_M2_Torso_1_Temp
例
机甲M1相关资源命名
资产类型 | 资产名字 |
---|---|
Skeletal Mesh | SK_M1_Torso_1 |
Material | M_M1_Torso_1 |
Texture (Diffuse/Albedo) | T_M1_Torso_D |
Texture (Normal) | T_M1_Torso_N |
Texture (Body Diffuse) | T_M1_Torso_D |
前缀_机体编号_部件颜色(自定义)_序号(从数字1开始)
例:M_M1_Red_1
M_M1_Yellow_1
前缀_机体编号_部件颜色_序号_E
例:M_M1_Yellow_1_E
前缀_机甲编号_灯光功能\部件_序号_E
例:M_M1_Propeller_1_E 喷口灯光
灯光功能 | |
---|---|
Propeller | 喷口 |
Polishing | 系统提示 |
Ultimate | 大招提示 |
Ultimate_CD | 大招CD提示 |
EIC | EIC能量 |
Braking | 推进器 |
资产类型 | 基础资产名称 | 备注 |
---|---|---|
刻线类贴花或者裁剪片 | PanelAtlas | |
凹凸细节贴花 | NormalAtlas | 合并SimpleAtlas和SubsetAtlas |
裁剪片 | TrimSheets | |
水贴 | InfoAtlas |
适用贴图命名
前缀 | 后缀 | PanelAtlas | NormalAtlas | TrimSheets | InfoAtlas | |
---|---|---|---|---|---|---|
颜色贴图带Alpha | T_ | _A | T_InfoAtlas_A | |||
(R)Ao (G)Curvature (B)Height (A)SubsetMask 遮罩贴图 | T_ | _ACHS | T_PanelAtlas_ACHS | T_NormalAtlas_ACHS | T_TrimSheets_ACHS | |
法线贴图 | T_ | _N | T_PanelAtlas_N | T_NormalAtlas_N | T_TrimSheets_N | |
自发光贴图 | T_ | _E | T_NormalAtlas_E | T_TrimSheets_E |
资产类型 | 前缀 | 后缀 | 备注 |
---|---|---|---|
Font | Font_ | ||
Texture (Sprite) | T_ | _GUI |
前缀 | 基础资产名称 | 变体1 | 变体2 | 变体3 | 后缀 |
---|---|---|---|---|---|
系统 | 模块 | 子系统 | 元件序号 |
根据Shader的功能来分类文件夹。命名中前缀可用SG_(Shadergraph编写),
如特效通用Shader:SG_StandardEffect
类别 | Timeline命名 | |
---|---|---|
Movie_Map | TL_场景名称(_子场景名称)_美术资源名称_1 | Map_Factory/TL_Zhengbeicang_ChangePlayer_1.playable,P_Zhengbeicang_ChangePlayer_1.prefab |
Movie_Character | TL_M1_Out_1 TL_M1_Skill_1 | |
Movie_UI | ||
Movie_Playback |
级别 | 模型面数(三角面) | 备注 |
---|---|---|
LOD0 | 十万以内 | 不包含倒角 |
十个以内(包含十个)
一个关卡可含多个场景
美术资源场景
Architecture
Nature
Terrain
Decals
Effect
美术灯光及后期场景
Sun
Lights
Sky and Fog Volume
PostProcessing
逻辑场景(策划和程序管理)
Cameras
_Dynamic
Actors
Items
...
- 所有空的对象应该定位在0,0,0,使用默认的旋转和缩放。