Asset Filename Guidelines

Any province related discussion not fitting into other categories
Post Reply
User avatar
R-Zero
PT Modder
Posts: 326
Joined: Fri Sep 25, 2015 8:50 pm

Asset Filename Guidelines

Post by R-Zero » Tue Jul 17, 2018 2:38 pm

Since HR427 project is relatively young and has much, much lesser asset count than its elders, this gives us more leevay with optimizing our file structure. The problem I see with current PT files is that the filenames are often comprised of redundant parts. An example:

Meshes\pc\i\pc_in_anv_window_06.nif

As you can see, the pc_in_ part is already implied by \pc\i\ folders. And as the absolute character limit we have is just 32 symbols (actually even less but more on that later), it hurts our ability to make clear, readable filenames and forces us rely on inexplicit abbreviations. Another example:

Meshes\pc\x\pc_ex_imp_hway_sggr.nif
Meshes\pc\x\pc_ex_imp_hway_sgor.nif
Meshes\pc\x\pc_ex_imp_hway_sgrd.nif

...what?

I, therefore, propose a new file naming scheme for HR to try out.

CAUTION:
CS warns you that the filename shouldn't be longer than 32 characters.
In fact, if you discount the file extension and a hidden \ symbol in the beginning, this number is actually 27.
Moreover, the project file directory (hr\) further reduces it to 24.
In other words, the filename length limitation is:
Meshes\hr\[24 symbols].nif
Icons\hr\[24 symbols].dds

CAUTION 2:
To prevent wasting even more characters, I'd recommend not using the _01 suffixes unless it's clear the object in question will later receive more variants. A lot of objects in vanilla end in _01 despite there being only a single variation.
Furthermore, there's no reason to use _01 if just _1 would very much suffice for the vast majority of objects.
Last edited by R-Zero on Wed Jul 18, 2018 10:58 am, edited 5 times in total.

User avatar
R-Zero
PT Modder
Posts: 326
Joined: Fri Sep 25, 2015 8:50 pm

Post by R-Zero » Tue Jul 17, 2018 2:40 pm

MESHES

Meshes\hr\*

Alchemy:
Meshes\hr\m\al_*.nif
i.e.
Meshes\hr\m\al_phyrric_acid.nif

Apparatus:
Meshes\hr\m\ap_[type]_*.nif
i.e.
Meshes\hr\m\ap_mor_sload.nif
alm = Alembic
cal = Calcinator
mor = Mortar and Pestle
ret = Retort

Armor Bodyparts and Ground:
Meshes\hr\a\[material]_[piece]_*.nif
i.e.
Meshes\hr\a\stl_helm_wayrest.nif
Meshes\hr\a\stl_cuirass_wayrest_gnd.nif

Clothing Bodyparts and Ground:
Meshes\hr\c\[type]_[tier]*.nif
i.e.
Meshes\hr\c\shirt_com_01.nif
Meshes\hr\c\shoes_exp_03_gnd.nif

Race Body Part:
Meshes\hr\b\[race]_[sex]_[part].nif
i.e.
Meshes\hr\b\snow_m_ankle.nif

Book:
Meshes\hr\m\bk_[type]*.nif
i.e.
Meshes\hr\m\bk_scroll_02.nif

Container:
Meshes\hr\o\[set]_*.nif
i.e.
Meshes\hr\o\bjl_chest_large_01.nif

Natural Container:
Meshes\hr\o\[type]_*.nif
i.e.
Meshes\hr\o\flo_bitterstar_01.nif
Meshes\hr\o\rck_malouchite_01.nif

Door:
Meshes\hr\d\[location]_[set]_[type]*.nif
i.e
Meshes\hr\d\ex_ors_door_02.nif

Ingredient:
Meshes\hr\n\[type]_*.nif
i.e.
Meshes\hr\n\mn_malouchite.nif
cr = Creature
fd = Food
mn = Mine
fl = Flora
sp = Spice

Light:
Meshes\hr\l\[set]_[type]_*.nif
i.e.
Meshes\hr\l\norm_candle_01.nif

Lockpick:
Meshes\hr\m\pick_*.nif
i.e.
Meshes\hr\m\pick_weird.nif

Probe:
Meshes\hr\m\prob_*.nif
i.e.
Meshes\hr\m\prob_weird.nif

Repair:
Meshes\hr\m\rep_*.nif
i.e.
Meshes\hr\m\rep_whetstone.nif

Misc Item:
Meshes\hr\m\[set]_*.nif
i.e.
Meshes\hr\m\mal_bowl_01.nif
Meshes\hr\m\key_bone_01.nif

Weapon:
Meshes\hr\a\[material]_[piece]_*.nif
i.e.
Meshes\hr\a\stl_longsword_wayrest.nif

Creature:
Meshes\hr\r\*.nif
i.e.
Meshes\hr\r\spider.nif

Static, Interior Tileset:
Meshes\hr\i\[set]_*.nif
i.e.
Meshes\hr\i\bre_plain_corr.nif

Static, Exterior Architecture:
Meshes\hr\x\[set]_*.nif
i.e.
Meshes\hr\x\bre_cast_wall_tall_512.nif

Static, Furniture:
Meshes\hr\f\[set]_*.nif
i.e.
Meshes\hr\f\orc_kotatsu_01.nif

Static, Terrain Feature:
Meshes\hr\t\[set]_*.nif
i.e.
Meshes\hr\t\cliff_bluff_05.nif

Static, Flora:
Meshes\hr\p\[type]_[set]_*.nif
i.e.
Meshes\hr\p\tree_wroth_01.nif

Special Effects:
Meshes\hr\e\*.nif
i.e.
Meshes\hr\e\pankratosword_expl.nif
Last edited by R-Zero on Wed Jul 18, 2018 8:28 am, edited 2 times in total.

User avatar
R-Zero
PT Modder
Posts: 326
Joined: Fri Sep 25, 2015 8:50 pm

Post by R-Zero » Tue Jul 17, 2018 2:41 pm

ICONS

Icons\hr\*

Pretty much the same as with Meshes, just replace Meshes with Icons and .nif with .dds or .tga.

The only objects that have icons are:
Alchemy
Apparatus
Armor
Clothing
Book
Ingredient
Carriable Light
Lockpick
Probe
Repair
Misc
Weapon
Last edited by R-Zero on Wed Jul 18, 2018 8:29 am, edited 2 times in total.

User avatar
R-Zero
PT Modder
Posts: 326
Joined: Fri Sep 25, 2015 8:50 pm

Post by R-Zero » Tue Jul 17, 2018 2:41 pm

TEXTURES

Textures\hr\*

These ones allow for more leeway, since textures might be shared between different types of objects. Also because of that, the textures are all located in the same folder. Use prefixes instead of subfolders.

If a texture is model-specific, make the filename more specific too:

Textures\hr\a_stl_cuirass_wayrest.dds

But if the texture is more generic, give it a more generic name:

Textures\hr\wood_dark_planks_01.dds

Post Reply

Return to “HR High Rock Discussion”