1
0
Fork 1
mirror of https://github.com/TES3MP/openmw-tes3mp.git synced 2025-01-16 10:49:57 +00:00
Commit graph

153 commits

Author SHA1 Message Date
Chris Robinson
879359f39d Set the animation state loop flag as appropriate 2013-01-29 00:50:52 -08:00
Chris Robinson
92d0c55f32 Add a flag to specify if an animation should be playing 2013-01-29 00:43:42 -08:00
Chris Robinson
7df4d0d19f Remove an unnecessary cast 2013-01-28 21:41:51 -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
05f8b8c283 Specify the text key to reset animations to 2013-01-22 00:31:45 -08:00
Chris Robinson
37fe1bd3f0 Handle looping in the Animation object 2013-01-21 22:51:13 -08:00
Chris Robinson
536f8104e6 Do not create an 'all' animation. 2013-01-20 17:24:43 -08:00
Chris Robinson
e1e76bde76 Combine a loop into another where it's used 2013-01-20 15:39:43 -08:00
Chris Robinson
85ca1e993f Properly check if an animation exists before playing it 2013-01-19 21:55:04 -08:00
Chris Robinson
0b68953f0d Scale animation speed using the direction length
The direction length doesn't currently give a good speed, but it's something.
2013-01-18 21:40:47 -08:00
Chris Robinson
1cdd64cd9b Return the animation movement from the character controller.
Consequently, dead actors don't move anymore. The doPhysics call apparently
isn't moving them.
2013-01-18 17:05:58 -08:00
Chris Robinson
9123f4f2af Return the movement vector from runAnimation 2013-01-18 16:21:29 -08:00
Chris Robinson
c7684cb979 Pass the key time to markerEvent 2013-01-18 14:50:55 -08:00
Chris Robinson
3e9b0a333c Allow specifying the accumulation for animations
Animations that move a character may do so either visually or physically. An
axis' accumuluation value specifies whether the movement is visual (0) or
physical (1). Idle animations, for instance, typically don't physically move a
character, while death animations may physically move them along the X and Y
planes, but not along Z (the vertical movement is purely visual).
2013-01-18 14:25:32 -08:00
Chris Robinson
fef6284f15 Only reset the animation time if a new state was set 2013-01-17 15:47:25 -08:00
Chris Robinson
fc0f9e2159 The animation state tracks the animation time for us 2013-01-17 14:49:42 -08:00
Chris Robinson
7cce44290e Handle the animation queue in mwmechanics 2013-01-17 13:18:40 -08:00
Chris Robinson
82d549e22f Don't update the animation if time is the same 2013-01-16 21:39:14 -08:00
Chris Robinson
7ee389f3b2 Handle animation skipping in the character controller 2013-01-16 21:25:50 -08:00
Chris Robinson
852aa214cc Store the available animation names in the character controller 2013-01-16 21:16:22 -08:00
Chris Robinson
4dd01b81c6 Update mTime when updating or reseting the animation, and refactor the animation loop 2013-01-16 20:14:49 -08:00
Chris Robinson
3c32385e17 Avoid trying to animate things that don't have animations 2013-01-16 15:00:06 -08:00
Chris Robinson
94b93227d3 Treat activators as actors for rendering and mechanics
Kinda hacky, but it's the only way to get animated activators (flags, silt
striders, etc) to work properly.
2013-01-16 14:37:32 -08:00
Chris Robinson
d2fc3c7b33 Add a method to tell the character controller of new text keys 2013-01-16 13:09:21 -08:00
Chris Robinson
0a2f92f679 Keep track of the current text key in the animation 2013-01-16 11:57:08 -08:00
Chris Robinson
f46587c383 Store an character controller in the animation 2013-01-16 11:01:08 -08:00
Chris Robinson
c4c8295e0b Rename NIFLoader to Loader, and update some comments 2013-01-09 09:10:59 -08:00
Chris Robinson
1e38e381a4 Use text keys for each animation 2013-01-09 03:30:55 -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
2a9dc5ad94 Ensure mCurGroup always has valid iterators, and only get the animation state when animation keys exist 2013-01-07 21:00:21 -08:00
Chris Robinson
d8dbd5e206 Store text key iterators for the start and stop times 2013-01-07 05:56:03 -08:00
Chris Robinson
d3e949f5c6 Make the animation text keys lower case to help lookup 2013-01-07 05:23:44 -08:00
Chris Robinson
5f668976a8 Improve resetting the animation position 2013-01-07 04:48:59 -08:00
Chris Robinson
648e3331f5 Don't try to move objects that aren't in a cell 2013-01-06 23:20:20 -08:00
Chris Robinson
5b3a20ef69 Update the object position as the animation moves 2013-01-06 21:18:48 -08:00
Chris Robinson
910619eb21 Store the NonAccum animation root from the skeleton instance
Currently this is assumed to be the node with the animation text keys.
2013-01-06 17:31:53 -08:00
Chris Robinson
b96a979719 Store an MWWorld::Ptr with the Animation 2013-01-06 17:05:48 -08:00
Chris Robinson
58d35dbfcf Have createEntities' caller retrieve the text keys as needed 2013-01-05 04:01:11 -08:00
Chris Robinson
818a24cdd6 Hold on to the AnimationState being used for animating 2013-01-05 00:03:14 -08:00
Chris Robinson
6e84d4bcdd Add a helper method to load entity objects 2013-01-04 23:19:48 -08:00
greye
50867e8d87 fix gender selection update, main model visibility and couple of crashes 2012-11-10 19:57:50 +04:00
Chris Robinson
41f80908d9 Simplify getting the stop time when playing all animation groups 2012-09-29 01:10:49 -07:00
Chris Robinson
cd8515396a Use a multimap to store the text keys 2012-09-28 23:20:15 -07:00
scrawl
2793096b50 Merge branch 'externalrendering' of https://github.com/zinnschlag/openmw into characterpreview
Conflicts:
	apps/openmw/CMakeLists.txt
	apps/openmw/mwbase/world.hpp
	apps/openmw/mwrender/renderingmanager.cpp
	apps/openmw/mwrender/renderingmanager.hpp
	apps/openmw/mwworld/worldimp.cpp
	apps/openmw/mwworld/worldimp.hpp
