FANDOM


Recommended Polycount

Characters - 2250 polygons

Vehicles - 1500 polygons

Weapons - 500 polygons

Maximum Support Per Model - 10,000 polygons

Textures

Character Models can have up to 6 textures which can be swapped out in realtime to create diffrent clothing. In order for your DTS Model to support that create 6 textures with the following names:

base.head.png

base.body.png

base.arms.png

base.hands.png

base.legs.png

base.feet.png



Create 6 material ID's on your character and apply the textures accordingly.

Skeleton Structure

The basic character uses the following Bones:



Bip01 Pelvis

Bip01 L Thigh

Bip01 L Calf

Bip01 L Foot

Bip01 R Thigh

Bip01 R Calf

Bip01 R Foot

Bip01 Spine

Bip01 Spine1

Bip01 Spine2

Bip01 Spine3

Bip01 Neck

Bip01 Head

Bip01 L Clavicle

Bip01 L Upperarm

Bip01 L Forearm

Bip01 L Hand

Bip01 L Fingers

Bip01 L FingersB

Bip01 L Thumb

Bip01 L ThumbB

Bip01 R Clavicle

Bip01 R Upperarm

Bip01 R Forearm

Bip01 R Hand

Bip01 R Fingers

Bip01 R FingersB

Bip01 R Thumb

Bip01 R ThumbB



Mount Nodes

Every Player model should have the following nodes:



eye (For the camera when in first person view)

cam (Free floating linked to Unlink-node)

Unlink (Node to detach the cam from the body in order to have free floating 3rd Person camera view)

mount0 (Right Hand - Primary Weapon)

mount1 (Left Hand - Offhand Weapon)

mount2 (Shield on Left Arm) mount3 (Helmet)

On the Items (Weapons/Helmets/Shields) Make sure you have a node called "mountpoint" at the spot where the Player should be holding/wearing it and that it is aligned as the mount(nr.) on the character model.



Base Animations

A Mob must have the following minimum animation dsq files to work without changing any code:



idle.dsq

cready.dsq

walk.dsq

run.dsq

attack1.dsq

pain1.dsq



there can be multiple attack and pain animations increment the trailing number and they will be automatically played in combat at random. - attack2.dsq attack3.dsq etc.

The sequence node in the file itself should be named as the file for instance "walk" in the walk.dsq

If you have models and sequences that do not follow these conventions you can reassign a sequence name in the models respective animation.cfg file:

Example: an animation.cfg file for a hypothetical bear mob looks like this:



datablock TSShapeConstructor($datablock) { baseShape = "~/data/shapes/$dts";

sequence0 = "#/bear/idle.dsq";

sequence1 = "#/bear/cready.dsq";

sequence2 = "#/bear/pain1.dsq";

sequence3 = "#/bear/pain2.dsq";

sequence4 = "#/bear/walk.dsq"; ***

sequence5 = "#/bear/run.dsq";

sequence6 = "#/bear/attack1.dsq";

sequence7 = "#/bear/attack2.dsq";

sequence8 = "#/bear/swimidle.dsq";

sequence9 = "#/bear/swim.dsq";

sequence10 = "#/bear/death.dsq"; };



      • Lets say your dsq for walking is called hamsterhop.dsq and not walk.dsq

then assign this file in the cfg like so:



sequence4 = "#/bear/hamsterhop.dsq walk";



Player Models have these base animations assigned. (I assume there is a fallback like with the mobs) that trailing digit animations only need the version 1 and more are optional:



idle.dsq

cready1h.dsq

cready2h.dsq

pain1.dsq

pain2.dsq

1hwalk.dsq

2hwalk.dsq

1hrun.dsq

2hrun.dsq

1hslashleft.dsq

1hslashright.dsq

1hslash2left.dsq

1hslash2right.dsq

1hslash3left.dsq

1hslash3right.dsq

1hthrustleft.dsq

1hthrustright.dsq

2hslash.dsq

2hslash2.dsq

2hslash3.dsq

2hthrust.dsq

unarmedleft.dsq

unarmedright.dsq

kick1.dsq

bowattack.dsq

shieldblock.dsq

spellprepare.dsq

spellcast.dsq

spellcast2.dsq

Some other unsorted notes



In "spawns" you put the models, animations and textures together:

example bear:



spawn.model = "bear/bear.dts"

spawn.animation = "bear"

spawn.textureSingle = "bear/bear_brown"



If the models has only one texture and Material ID you will use spawn.textureSingle = "single/bear_brown"

If it has more than one texture, the model must be setup to have the material ID's named: base.head.png base.body.png as above. And then call them in python:

Then you call the textures like so fer instance:



spawn.textureHead = "bear/bear_brown"

spawn.textureBody = "bear/bear_fuzzyhair"

Ad blocker interference detected!


Wikia is a free-to-use site that makes money from advertising. We have a modified experience for viewers using ad blockers

Wikia is not accessible if you’ve made further modifications. Remove the custom ad blocker rule(s) and the page will load as expected.