Skip to content

Static Race Guidelines

zumbak04 edited this page Aug 20, 2022 · 4 revisions

Static races are basically headgears attached to not-moving transparent body.

Steps

  1. Use WoW Model Viewer or wow.export to get the model and texture. More about models can be read Here. There must be .mesh for model and .dds for texture in a corresponding folder in gfx\models\portraits\static_races
  2. Create a text file, change its extension to .asset. It should look like this:
Example
###arakkoaoutland_fel - Comment to separate models
pdxmesh = {
	name = "arakkoaoutland_mesh" # Name of our pdxmesh
	file = "arakkoaoutland.mesh" # Model file

	meshsettings = {
		name = "arakkoaoutlandShape"                               # Name of mesh in .mesh file
		index = 0                                                  # Never seen it using
		texture_diffuse = "arakkoaoutland_fel_base_1.dds"          # Texture with colors
		texture_normal = "default_yellow_normal.dds"               # Texture with shadows, for static races don't need to change it
		texture_specular = "male_elven_eyebrows_0_properties.dds"  # Texture with reflecting properties (metalness, etc.), for static races don't need to change it
		shader = "portrait_attachment_alpha_to_coverage"           # Shader reference, may be portrait_attachment (without alpha) and portrait_attachment_alpha_to_coverage (with alpha)
		shader_file = "gfx/FX/jomini/portrait.shader"              # Path to shader file, don't need to change it
	}
}
entity = {
	name = "arakkoaoutland_fel_entity"   # Name of our entity
	pdxmesh = "arakkoaoutland_mesh"      # Reference to pdxmesh

	meshsettings = {                               # Optional block, can be used to redefine some meshsettings, usefull if model has the same mesh, but differen texture
		name = "arakkoaoutlandShape"
		index = 0
		texture_diffuse = "arakkoaoutland_orange_base_1.dds"
	}
}
  1. Open to gfx\portraits\accessories\wc_races.txt, add something like:
Example
lichking = { # Name of accesory
	entity = {
		required_tags = ""         # Tags that must be met, in our case, it's empty
		node = "head_root"         # Name of the bone to be attached, in our case, it's head
		entity = "lichking_entity" # Reference to entity name
	}
}
  1. Open common\genes\wc_genes_static_models.txt, add something like inside static_model block:
Example
static_nerzhul = {           # Name of template to be used as reference
	index = 18           # Unique index, must not repeat
	male = {
		1 = lichking # Name of accesory we created above, there can be a few accecories, the number represents chance of using
	}
	female = male        # Can set here and below separate model for female, girl and boy
	boy = male
	girl = male
}
  1. Open gfx\portraits\portrait_modifiers\wc_race_portrait_modifiers.txt, add something like inside static_model block:
Example
static_cthrax = {
	dna_modifiers = {
		accessory = { # This part forces character to wear our model
			mode = add
			gene = static_model                                      # Gene type
			template = static_cthrax                                 # Reference to gene template
			range = { 0 1 } # For the randomness to work correctly   # If gene has a few variations, it sets random range
		}
		morph = { # This part forces character to be giant, different genes can be used
			mode = modify
			gene = gene_height
			template = giant_height
			value = 1
		}
	}	
	weight = {
		base = 0
		modifier = {
			add = 100                                               # Character will have this modifier 100% if trigger is meant
			is_race_no_gene_trigger = { RACE = creature_cthraxxi }  # Returns true if character has this trait
		}
	}
}
  1. Open common\scripted_triggers\wc_portrait_triggers.txt, add the same is_race_no_gene_trigger trigger in has_no_portrait_trigger. It will make sure the character has transparent body.