megaton
50af9bc0d3
General perfomance optimizations.
11 years ago
scrawl
edb5a54092
Include some more required Ogre headers explicitely.
11 years ago
scrawl
2c0d46525b
Fast-forward particle systems to make cell loads less obvious.
11 years ago
scrawl
cf3812188f
Fix bounding box assertions due to negative particle life time
...
Other parts of the code could not deal with negative life times and produced negative particle sizes as a result (which Ogre could not handle)
11 years ago
scrawl
bbd15b185d
Skip inactive controllers. Fixes those bloody bone boots again.
11 years ago
scrawl
5b300c1052
Handle controllers for the root node. Fixes #1147 (incorrect dwemer crossbow rotation)
11 years ago
scrawl
305a471c5a
Fix VisController in ascended sleeper's death animation
11 years ago
scrawl
bd34b61f2a
Set all keyframe-controlled bones as manually controlled
11 years ago
scrawl
aa855e9524
Include some required Ogre headers explicitely
11 years ago
scrawl
4ad43fdf92
Closes #1088 : Quick&dirty fix for NIF filters not working properly with some mods
11 years ago
scrawl
29acc3f722
Fix particles being too small. Looks like this should actually be size*2.
11 years ago
scrawl
764ec9bc5f
Closes #716 : Use the particle controller's size instead of NiAutoNormalParticlesData particle radius. Same as NifSkope now.
11 years ago
scrawl
07a9b7623a
Enable skeleton-based bounding boxes added in Ogre 1.10
11 years ago
scrawl
c0dba2834b
Closes #855 : Don't try to look up bone if there's no skeleton
11 years ago
scrawl
6d47d710a0
Reimplement NiGeomMorpherController using Ogre's pose animation system
11 years ago
scrawl
a9526622b1
Particle improvements: particle systems now move with the particle bone, not the scene node. This difference is not noticable if the particle bone is static, but it makes the code *much* nicer and mirrors more closely what NifSkope does.
11 years ago
scrawl
9877db413c
Connect particle systems to the particle node, not the emitter node
11 years ago
scrawl
eab2c89346
Issue #983 : Fix controllers to affect objects attached to the base node
11 years ago
scrawl
5931fdcbde
Implement NiBillboardNode. Flags not handled yet.
11 years ago
scrawl
0c3c3ed8e9
Fix wind gravity affector
11 years ago
scrawl
37a7ee8fcd
Set alpha value of character animations according to Invisibility / Chameleon effects.
11 years ago
scrawl
9fcb4fad5c
Implement NiFlipController
11 years ago
scrawl
51a9f0111c
Implement NiAlphaController and NiMaterialColorController
11 years ago
scrawl
1624e0fd8a
Rename ObjectList to ObjectScene. Wrap it in a SharedPtr so we can automate the destruction routine.
11 years ago
scrawl
c5e543b91b
Implement NiGeomMorpherController
11 years ago
scrawl
6b81fd78f1
Particle improvements: Handle LocalSpace flag. Attach particle systems to the base node, since they need to be relative to that when LocalSpace is enabled. Get the bone in emitters/affectors so that resulting particle positions are the same. TODO: Fix Controllers to affect particle systems.
11 years ago
scrawl
7fd5f1df83
Change setKeepParticlesInLocalSpace to false. Not correct for all particles, but the opposite isn't either. Plus it breaks pretty much all magic VFX.
11 years ago
scrawl
ffdb91bb21
Add particles for Cast + Hit. Not looking quite right yet.
11 years ago
Chris Robinson
b7e81dbc5b
Ignore controllers on the root NiNode
...
I wonder if we should ignore the root NiNode completely.
12 years ago
Chris Robinson
8e24cab935
Strip trailing whitespace from textkeys
12 years ago
Chris Robinson
bf94ffb839
Only support NiSequenceStreamHelper as a Kf root
...
Newer versions of the Nif foramt may have other record types, but we don't
support those.
12 years ago
Chris Robinson
8e38dc410f
Allow loading multiple animation sources
...
Animation sources are treated differently from base objects. When given
"path\file.nif", base objects will look for "path\xfile.nif" and use that
if it exists (falling back to the original name if not found). Animation
sources will instead use "path\xfile.kf", ignoring it if the file doesn't
exist.
12 years ago
Chris Robinson
6a3ba41170
Don't store camera nodes, we don't need them.
12 years ago
Chris Robinson
68a9a4de5f
Fix setting and getting KeyframeController transforms
12 years ago
Chris Robinson
6f0b9a5f2c
Avoid unnecessary multimap copies
12 years ago
Chris Robinson
512ff3687a
Don't create Ogre animations for skeletons
12 years ago
Chris Robinson
634b0fd067
Fix for controller delta time going below start time
12 years ago
Chris Robinson
adc6a948c7
Add methods to get the rotation, translation, and scale from a NodeTargetValue
12 years ago
Chris Robinson
59137d93c9
Partially handle NiGeomMorpherController
...
The morphs aren't actually applied yet, but the Ogre controller is set up so
all that has to be done is to implement the setValue method.
12 years ago
Chris Robinson
d936291dbf
Remove an unused ostream operator<<
12 years ago
Chris Robinson
a3511c62cf
Don't store textkeys in user object bindings
...
It's a bit unwieldy to have them stored in the 'skeleton master' instead
of the skeleton instance. And although the text keys are extracted for
each created instance now, this shouldn't be much worse than the
multimap copying going on before.
Plus, proper serialization can help for future optimizations.
12 years ago
Chris Robinson
ace7d647e5
Add a method to apply a NodeTargetValue-based controller to a specified node.
12 years ago
Chris Robinson
f37a71f025
Use a separate method to build node-based controllers
12 years ago
Chris Robinson
3def2a0f45
Treat the particle random values as the max differential
12 years ago
Chris Robinson
36170c5374
Use flag enums instead of hard-coded hex values
12 years ago
Chris Robinson
1b1f9f7921
Allow multiple ObjectLists to be created for Animations.
...
addObjectList may not currently be called outside of the related constructor.
12 years ago
Chris Robinson
7000a1aa3e
Add a ParticleSystemController
12 years ago
Chris Robinson
bf8bc989fc
Recognize and partly handle NiBSParticleNode
12 years ago
Chris Robinson
f4695ec4ac
Cleanup NIFObjectLoader some
12 years ago
Chris Robinson
acb1b5f002
Try to handle NiBSAnimationNode
...
This is still incomplete guess work. Currently it seems as though flag 0x20
specifies whether the controllers auto-play (if on), rather than follow the
object's animation time.
12 years ago