Skip to content

NCF – Extended list of Neutral creatures.

User Avatar
#2305
Auto-translated
fktifzobr@mail.ru

in Heroes the model file structure looks like this

there is a Model file, sometimes it comes without a label, inside it there are links to files

Material

Skeleton

Geometry

the first file leads to a Texture file, which in turn leads to a dds file with the actual texture – you can open it and recolor it

Skeleton and Geometry contain model data, namely codes that reference the skeleton and the model

for models from the original game they may be written directly into the Model file itself

take Psatkha's mod and try to find such a file there

you can even reference files from the original game like the Revenger does

model file

<?xml version="1.0" encoding="UTF-8"?>

<Model>

                <Materials>

                               <Item href="Revenger.(Material).xdb#xpointer(/Material)"/>

                </Materials>

                <Skeleton href="/Characters/Creatures/Necropolis/AlternativeUpgrade/SkeletonWarrior-skel.xdb#xpointer(/Skeleton)"/>

                <Geometry href="/Characters/Creatures/Necropolis/AlternativeUpgrade/SkeletonWarrior-geom.xdb#xpointer(/Geometry)"/>

                <Animations/>

                <WindPower>1</WindPower>

</Model>

 

 

 

now about animation

the AnimSet file

inside this file paths to files responsible for different animations are written

animsets

<AnimSet>

                <animations>

                               <Item>

                                               <Kind>attack00</Kind>

                                               <Anim href="Revenger-arena-attack00.xdb#xpointer(/BasicSkelAnim)"/>

                               </Item>

                               <Item>

                                               <Kind>happy</Kind>

                                               <Anim href="Revenger-arena-happy.xdb#xpointer(/BasicSkelAnim)"/>

                               </Item>

                               <Item>

                                               <Kind>hit</Kind>

                                               <Anim href="Revenger-arena-hit.xdb#xpointer(/BasicSkelAnim)"/>

                               </Item>

                               <Item>

                                               <Kind>idle00</Kind>

                                               <Anim href="Revenger-arena-idle00.xdb#xpointer(/BasicSkelAnim)"/>

                               </Item>

                               <Item>

                                               <Kind>move</Kind>

                                               <Anim href="Revenger-arena-move.xdb#xpointer(/BasicSkelAnim)"/>

                               </Item>

                               <Item>

                                               <Kind>stir00</Kind>

                                               <Anim href="Revenger-arena-stir00.xdb#xpointer(/BasicSkelAnim)"/>

                               </Item>

                               <Item>

                                               <Kind>stir01</Kind>

                                               <Anim href="Revenger-arena-stir01.xdb#xpointer(/BasicSkelAnim)"/>

                               </Item>

                </animations>

                <ExpSrcScene/>

                <ExpSrcClipFolder/>

                <ExpRootTransform/>

</AnimSet>

 

 

inside each animation there is also a numeric code responsible for it, a path to the sound file, and a path to the EFFECT file

individual animation

<?xml version="1.0" encoding="UTF-8"?>

<BasicSkelAnim>

                <SrcName href="/H5A2/Creatures/AlternativeUpgrades/Necropolis/T1_SkeletonWarrior/SkeletonWarrior.mb"/>

                <uid>0C9C5A1E-FC1C-4F9A-A2D5-F5E7C2649C9F</uid>

                <ExpSrcClip href="/H5A2/Creatures/AlternativeUpgrades/Necropolis/T1_SkeletonWarrior/Animations/Clip/SkeletonWarrior.idle00.ma"/>

                <ExpRootTransform>Global</ExpRootTransform>

                <ExpFrameFirst>0</ExpFrameFirst>

                <ExpFrameLast>0</ExpFrameLast>

                <ExpSettingsFile href=""/>

                <MovementSpeed>0</MovementSpeed>

                <SpeedFactor>1</SpeedFactor>

                <Sound href="/Sounds/_(Sound)/Creatures/Necropolis/T1/idle00.xdb#xpointer(/Sound)"/>

                <Effect href="/Effects/_(Effect)/Characters/Creatures/Neutral/H5A0/Revenger/idle.(Effect).xdb#xpointer(/Effect)"/>

                <SpeedLineFallTime>250</SpeedLineFallTime>

                <SpeedLineMaterial/>

</BasicSkelAnim>

 

 

to begin with, you should practice on models that already have effects attached, for example the Revengers have a helmet, shield, left and right shoulder pads, and a sword attached

the effect file contains a link to each attached model, more precisely to a ModelInstance file

effect

<?xml version="1.0" encoding="UTF-8"?>

<Effect>

                <Instances/>

                <Lights/>

                <Models>

                               <Item href="Revenger_helmet.(ModelInstance).xdb#xpointer(/ModelInstance)"/>

                               <Item href="Revenger_LC.(ModelInstance).xdb#xpointer(/ModelInstance)"/>

                               <Item href="Revenger_RC.(ModelInstance).xdb#xpointer(/ModelInstance)"/>

                               <Item href="Revenger_sword.(ModelInstance).xdb#xpointer(/ModelInstance)"/>

                               <Item href="Revenger_shield.(ModelInstance).xdb#xpointer(/ModelInstance)"/>

                </Models>

                <WindAffected>false</WindAffected>

                <WindPower>1</WindPower>

                <Duration>2.5</Duration>

</Effect>

 

now about ModelInstance

these files contain the path to the attached model, its position along xyz, rotation around those same axes, scaling, and bone attachment

modelinstance

<?xml version="1.0" encoding="UTF-8"?>

<ModelInstance>

                <Model href="Revenger_helmet.(Model).xdb#xpointer(/Model)"/>

                <SkelAnim/>

                <Position>

                               <x>0</x>

                               <y>0</y>

                               <z>0.2</z>

                </Position>

                <Rotation>

                               <x>0</x>

                               <y>0</y>

                               <z>0</z>

                               <w>1</w>

                </Rotation>

                <Scale>1</Scale>

                <Offset>0</Offset>

                <CycleLength>0</CycleLength>

                <CycleCount>0</CycleCount>

                <GlueToBone>1</GlueToBone>

                <GlueToNamedBone>Head</GlueToNamedBone>

</ModelInstance>



effects need to be edited through the map editor, when you launch it the map properties window will pop up automatically, place Psatkha's creature on the map, select it, and then the map properties window will turn into an object properties window, find the line with the path to the mapobject file, click on the path, a button with an ellipsis and a new button will appear – click the ellipsis
a window with paths to the model and animset files will open, you also need to click on the animset line and choose the ellipsis, then open the desired animation (idle) the same way, then the effect and the needed ModelInstance, in which you need to change the position, rotation, and scale parameters until the model sits properly


Honestly, this or something similar should be saved somewhere prominent, everything is described in great detail and could be useful for beginners. 
Группа в вк посвящённая моим модам

Страничка моего последнего мода на ModDB

Моя страничка на Artstation,
где можно посмотреть и повертеть внутри браузера мои 3d модели.

Statistics

Welcome our newest member: artem