Working with creature sheets
Working with creature sheets
General information about sheets is in "Working with sheets"
Creatures are a bit more elaborate than armor or weapons...
Basically, there are three sets of files...
- Creature files : they define shape, size, stats, loot etc.
- Attack files : a set of files that define the attacks the creature has (AI)
- Anim files : these define the animations for the creature.
If you use animations that are meant for a different creature, the results
can be anything from garbadge to hillariously funny.
The creature files:
- _dag.creature : parent to _dag_for.creature, this defines the entire race
- _dag_for.creature : parent to creature, in this case, for every dag creature that's forest based
- chdfa1.creature : the creature itself
- dag_light_slashing_chest.item : this contains the actual shape definition amongst others
_dag.creature (found in Game_Elem/Creature/fauna/Parent_creature_prototype/)
<PARENT Filename="_formuli.creature"/> <-- no Idea... haven't looked in to this yet
<PARENT Filename="_ai_herbivore_craintif.creature"/> <-- general herbivore information
<PARENT Filename="_medium_slashing_armor_set.creature"/> <-- armor set the creature uses (generic here)
<STRUCT>
<STRUCT Name="Basics">
<ATOM Name="Race" Value="dag"/>
<ATOM Name="DamageLocalisationTable" Value="quadruped"/>
<ATOM Name="Size" Value="small"/>
<ATOM Name="Profile" Value="caster healer"/>
<STRUCT Name="Scores">
<ATOM Name="HitPoints" Value="very low"/>
<ATOM Name="Sap" Value="default"/>
<ATOM Name="Stamina" Value="very low"/>
</STRUCT>
<STRUCT Name="Equipment">
<STRUCT Name="Body">
<ATOM Name="Item" Value="dag_light_slashing_chest.item"/> <-- basically the same as a player armor
</STRUCT>
<STRUCT Name="Legs">
<ATOM Name="Item" Value="light_slashing_legs.item"/>
</STRUCT>
<STRUCT Name="Arms">
<ATOM Name="Item" Value="light_slashing_arms.item"/>
</STRUCT>
<STRUCT Name="Hands">
<ATOM Name="Item" Value="light_slashing_hands.item"/>
</STRUCT>
<STRUCT Name="Feet">
<ATOM Name="Item" Value="light_slashing_feet.item"/>
</STRUCT>
<STRUCT Name="Head">
<ATOM Name="Item" Value="light_slashing_head.item"/>
</STRUCT>
</STRUCT>
<STRUCT Name="MovementSpeeds">
<ATOM Name="WalkSpeed" Value=""3d data.Scale"*1.1"/>
<ATOM Name="RunSpeed" Value=""3d data.Scale"*3.536918"/>
</STRUCT>
</STRUCT>
<STRUCT Name="3d data">
<ATOM Name="Skel" Value="TR_MO_Dag.skel"/>
<ATOM Name="AnimSetBaseName" Value="dag"/> <-- this defines what animations will be used
<ATOM Name="LodCharacterName" Value="TR_MO_dag_LOD"/>
<ATOM Name="LodCharacterDistance" Value="50.0"/>
<ATOM Name="NamePosZLow" Value="0.5"/> <-- position of the name label in scene
<ATOM Name="NamePosZNormal" Value="0.7"/>
</STRUCT>
<STRUCT Name="Harvest"> <-- MP values define what can be looted
<STRUCT Name="MP1">
<ATOM Name="Name" Value="dag meat"/>
</STRUCT>
<STRUCT Name="MP2">
<ATOM Name="Name" Value="dag canines"/>
</STRUCT>
<STRUCT Name="MP3">
<ATOM Name="Name" Value="dag tongue"/>
</STRUCT>
</STRUCT>
<STRUCT Name="Collision">
<ATOM Name="CollisionRadius" Value="0.32"/> <-- defines the "outline"
</STRUCT>
<ATOM Name="attack_list1" Value="dag.attack_list"/> <-- the list of attacks the creature has
</STRUCT>
_dag_for.creature (found in Game_Elem/Creature/fauna/Ecosystem/forest/)
<PARENT Filename="_dag.creature"/> <-- the parent file
<STRUCT>
<STRUCT Name="Basics">
<ATOM Name="Ecosystem" Value="Forest"/> <-- obvious
<STRUCT Name="Scores">
<ATOM Name="HitPoints" Value="default"/>
<ATOM Name="Stamina" Value="default"/>
</STRUCT>
<STRUCT Name="Equipment">
<STRUCT Name="Body">
<ATOM Name="Texture" Value="Jungle/High Quality/Old"/> <-- you can override these in the creature itself
</STRUCT>
</STRUCT>
</STRUCT>
<STRUCT Name="3d data">
<ATOM Name="Skel" Value="TR_MO_Dag.skel"/> <-- all dags have this skel, even if the shapes differ
</STRUCT>
chdfa1.creature (found in Game_Elem/Creature/fauna/bestiary/forest/)
<PARENT Filename="_dag_for.creature"/>
<PARENT Filename="dag_attack.creature"/> <-- parent files
<PARENT Filename="_chdfa1_mp.creature"/> <-- defines the possible loot for this creature
<STRUCT>
<STRUCT Name="Basics">
<ATOM Name="PlayerSkillLevel" Value="1"/>
<ATOM Name="NbPlayers" Value="1"/>
<ATOM Name="PlayerHpLevel" Value="1"/>
<ATOM Name="NbHitToKillPlayer" Value="15"/>
<STRUCT Name="Characteristics"> <-- creature stats
<ATOM Name="Constitution" Value="5"/>
<ATOM Name="Metabolism" Value="5"/>
<ATOM Name="Intelligence" Value="5"/>
<ATOM Name="Wisdom" Value="5"/>
<ATOM Name="Strength" Value="5"/>
<ATOM Name="WellBalanced" Value="5"/>
<ATOM Name="Dexterity" Value="5"/>
<ATOM Name="Will" Value="5"/>
<ATOM Name="DynamicEnergyValue" Value="0.00126"/> <-- don't know :(
</STRUCT>
<STRUCT Name="MovementSpeeds">
<ATOM Name="WalkSpeed" Value="2.5"/>
<ATOM Name="RunSpeed" Value="5"/>
<ATOM Name="GroupDispersion" Value="0.7"/> <-- how close they stay to another
</STRUCT>
<ATOM Name="life" Value="10"/> <-- more stats
<ATOM Name="AttackSpeed" Value="3"/>
<ATOM Name="LifeRegen" Value="0.109589041"/>
<ATOM Name="AttackLevel" Value="1"/>
<ATOM Name="DefenseLevel" Value="1"/>
<ATOM Name="XPLevel" Value="1"/>
<ATOM Name="TauntLevel" Value="0"/>
<ATOM Name="MeleeReachValue" Value="0"/>
<ATOM Name="RegionForce" Value="1"/>
<ATOM Name="ForceLevel" Value="1"/>
<ATOM Name="LocalCode" Value="1"/>
<ATOM Name="DodgeAsDefense" Value="true"/>
</STRUCT>
<STRUCT Name="3d data">
<ATOM Name="Skel" Value="TR_MO_Dag.skel"/> <-- creature skeleton file
<ATOM Name="Scale" Value="1.3"/> <-- how big the creature will be
<ATOM Name="SoundFamily" Value="0"/>
<ATOM Name="SoundVariation" Value="0"/>
<ATOM Name="ForceDisplayCreatureName" Value="true"/>
</STRUCT>
following in the file is a MP list of lootable materials, continued by a lot of creature
stats that you can edit with georges editor.
dag_light_slashing_chest.item (found in Game_elem/items/armor/creature_armor/creature_body_armor_specific/)
<PARENT Filename="_creature_armor.item"/> <-- default xreature armor info
<STRUCT>
<STRUCT Name="basics">
<STRUCT Name="EquipmentInfo">
<ARRAY Name="EquipmentSlots">
<ATOM Name="chest" Value="Chest"/> <-- the armor slot to be equipped
</ARRAY>
</STRUCT>
</STRUCT>
<STRUCT Name="armor">
<ATOM Name="Armor category" Value="light"/> <-- type of armor (l/m/h)
</STRUCT>
<STRUCT Name="3d">
<ATOM Name="shape" Value="TR_MO_Dag.shape"/> <-- the shape of your creature!!
</STRUCT>
Anim files:
for the animations there's a whole set of files.
- entities.animset_list : a list of all sets, not just for this creature
- pet.animset_mode : parent to most creature anim sets (pet is for mobs, packers and mounts)
- dag.animset_mode : in this case only has _pet.animset_mode as parent.
- dag*__.animation_set : defines the animations for * mode (explained later)
entities.animset_list (found in game_element/anim/anim_set/
<STRUCT>
<ARRAY Name="list">
<ATOM Name="fy_hof" Value="fy_hof.animset_mode"/>
<ATOM Name="fy_hom" Value="fy_hom.animset_mode"/>
<ATOM Name="dag" Value="dag.animset_mode"/> <-- defines the dag animation set
<ATOM Name="kamiguard" Value="kamiguard.animset_mode"/> <-- added this for a new creature
</ARRAY>
</STRUCT>
_pet.animset_mode (found in game_element/anim/anim_set/pet/)
parent in this case is _creature.animset_mode. this defines the different modes, and the
file name bases for specific actions in the mode. Didn't look in to it yet...
the other files are found in game_element/anim/anim_set/pet/dag/
dag.animset_mode only has a parent (_pet.animset_mode)
dag_*__.animset :
*_ in this case can be :alert, combat, death, default, eat, hungry, rest.
part of a file :
<STRUCT Name="idle"> <-- this specific struct is for the "idle" mode
<ARRAY Name="animations">
<STRUCT>
<ATOM Name="filename" Value="TR_MO_dag_idle.anim"/>
</STRUCT>
<STRUCT>
<ATOM Name="filename" Value="TR_MO_dag_idle1.anim"/>
</STRUCT>
<STRUCT>
<ATOM Name="filename" Value="TR_MO_dag_idle2.anim"/>
</STRUCT>
<STRUCT>
<ATOM Name="filename" Value="TR_MO_dag_idle_aboie.anim"/>
</STRUCT>
<STRUCT>
<ATOM Name="filename" Value="TR_MO_dag_levelapatte.anim"/>
</STRUCT>
<STRUCT>
<ATOM Name="filename" Value="TR_MO_dag_idle_gratte.anim"/>
</STRUCT>
</ARRAY>
<ATOM Name="LodCharacterAnimation" Value="TR_MO_dag_idle.anim"/>
</STRUCT>
The files have structs for all sorts of modes, like idle, eat, attack, death...
Each struct defines the different animations a creature can do when in that specific mode.
Each creature has different animations. It is possible to use animations for a different creature,
but unless both use the same skeleton file, the results may be less than impressive. In some cases
the creature ends up unrecognizably maimed. Tha animations also define how high the creature is
above the ground. Using the wrong animations can cause a creature to be underground of float above it.
If you are editing a creature to make a new one: you can leave out animations in a mode if the
new creature has less animations that suit this mode. Or you can use an animation a few times, to
increase the odds this animation is used in the specific mode.
Attack files
I didn't change these files. An attack list defines what AI attack actions your creature can do..
dag_attack.actionlist (found in Game_elem/Creature/NPC/bestiary/actionlist/)
<STRUCT>
<ARRAY Name="actions">
<ATOM Value="dag_attack.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
<ATOM Value="default_fauna_attack_slash.aiaction"/>
</ARRAY>
As you can see, the dag uses the default aiaction a lot.
dag_attack.aiaction (found in Game_elem/Creature/NPC/bestiary/aiaction/)
<PARENT Filename="default_fauna_attack_slash.aiaction"/> <-- parent
<STRUCT>
<ATOM Name="ArmorAbsorptionFactor" Value="1"/>
<ATOM Name="Behaviour" Value="CREATURE_ATTACK_0"/>
<ATOM Name="DurationType" Value="Normal"/>
<ATOM Name="EffectDurationType" Value="Normal"/>
</STRUCT>
As mentioned before, I don't know anything more about these files yet. I basically
rename the dag files (and references) to my new creature atm...
When I know more about the AI, I'll update it ;)