Chris Robinson
8b1e7b95ba
Attempt to load the skeleton source if it doesn't yet exist
2013-02-05 17:55:12 -08:00
Chris Robinson
bec538bfa1
Always declare operator<< for using a TextKeyMap with Ogre::Any
2013-02-04 09:19:59 -08:00
Chris Robinson
c45b4d6072
Clean up some NIF warning reports
2013-02-02 22:27:08 -08:00
Chris Robinson
e6e7c69013
Fix handling of filtered entities
2013-02-02 05:26:52 -08:00
Chris Robinson
c6a9ea5007
Use the skeleton as defined in the NIF model
...
The avoids having to duplicate models that get attached to different character
skeletons.
2013-01-30 22:37:39 -08:00
Chris Robinson
b6354c6282
Don't share skeleton instances between bounded parts on an NPC
...
However, a skeleton instance will still be shared between entities in an entity
list.
2013-01-30 09:29:16 -08:00
Chris Robinson
0853fa335c
Avoid redundant string concatenations
2013-01-29 01:36:17 -08:00
Chris Robinson
487c83e943
Rename nonaccum to animroot
2013-01-28 22:09:41 -08:00
Chris Robinson
e1d3933145
Remove an unused struct
2013-01-28 01:27:12 -08:00
Chris Robinson
b1ffdf855f
Reset the initial state of animated nodes on the skeleton instances
...
This is so the animation specifies node keyframe data based on the node's
parent. This will also be necessary for applying animations from different
skeleton sources, as they can have different binding positions (even native
.skeleton resources will need to specify animation data this way).
2013-01-26 04:48:53 -08:00
Chris Robinson
d836b3d0ff
Don't try to create animations if there's no text keys and nonaccum node.
...
Such meshes apparently use NiBSAnimationNode, a Bethesda-specific extension
which has animation-related info in its flags (values currently unknown).
2013-01-22 00:24:57 -08:00
Chris Robinson
6905bd18ba
Filter out the group name from the text keys
...
It's already in the animation name, and the text keys are animation-specific
anyway.
2013-01-21 02:59:12 -08:00
Chris Robinson
8e8900e422
Use the first bone with text keys as the nonaccum root.
2013-01-20 22:51:39 -08:00
Chris Robinson
536f8104e6
Do not create an 'all' animation.
2013-01-20 17:24:43 -08:00
Chris Robinson
94e30199d1
Merge remote-tracking branch 'zini/master' into animation2
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
2013-01-15 14:59:30 -08:00
Chris Robinson
b23fcb260c
Use the record index for finding the NiTriShape instead of the name
2013-01-13 08:00:04 -08:00
Nathan Jeffords
d5ebd6654d
cache loaded NIF files to eliminate reloads
...
Created a NIF file caching mechanism to prevent the system from
reloading a NIF during a startup and cell changes.
2013-01-10 21:47:02 -08:00
Nathan Jeffords
0989b44b41
spread some const around NIF loading
2013-01-10 21:32:47 -08:00
Chris Robinson
23ac1c2de5
Merge remote-tracking branch 'zini/master' into animation2
...
Conflicts:
components/nifogre/ogre_nif_loader.cpp
2013-01-09 20:52:12 -08:00
eduard
2dc0064cc2
more string lowercase
2013-01-09 20:51:52 +01:00
Chris Robinson
c4c8295e0b
Rename NIFLoader to Loader, and update some comments
2013-01-09 09:10:59 -08:00
Chris Robinson
4b7cc1372f
Some cleanup
2013-01-09 06:32:31 -08:00
Chris Robinson
a9bcbfd8d3
Use Node::_getFullTransform instead of building the matrix manually
2013-01-09 05:11:32 -08:00
Chris Robinson
015bb0bf1f
Use the calculated max time for the "all" animation
2013-01-09 04:30:32 -08:00
Chris Robinson
465fd9c8af
Offset animation times to start at 0
2013-01-09 04:21:56 -08:00
Chris Robinson
4054934f16
Store text keys for each animation
2013-01-09 02:51:25 -08:00
Chris Robinson
bb98542c5a
Build separate animations for each group
2013-01-09 01:40:38 -08:00
Chris Robinson
e44729cd43
Make the text keys lower-case when extracting them
...
I think it's safe to assume all text keys are treated in a case-insensitive
manner. So far the only known NiTextKeyExtraData records are for animation
keys, which effectively are.
2013-01-09 00:17:42 -08:00
Chris Robinson
14d814d1d3
Avoid creating bones for NiTriShape nodes
...
The offset specified for them can be just as easilly handled by the tag point
they get connected to, and as such it's just needless extra nodes.
2013-01-07 04:21:25 -08:00
Chris Robinson
7ba09ff025
Catch errors from buildBones
2013-01-06 20:05:50 -08:00
Chris Robinson
8ebf49a35b
Only lower-case the model name
...
The skeleton name will already be lower-case
2013-01-05 20:54:57 -08:00
Chris Robinson
18389c7b04
Set non-bone nodes as manually controlled
2013-01-05 17:50:22 -08:00
Chris Robinson
e5ce55b6a4
Remove a hack
2013-01-05 06:20:21 -08:00
Chris Robinson
58d35dbfcf
Have createEntities' caller retrieve the text keys as needed
2013-01-05 04:01:11 -08:00
Chris Robinson
761914bdaa
Use a separate method to build the animation
2013-01-05 03:31:51 -08:00
Chris Robinson
8a086e3afb
Cache the mesh names from the mesh/skeleton pairs
2013-01-04 20:58:35 -08:00
Chris Robinson
3131e8dae6
Don't get the text keys if they're not being requested
2013-01-04 20:33:26 -08:00
Chris Robinson
683ced54a0
Store and retrieve the node text keys in the bones' user object bindings
2013-01-04 19:41:37 -08:00
Chris Robinson
a3d33db415
Store a NiNode's NiTextKeyExtraData in a user object binding on Ogre::Bone
2013-01-04 15:55:47 -08:00
Chris Robinson
1d4d67f811
Avoid underflows if the texture name doesn't include a '.'
2013-01-04 15:03:57 -08:00
Chris Robinson
3f19b13695
Merge remote-tracking branch 'zini/master' into animation2
2013-01-04 14:47:01 -08:00
Nathan Jeffords
2181393518
change texture renaming logic to increase performance
...
ResourceGroupManager::resourceExistsInAnyGroup is slow (at least on
windows) if the tested path does not exist, but is fast if it does (due
to finding it in the index). This change tries the '.dds' version of the
name first, and reverts to the original if the '.dds' version was not
found.
2013-01-04 11:36:22 -08:00
Chris Robinson
61ad8bb3dd
Use a list of mesh names instead of mesh objects
2013-01-04 00:14:41 -08:00
Chris Robinson
019893b5c6
Get rid of some unnecessary case-insensitive compares
2013-01-03 23:44:58 -08:00
Chris Robinson
cd8515396a
Use a multimap to store the text keys
2012-09-28 23:20:15 -07:00
Chris Robinson
9b491edbf8
Small cleanup for loading animation keyframes
2012-09-28 18:53:24 -07:00
scrawl
906d290935
Markers are actually hidden now. Inspecting the markers in NifSkope revealed why it didn't work previously: the flag that is being looked for is not present in any of the markers, nor any other flag or extra data to identify them. However, the root node name always starts with "marker", making it possible to do a string search.
2012-09-12 12:41:12 +02:00
Marc Zinnschlag
e3d893b001
Merge remote-tracking branch 'jhooks/animationsmooth'
2012-09-06 09:09:46 +02:00
scrawl
4f1bcb749f
turned off redundant edge list building
2012-09-02 10:09:41 +02:00
Jason Hooks
5202b11235
just moving a comment
2012-08-18 15:31:54 -04:00