ModsUnityAssetBundles: Difference between revisions
Stlnegril9 (talk | contribs) vertices count info for LOD and modeling guidelines |
Stlnegril9 (talk | contribs) |
||
| Line 133: | Line 133: | ||
==Animation:== | ==Animation:== | ||
Also see [[ModsUnityAssetBundles#Specific_hierarchies:|Building Specific hierarchies]].<br> | Also see [[ModsUnityAssetBundles#Specific_hierarchies:|Building Specific hierarchies]].<br> | ||
BUILDING | BUILDING PRODUCTION ANIMATION | ||
: | :Animations can be added to the Production object and the name must end with "idle" (e.g. Building200_Production_Idle).<br> | ||
:It can have either one of two process animations: | :It can have either one of two process animations (wrap modes): | ||
::A) looped (ends with "processloop", e.g. Building200_Production_ProcessLoop) <br> | ::A) looped (name ends with "processloop", e.g. Building200_Production_ProcessLoop) <br> | ||
::B) whole length (ends with "processonce", e.g. Building200_Production_ProcessOnce)<br> | ::B) whole length (name ends with "processonce", e.g. Building200_Production_ProcessOnce)<br> | ||
PARTICLE EFFECTS<br> | BUILDING PARTICLE EFFECTS<br> | ||
:For particle effects you can add 1 or more | :For particle effects you can add 1 or more Particle Systems to the Production_Lx object, where "x" = the building level.<br> | ||
Example of Building animation in Unity:<br> | Example of Building animation in Unity:<br> | ||
[[File:UnityCodeExample_3D_Animation.png]] | [[File:UnityCodeExample_3D_Animation.png]] | ||
Revision as of 15:56, 16 December 2022
The Colonists Unity asset bundle naming convention AND hierarchy
Note Read/Write should be enabled in Unity Import Settings on imported models. The custom_log.txt will typically contain an error similar to
Not allowed to access vertices on mesh 'xxx' (isReadable is false; Read/Write must be enabled in import settings)
LOD (level of detail) and culling
General guidelines for model size (by number of vertices) and when to use LOD to improve game performance can be surmised by comparing to the Chocolate Factory (a fairly detailed building) that has ~3,000 vertices.
A building that would occur infrequently like a monument with 15,000 vertices should not have performance issues, but a building with 10 instances at 15,000 vertices might.
Using a LOD with far fewer vertices for views far away from the building (zoomed out) would be a good compromise.
Objects that can have many instances in game (e.g. resources, flora, or animals) should limit vertices for better performance.
For comparison, L1 Energy model has 354 vertices when zoomed in (LOD 0) and drops to 158 vertices when zoomed out (LOD 1).
- (LOD can be automated and range can be changed in unity)
- TIP: If the correct naming convention and hierarchy are used in a 3d modelling program that exports an FBX file, the LOD group is automatically created when imported into Unity .
- E.g. for
- anyNameButNotNecessaryEmptyObject
- xyz1_LOD0 (mesh object for LOD 0)
- xyz1_LOD1 (mesh object for LOD 1)
- the prefab "xyz1" will be created w/ the 2 LODs under it.
- anyNameButNotNecessaryEmptyObject
- Decent settings for LOD %'s, with LOD bias at 0.5, for resources are
| 100% | ← |
LOD0 | → |
7% | ← |
LOD1 | → |
2% | ← |
LOD2 | → |
0% | ← |
culled |
- Other assets that appear less frequently might use
| 100% | ← |
LOD0 | → |
2% | ← |
LOD1 | → |
0% | ← |
culled |
- "closest", i.e. highest detail, is LOD0.
General hierarchy:
ASSETS
- prefabs
Specific hierarchies:
ANIMALS
- animal_200
BOATS
- boat_200
- Main (active state)
- Construction (construction state)
- ResourceHolder (location for resource storage) empty gameobject is best
- UnitHolder (location for the captainbot to stand) empty gameobject is best
BUILDINGS
- building_200
- Construction_L1 (under construction building #200 for level 1)
- Main_Burn (object for construction burn particle effects, fire, when territory lost for level 1)
- Main_L1 (finished building #200 for level 1)
- Main_Burn (object for main burn particle effects, fire, when territory lost for level 1)
- Production (contains animated object for production for level 1)
- Rubble_L1 (Rubble for when territory lost for level 1)
- Rubble_Burn (object for rubble burn particle effects, smoke, when territory lost for level 1)
- Construction_L1 (under construction building #200 for level 1)
- Construction_L2
- Main_Burn
- Main_L2
- Main_Burn
- Production
- Rubble_L2
- Rubble_Burn
- Construction_L2
- Construction_L3
- Main_Burn
- Main_L3
- Main_Burn
- Production
- Rubble_L3
- Rubble_Burn
- Construction_L3
- Note any object ending with "_Burn" will have burn particles applied when the building burns.
FLORA
- flora_200
- Main (inclusion allows 360 random rotation)
NATURAL RESOURCES
- naturalresources_200
- subasset_naturalresources_200_0 (mineable resource 1 to 2)
- subasset_naturalresources_200_1 (mineable resource 3 to 4)
- subasset_naturalresources_200_2 (mineable resource 5 to 6)
- subasset_naturalresources_200_3 (mineable resource 7 to 8)
- subasset_naturalresources_200_4 (mineable resource 9 to 10)
PROJECTILES
- projectile_200
RESOURCES
- resource_200
STRUCTURES
- subasset_treefieldtree_200
- Main: (base tree)
- Fruit (fruit object on tree when fully grown)
- subasset_plantablefieldplantable_200
- Main
Example Hierarchy
Example of Building hierarchy of assets and naming convention in Unity:
Colliders:
See specific Asset page for information on colliders to include in assets (e.g. ModBuildings, ModResources, ModFlora, ModNatural_Resources,ModBoats )
Animation:
Also see Building Specific hierarchies.
BUILDING PRODUCTION ANIMATION
- Animations can be added to the Production object and the name must end with "idle" (e.g. Building200_Production_Idle).
- It can have either one of two process animations (wrap modes):
- A) looped (name ends with "processloop", e.g. Building200_Production_ProcessLoop)
- B) whole length (name ends with "processonce", e.g. Building200_Production_ProcessOnce)
- A) looped (name ends with "processloop", e.g. Building200_Production_ProcessLoop)
BUILDING PARTICLE EFFECTS
- For particle effects you can add 1 or more Particle Systems to the Production_Lx object, where "x" = the building level.