2012-09-15 00:57:29 +02:00
Chris Robinson
9f0c1eeb7b Support playgroup mode 0 2012-07-24 14:54:12 -07:00
Chris Robinson
13ab2baef0 Use a struct to hold the current animation times and remaining loop count 2012-07-24 14:42:01 -07:00
Chris Robinson
fd1e3f6ec5 Add support for playgroup mode 2 2012-07-24 14:14:32 -07:00
Chris Robinson
20121f3b0a Remove some unused stuff 2012-07-24 13:56:28 -07:00
Chris Robinson
9a7a629d0f Add support for playing animation groups 2012-07-24 13:51:48 -07:00
Chris Robinson
77446a0d58 Fix skipAnim, only skip one animation update 2012-07-21 17:39:57 -07:00
Chris Robinson
81ce8dbe12 Combine animation handling into the base class 2012-07-21 14:41:26 -07:00
Chris Robinson
2db80a1504 Rename a couple methods to match their scripting counterparts 2012-07-20 00:53:12 -07:00
Chris Robinson
66860825cf Remove some unused and unneeded bits from the Animation class 2012-07-20 00:36:52 -07:00
Chris Robinson
02d39080c8 Destroy entities when they're done with. 2012-07-18 00:17:39 -07:00
Chris Robinson
0a4a141f2e Support multiple meshes for creatures 2012-07-17 11:23:34 -07:00
Chris Robinson
6047dc6a0c Merge remote branch 'zini/master' into nif-cleanup
Conflicts:
	apps/openmw/mwrender/animation.cpp
	apps/openmw/mwrender/animation.hpp
	apps/openmw/mwrender/creatureanimation.cpp
	apps/openmw/mwrender/npcanimation.cpp
	apps/openmw/mwrender/npcanimation.hpp
	components/nifogre/ogre_nif_loader.hpp
