Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...


BeginEnd
c_wyvern_idlefidget1191
c_wyvern_run200220
c_wyvern_runL230250
c_wyvern_runR260280
c_wyvern_UNA_1attack01290335
c_wyvern_UNA_1attack02340385
c_wyvern_UNA_damage01390400
c_wyvern_UNA_death01410486
c_wyvern_UNA_death02490560
c_wyvern_UNA_dodge570620
c_wyvern_UNA_idleM630870
c_wyvern_UNA_knockdownB880920
c_wyvern_UNA_proneB930970
c_wyvern_UNA_standupB9801030
c_wyvern_UNA_taunt10401100
c_wyvern_UNA_walk11101160

Batch Tediously import your animations

Make an entry in your table (like above) for the first animation that was imported.  Note the Begin and End times.

...

Highlight your mesh(s) in the model and change them to type "Skinmesh"

Add your nodes

Don't forget to add Add the below nodes and parent them to the rootrelevant special node (TO DO ENTER THOSE).

  • handconjure = ap_hand_right or ap_forehead or ap_mouth
  • headconjure = ap_forehead
  • impact = ap_torso
  • lforearm = 
  • lhand = ap_hand_left
  • rhand = ap_hand_right 

Place them where appropriate relative to the mesh.

  • You can now export to MDL via the export menu. Unfortunately, there is one more step if you want the textures to work right. Open the new MDL in nwnexplorer and export the ASCII version of it, then open that in Notepad++ or a similar editor and search for the word 'bitmap'. You need to check that the main texture files for the creature - not the strange lighting map ones you sometimes get but the tga with the creature texture as it should show up in game - is the file named after 'bitmap'. Look through the file and you'll find several instances of it to change. It might be actually that there's several textures you need to change in this way for some models that use multiple base textures but I haven't encountered this yet. Either way, once you've done this, just save the text file as MDL once again and...

...

Update the texture reference

Go to your mesh object and name the material file name / texture.  We'll make the texture later.

Tediously map your animations and add events

Again you should refer back to your notes that you've been taking and map out how you want the NWN2 animations to line up with the NWN1 animations.  Generally you'll have something for everything, but you'll have some choices to make.  Review your animations that you've imported and decide what is best for each NWN animation type.  When you map the NWN2 animation and later create the NWN animation with start and stop times, refer back to the table you made above listing which frames are for when.  Below is an example mapping of a wyvern, as well as the events you should add to for each NWN animation.  You may want to add more events, such as more footsteps, but the below should be considered the minimum.  Refer back to your timeline to figure out which frame timings will work best for each event.  Ultimately, its probably most efficient to make a vlookup to your begin end times.

NWN AnimationEvent1Event2NWN2 AnimationVlookup BeginVlookup End
ca1slashlhit  
c_wyvern_UNA_1attack02340    385
ca1slashrhit  
c_wyvern_UNA_1attack02340    385
ca1stabhit  
c_wyvern_UNA_1attack01290    335
cappear 

c_wyvern_UNA_idleM630        870
ccastoutcast 
c_wyvern_UNA_idleM630        870
ccastoutlp

c_wyvern_UNA_idleM630    870
cclosehhit  
c_wyvern_UNA_1attack02340    385
ccloselhit  
c_wyvern_UNA_1attack02340    385
cconjure1

c_wyvern_UNA_idleM630    870
ccwalkbsnd_footstep snd_footstep c_wyvern_UNA_walk1110    1160
ccwalkfsnd_footstep snd_footstep c_wyvern_UNA_walk1110    1160
ccwalklsnd_footstep snd_footstep c_wyvern_runL230    250
ccwalkrsnd_footstep snd_footstep c_wyvern_runR260    280
cdamagel

c_wyvern_UNA_damage01390    400
cdamager

c_wyvern_UNA_damage01390    400
cdamages

c_wyvern_UNA_damage01390    400
cdead
* see tips


c_wyvern_UNA_proneB930970
cdisappear 

c_wyvern_UNA_idleM630870
cdodgelrsnd_footstep 
c_wyvern_UNA_dodge570    620
cdodgessnd_footstep 
c_wyvern_UNA_dodge570    620
cgustandb

