Files
HEROLL/art-bible/specs/asset-import-rules.csv

16 lines
3.1 KiB
CSV

asset_type,naming_pattern,source_format,export_format,authoring_size,unity_import,filtering,compression,atlas_or_group,pivot_or_slice,validation
WorldCharacter,CHR_{id}_{skin}_{action}_{frame},Aseprite or PSD,PNG RGBA,96-192px logical height,Sprite Multiple; PPU32; mesh FullRect,Point no mipmaps,ASTC 6x6 Android / ASTC 6x6 iOS,Atlas_CHR_{family},feet pivot normalized y=0.08,All frames integer aligned; no edge alpha bleed
Monster,MON_{biome}_{family}_{variant}_{action}_{frame},Aseprite or PSD,PNG RGBA,64-144px logical height,Sprite Multiple; PPU32,Point no mipmaps,ASTC 6x6,Atlas_MON_{biome},feet pivot normalized y=0.08,Silhouette and hostile accent check
Boss,BOSS_{id}_{phase}_{action}_{frame},Aseprite or PSD,PNG RGBA,192x137 minimum logical box,Sprite Multiple; PPU32,Point no mipmaps,ASTC 4x4,Addressables/Boss_{id},feet pivot shared across every clip,No frame exceeds box without explicit socket update
BiomeBack,ENV_{biome}_Back_{index},PSD layered,PNG RGB,1920x1080 source or 320x180 pixel base,Sprite Single; mipmaps optional,Point when pixel base otherwise Bilinear,ASTC 6x6,Addressables/Biome_{biome},center pivot,No alpha unless parallax cutout is required
BiomeFront,ENV_{biome}_Front_{index},PSD layered,PNG RGBA,1920x1080 source or 320x180 pixel base,Sprite Single,Point when pixel base,ASTC 6x6,Addressables/Biome_{biome},bottom center,Playable edge has >=4px value separation
Tile,UI_TILE_{type}_{state},PSD or vector master,PNG RGBA,256x256 source,Sprite Single,Point or Bilinear by family; never mixed in same atlas,ASTC 6x6,Atlas_UI_Tile,center pivot with 4px transparent safe edge,Recognizable at 64x64
UI9Slice,UI_PANEL_{family}_{state},PSD or vector master,PNG RGBA,minimum 96x96 source,Sprite Single,Point or Bilinear by family,ASTC 6x6,Atlas_UI_Core,border >=12px; corners never scaled,Stress test at 50%-250% size
Icon,ICON_{domain}_{id}_{state},PSD or vector master,PNG RGBA,256x256 source,Sprite Single,Bilinear no mipmaps,ASTC 6x6,Atlas_ICON_{domain},centered optical bounds,Readable at 48x48 and grayscale
Portrait,PORT_{character}_{expression},PSD layered,PNG RGBA,1024x1024 or 1024x768,Sprite Single,Bilinear no mipmaps,ASTC 6x6,Addressables/Portraits,anchor eyes and pointer hand,Face readable at 160px height
VFXSheet,VFX_{element}_{shape}_{variant},Aseprite or EmberGen sheet,PNG RGBA,64-256px cells; power-of-two sheet,Sprite Multiple,Point for pixel VFX; Bilinear for soft masks,ASTC 4x4,Atlas_VFX_{element},center or impact-origin pivot,Frame count and FPS stored in clip metadata
Font,FONT_{family}_{weight},OTF or TTF,TMP asset,CJK dynamic source + 4096 atlas,TMP Dynamic,Linear,R8 or platform default,Group_Font_{locale},fallback chain defined,No missing glyphs in zh-Hans zh-Hant en ja ko
Animation,ANIM_{assetId}_{action}_{variant},Unity clip or Aseprite tags,AnimationClip,60Hz timeline,n/a,n/a,n/a,Controller_{assetId},events are presentation-only,No damage or reward logic depends solely on clip event
Material,MAT_{domain}_{blend}_{variant},ShaderGraph or material,Unity Material,n/a,SRP Batcher compatible,n/a,n/a,Group_Materials,n/a,Keywords <=4 and mobile variant provided