2012-07-17 10:57:15 -07:00
Carl Maxwell
e4d046f69c Prepending m to the name of every member variable.
I made a bunch of changes in apps/openmw/mwrender/animation.cpp
because the scope brackets didn't line up in a bunch of places
    npcanimations.cpp & creatureanimations.cpp were the same kind of
thing
2012-07-13 03:51:58 -07:00
Chris Robinson
ecdd4ee23f Load NiMorphData and NiKeyframeData using proper key lists 2012-07-12 20:56:47 -07:00
Chris Robinson
386ac56bda Remove the NIF loader and code to manually transform the vertices
This currently breaks just about everything. They should come back as it's all
reimplemented, though.
2012-07-12 20:12:18 -07:00
Marc Zinnschlag
c85aaafac2 more include cleanup (most removing Ogre.h) 2012-07-03 15:32:38 +02:00
Marc Zinnschlag
35f478071e Issue #255: deleted the old environment class and using the new one instead 2012-04-23 15:27:03 +02:00
Jason Hooks
bc8bb9c57e Reserve; skirts 2012-04-15 14:22:55 -04:00
Jason Hooks
ebab98a8a0 Restructuring things 2012-04-07 22:02:20 -04:00
Lukasz Gromanowski
bdc4c79b4e Fix for segfault when doing 'coc "seyda neen"'.
This is a fix for segfault:

==8683== Process terminating with default action of signal 11 (SIGSEGV)
==8683==  Access not within mapped region at address 0x0
==8683==    at 0x59DFE4: MWRender::Animation::handleShapes(std::vector<Nif::NiTriShapeCopy, std::allocator<Nif::NiTriShapeCopy> >*, Ogre::Entity*, Ogre::SkeletonInstance*) (animation.cpp:503)
==8683==    by 0x5A4ECE: MWRender::Actors::update(float) (actors.cpp:134)
==8683==    by 0x5937A9: MWRender::RenderingManager::update(float) (renderingmanager.cpp:168)
==8683==    by 0x629AD6: MWWorld::World::update(float) (world.cpp:705)
==8683==    by 0x68B022: OMW::Engine::frameRenderingQueued(Ogre::FrameEvent const&) (engine.cpp:157)
==8683==    by 0x51F9574: Ogre::Root::_fireFrameRenderingQueued(Ogre::FrameEvent&) (in /usr/lib/libOgreMain.so.1.8.0)
==8683==    by 0x51F964F: Ogre::Root::_fireFrameRenderingQueued() (in /usr/lib/libOgreMain.so.1.8.0)
==8683==    by 0x51F9681: Ogre::Root::_updateAllRenderTargets() (in /usr/lib/libOgreMain.so.1.8.0)
==8683==    by 0x51F98CF: Ogre::Root::renderOneFrame() (in /usr/lib/libOgreMain.so.1.8.0)
==8683==    by 0x51F990C: Ogre::Root::startRendering() (in /usr/lib/libOgreMain.so.1.8.0)
==8683==    by 0x68A669: OMW::Engine::go() (engine.cpp:408)
==8683==    by 0x51CECB: main (main.cpp:254)
==8683==  If you believe this happened as a result of a stack
==8683==  overflow in your program's main thread (unlikely but
==8683==  possible), you can try to increase the size of the
==8683==  main thread stack using the --main-stacksize= flag.
==8683==  The main thread stack size used in this run was 8388608.