c_wyvern_UNA_standupB980    1030
ckdbcksnd_hitground  
c_wyvern_UNA_knockdownB880    920
ckdbckdie
* see tips


c_wyvern_UNA_proneB930    970
ckdbckps

c_wyvern_UNA_proneB930    970
cparryl

c_wyvern_UNA_dodge570620
cparryr

c_wyvern_UNA_dodge570620
cpause1

c_wyvern_UNA_idleM630870
creachhit  
c_wyvern_UNA_1attack01290335
creadyl

c_wyvern_UNA_idleM630870
creadyr

c_wyvern_UNA_idleM630870
crunsnd_footstep snd_footstep c_wyvern_run200    220
ctaunt

c_wyvern_UNA_taunt1040    1100
cwalksnd_footstep snd_footstep c_wyvern_UNA_walk1110    1160


TIPS:

  • ccastout: NWN2 doesn't often have a casting animation for creatures.  In NWN1, the casting animation is 30 frames.  As a default, you can use the idle animation for the NWN ccastout animation.  The game will expect 30 frames here, so clip the end time of ccastout to be T+30, not the last frame of the animation.  If you just use the default times, the game will speed up the idle animation and compress it and you will get a janky look.  
  • cdead: Just use the first frame of the prone animation as both start and end, so it is looping off that.  So if the prone animation runs from 930-970, your start and stop will be 930 both. 
  • ckdbckdie: Just use the first frame of the prone animation as both start and end, so it is looping off that.  So if the prone animation runs from 930-970, your start and stop will be 930 both.

TOOLSET TIP:

  • Go through your time line and find the first frame of your idle animation.  Copy that frame and paste it at frame zero of the timeline.  It will make the toolset render better with bounding boxes and preview panes.

MORE ANIMATIONS THAN YOU USE TIP:

  • You'll notice that you didn't use your death animations from NWN2 at all.  There are almost always two.  Keep them and add the following custom animations.  Add some snd_hitground events too.
xdeath1actc_wyvern_death01start and stop times for the death animation
xdeath1lpc_wyvern_death01start and stop times to be the last frame of the death animation
xdeath2actc_wyvern_death02start and stop times for the death animation
xdeath2lpc_wyvern_death02start and stop times to be the last frame of the death animation

In version .35 of NWNEE and higher, you can call these and have custom death animations using the following script commands per animation.  They can go in the creature's death script.

 ReplaceObjectAnimation(OBJECT_SELF, "ckdbck", "xdeath1act"); 
 ReplaceObjectAnimation(OBJECT_SELF, "ckdbckdie", "xdeath1lp"); 


As a general rule, it makes sense to keep all the NWN2 animations since you can ultimately call them through script.  Better to have them just in case.

DONE FOR NOW - YOUR MODEL SHOULD BE READY FOR EXPORT.  MORE LATER ON TEXTURES, BUT THAT'S ALL THATS REALLY LEFT....

------

section on armed vs unarmed animations

  • use "una" for unarmed set
  • make diff model for diff animation types (2hs, 1hs, etc)
  • cant do standard attach to bone or child to constraints
    • how to: generate the psuedo bones, import your mesh like a sword, parent it to the psuedo bone in the skel object it relates to, eg right hand sword to ap_hand_right


Tip for casting:

Place the two NWN2 animations if present together in the dopesheet timeline, it will be 60 seconds / 2 seconds, which just happens to be the maximum time spell that conjure1 uses in spells 2a, so fits perfect.

c_x_gen_conjure
c_x_gen_conjureloop


Gen cast maps to to essentially castout anad castoutlp, which has a maximum of 90 frames / 3 seconds in spells.2da.  Consider splitting out c_x_gen_cast out so that the first half provides the castout FNF animation and cast event, then take about 5 frames after and copy paste/reverse them so you create a seamless loop (copy paste on dope sheet, press S and the "-1" to reverse); make the end of your loop matches the start or you will hitch; this will be at a really shakey speed, so then on the same seamless loop scale it slower by pressing "S" and then "4'.

c_x_gen_cast