when doing 'coc "seyda neen"' when animations are enabled
(Animation::animate member variable is set to 1).
2012-03-31 21:34:40 +02:00
Lukasz Gromanowski
5185a28b60 Issue #225: Initialize all class members in constructor. 2012-03-26 19:09:55 +02:00
Marc Zinnschlag
5b378e820d warning level adjustments and some related fixes 2012-03-15 16:01:41 +01:00
Jason Hooks
39ff8d6a01 Compile error retry 2012-03-06 18:28:41 -05:00
Jason Hooks
9848b67174 Fixing errors 2012-03-05 17:46:29 -05:00
Jason Hooks
36e9322830 a few changes2 2012-02-26 21:43:04 -05:00
Jason Hooks
8d7a5f469b a few changes 2012-02-26 21:27:54 -05:00
Jason Hooks
08f3ecf935 Slightly better performance on animation2 2012-02-24 01:30:17 -05:00
Jason Hooks
fb51b281b2 Slightly better performance on animation 2012-02-24 01:16:30 -05:00
Marc Zinnschlag
7eae24bb45 some fixes 2012-02-20 14:02:24 +01:00
Jason Hooks
7e1e746201 More changes 2012-02-19 17:59:50 -05:00
Jason Hooks
e58f2f5363 Eliminating unnecessary data from skeletons and shape saving 2012-02-19 02:01:15 -05:00
Jason Hooks
1da519a914 Some cleanup 2012-01-29 00:42:55 -05:00
Jason Hooks
6de0847b86 Slightly better performance on animation 2012-01-25 01:21:30 -05:00
Jason Hooks
e35aee0f89 Disjointed free part fix 2012-01-13 02:19:28 -05:00
Jason Hooks
41769f202c Huge Performance Increase 2012-01-13 00:48:52 -05:00
Jason Hooks
0712bba49b Changing a few things around with handleshapes 2012-01-12 16:03:07 -05:00
Jason Hooks
5e1cc07ee8 Fixed ancestor ghost crash 2012-01-10 02:00:04 -05:00
Jason Hooks
a615369189 Warning and different physics 2012-01-06 22:52:15 -05:00
Jason Hooks
295eb27c2d Better Text Indices; Better file output 2012-01-06 18:23:41 -05:00
Jason Hooks
859ac1153e Basic Text Indices Working 2012-01-06 02:27:10 -05:00
Jason Hooks
595d0b1192 Cleanup; warnings 2012-01-05 21:45:17 -05:00
Jason Hooks
c2fa82326d Animation with physics attempt 2012-01-04 23:48:25 -05:00
Jason Hooks
45c57721ff Turning off hardware skinning2 2012-01-04 20:30:06 -05:00
Jason Hooks
1d2e77d947 Turning off hardware skinning 2012-01-04 19:47:06 -05:00
Jason Hooks
a4c6d948d4 Disabling normal updates 2012-01-01 20:51:26 -05:00
Jason Hooks
42e7ff9b13 Introducing loops; SkipAnim; Skeleton reset bug fixed 2011-12-28 21:52:05 -05:00
Jason Hooks
c8cca06b40 unlocking change and stop change 2011-12-28 17:34:47 -05:00
Jason Hooks
8c3127367a Npc Optimization 2011-12-27 22:35:22 -05:00
Jason Hooks
c399f4f210 Fixing a few things 2011-12-27 17:12:47 -05:00
Jason Hooks
a6b88b48ec A different way 2011-12-27 00:20:14 -05:00
Jason Hooks
653d999ac4 Animation creatures 2011-12-26 19:23:46 -05:00
Jason Hooks
88c427543b Deleting animations; Empty Functions/Planning 2011-12-25 22:37:26 -05:00
Jason Hooks
7cf3fc8991 handleAnimationTransforms 2011-12-18 03:18:26 -05:00
Jason Hooks
6d10c76b06 Unique Identifiers for Creatures and NPC Free Parts 2011-12-17 01:29:08 -05:00
Jason Hooks
93a4060346 Switching handleShapes to use sets instead of maps 2011-12-15 00:41:44 -05:00