RESOLVED Scale Bones Anim = ShapeEditor Crash
by Steve Acaster · in Torque 3D Professional · 04/06/2010 (4:35 pm) · 7 replies
I believe scaling on bones in animation is relatively new for the engine ... works fine in-game, I've been using it on flash emitter meshes with onFire() animations, but when testing in ShapeEditor I get a crash when attempting to play any animation on an object with bone scaling. Objects without any non-scaling animations are fine.
SEEMS FIXED IN 1.1B2
SEEMS FIXED IN 1.1B2
About the author
One Bloke ... In His Bedroom ... Making Indie Games ...
#2
04/06/2010 (6:35 pm)
sent :)
#3
Were you seeing the crash in an unmodified T3D 1.1 beta 1? The only relevant code changes I'm aware of are here, but those would have been included in the beta 1 release.
04/06/2010 (7:42 pm)
I think this is already fixed in current T3D trunk; at least, the model you sent me does not crash when I play its animations in shape editor or in-game.Were you seeing the crash in an unmodified T3D 1.1 beta 1? The only relevant code changes I'm aware of are here, but those would have been included in the beta 1 release.
#4
I just tried it in an unmodded version and I still get a crash.
So ... ahhh, I'll see if I can call a stack or something - tomorrow (need to fix my debug. (5am - so much for an early night)
04/06/2010 (9:04 pm)
So "fire" works? I just tried it in an unmodded version and I still get a crash.
So ... ahhh, I'll see if I can call a stack or something - tomorrow (need to fix my debug. (5am - so much for an early night)
#5
04/06/2010 (10:59 pm)
Yes - the 'fire' animation plays fine. This is in T3D trunk rather than 1.1b so is possible some other fix I was not aware of has gone in.
#6
04/07/2010 (9:02 am)
Running a debug on stock code I get a:Vector<T>::operator[] - out of bounds array access! //and the stack ---everything as I've no idea what it all means > test_DEBUG.dll!TSShapeInstance::updateTransitions() Line 663 + 0x25 bytes C++ test_DEBUG.dll!TSShapeInstance::transitionToSequence(TSThread * thread=0x1a133ef0, int seq=2, float pos=0.00000000, float duration=0.50000000, bool continuePlay=true) Line 581 C++ test_DEBUG.dll!GuiShapeEdPreview::setThreadSequence(const char * seqName=0x1a0cbe4e, float transDuration=0.50000000, float transPos=0.00000000, bool transPlay=true) Line 406 C++ test_DEBUG.dll!cm_GuiShapeEdPreview_setThreadSequence(GuiShapeEdPreview * object=0x0c9ba9a0, int argc=6, const char * * argv=0x114bb3c8) Line 1360 C++ test_DEBUG.dll!cm_GuiShapeEdPreview_setThreadSequence_caster(SimObject * object=0x0c9ba9a0, int argc=6, const char * * argv=0x114bb3c8) Line 1354 + 0x65 bytes C++ test_DEBUG.dll!CodeBlock::exec(unsigned int ip=12537, const char * functionName=0x0e565a28, Namespace * thisNamespace=0x0b493440, unsigned int argc=2, const char * * argv=0x114bb3c8, bool noCalls=false, const char * packageName=0x00000000, int setFrame=-1) Line 1708 + 0x20 bytes C++ test_DEBUG.dll!CodeBlock::exec(unsigned int ip=8470, const char * functionName=0x0e565978, Namespace * thisNamespace=0x0b493748, unsigned int argc=1, const char * * argv=0x114bb3c8, bool noCalls=false, const char * packageName=0x00000000, int setFrame=-1) Line 1626 + 0x41 bytes C++ test_DEBUG.dll!CodeBlock::exec(unsigned int ip=8034, const char * functionName=0x0e565908, Namespace * thisNamespace=0x0b493748, unsigned int argc=1, const char * * argv=0x114bb3c8, bool noCalls=false, const char * packageName=0x00000000, int setFrame=-1) Line 1626 + 0x41 bytes C++ test_DEBUG.dll!CodeBlock::exec(unsigned int ip=8, const char * functionName=0x00000000, Namespace * thisNamespace=0x00000000, unsigned int argc=0, const char * * argv=0x00000000, bool noCalls=false, const char * packageName=0x00000000, int setFrame=0) Line 1626 + 0x41 bytes C++ test_DEBUG.dll!CodeBlock::compileExec(const char * fileName=0x00000000, const char * inString=0x0e24e6cd, bool noCalls=false, int setFrame=0) Line 648 C++ test_DEBUG.dll!Con::evaluate(const char * string=0x0e24e6cd, bool echo=false, const char * fileName=0x00000000) Line 975 C++ test_DEBUG.dll!GuiControl::evaluate(const char * str=0x0e24e6cd) Line 1957 + 0xd bytes C++
#7
04/07/2010 (9:04 am)
And the rest of ittest_DEBUG.dll!GuiControl::execConsoleCallback() Line 1966 + 0x17 bytes C++
test_DEBUG.dll!GuiTextListCtrl::onCellSelected(Point2I cell={...}) Line 114 C++
test_DEBUG.dll!GuiArrayCtrl::cellSelected(Point2I cell={...}) Line 85 C++
test_DEBUG.dll!GuiTextListCtrl::cellSelected(Point2I cell={...}) Line 104 + 0x16 bytes C++
test_DEBUG.dll!GuiArrayCtrl::setSelectedCell(Point2I cell={...}) Line 111 C++
test_DEBUG.dll!cm_GuiTextListCtrl_setSelectedRow(GuiTextListCtrl * object=0x0e24e2c8, int argc=3, const char * * argv=0x114bb3c8) Line 477 C++
test_DEBUG.dll!cm_GuiTextListCtrl_setSelectedRow_caster(SimObject * object=0x0e24e2c8, int argc=3, const char * * argv=0x114bb3c8) Line 474 + 0x65 bytes C++
test_DEBUG.dll!CodeBlock::exec(unsigned int ip=37, const char * functionName=0x00000000, Namespace * thisNamespace=0x00000000, unsigned int argc=0, const char * * argv=0x00000000, bool noCalls=false, const char * packageName=0x00000000, int setFrame=-1) Line 1708 + 0x20 bytes C++
test_DEBUG.dll!CodeBlock::compileExec(const char * fileName=0x00000000, const char * inString=0x0ded39cd, bool noCalls=false, int setFrame=0) Line 648 C++
test_DEBUG.dll!Con::evaluate(const char * string=0x0ded39cd, bool echo=false, const char * fileName=0x00000000) Line 975 C++
test_DEBUG.dll!GuiControl::evaluate(const char * str=0x0ded39cd) Line 1957 + 0xd bytes C++
test_DEBUG.dll!GuiControl::execConsoleCallback() Line 1966 + 0x17 bytes C++
test_DEBUG.dll!GuiTextListCtrl::onCellSelected(Point2I cell={...}) Line 114 C++
test_DEBUG.dll!GuiArrayCtrl::cellSelected(Point2I cell={...}) Line 85 C++
test_DEBUG.dll!GuiTextListCtrl::cellSelected(Point2I cell={...}) Line 104 + 0x16 bytes C++
test_DEBUG.dll!GuiArrayCtrl::onMouseUp(const GuiEvent & event={...}) Line 352 C++
test_DEBUG.dll!GuiCanvas::rootMouseUp(const GuiEvent & event={...}) Line 1000 C++
test_DEBUG.dll!GuiCanvas::processMouseEvent(InputEventInfo & inputEvent={...}) Line 688 C++
test_DEBUG.dll!GuiCanvas::processInputEvent(InputEventInfo & inputEvent={...}) Line 461 + 0x1e bytes C++
test_DEBUG.dll!WindowInputGenerator::generateInputEvent(InputEventInfo & inputEvent={...}) Line 75 + 0x16 bytes C++
test_DEBUG.dll!WindowInputGenerator::handleMouseButton(unsigned int did=0, unsigned int modifiers=0, unsigned int action=2, unsigned short button=0) Line 198 C++
test_DEBUG.dll!fastdelegate::FastDelegate4<unsigned int,unsigned int,unsigned int,unsigned short,void>::operator()(unsigned int p1=0, unsigned int p2=0, unsigned int p3=2, unsigned short p4=0) Line 1245 + 0x27 bytes C++
test_DEBUG.dll!Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>::trigger(unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 359 + 0x24 bytes C++
test_DEBUG.dll!Journal::Call<Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>,unsigned int,unsigned int,unsigned int,unsigned short>(Signal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)> * obj=0x056bdb48, void (unsigned int, unsigned int, unsigned int, unsigned short)* method=0x105f15b9, unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 535 + 0xc1 bytes C++
test_DEBUG.dll!JournaledSignal<void __cdecl(unsigned int,unsigned int,unsigned int,unsigned short)>::trigger(unsigned int a=0, unsigned int b=0, unsigned int c=2, unsigned short d=0) Line 133 + 0x1f bytes C++
test_DEBUG.dll!_dispatch(HWND__ * hWnd=0x0010055e, unsigned int message=514, unsigned int wParam=0, unsigned int lParam=9437868) Line 291 C++
test_DEBUG.dll!DispatchNext() Line 565 + 0x15 bytes C++
test_DEBUG.dll!Win32WindowManager::_process() Line 294 + 0x5 bytes C++
test_DEBUG.dll!fastdelegate::FastDelegate0<void>::operator()() Line 905 + 0x16 bytes C++
test_DEBUG.dll!Signal<void __cdecl(void)>::trigger() Line 315 + 0x13 bytes C++
test_DEBUG.dll!Process::processEvents() Line 78 C++
test_DEBUG.dll!StandardMainLoop::doMainLoop() Line 543 + 0x5 bytes C++
test_DEBUG.dll!torque_enginetick() Line 103 + 0x5 bytes C++
test_DEBUG.dll!TorqueMain(int argc=2, const char * * argv=0x0158c028) Line 369 + 0x5 bytes C++
test_DEBUG.dll!torque_winmain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * __formal=0x00000000, char * lpszCmdLine=0x002a33f7, HINSTANCE__ * __formal=0x00000000) Line 423 + 0x17 bytes C++
test_DEBUG.exe!WinMain(HINSTANCE__ * hInstance=0x00400000, HINSTANCE__ * hPrevInstance=0x00000000, char * lpszCmdLine=0x002a33f7, int nCommandShow=1) Line 47 + 0x16 bytes C++
test_DEBUG.exe!__tmainCRTStartup() Line 263 + 0x2c bytes C
test_DEBUG.exe!WinMainCRTStartup() Line 182 C
kernel32.dll!75441194()
[Frames below may be incorrect and/or missing, no symbols loaded for kernel32.dll]
ntdll.dll!76ffb3f5()
ntdll.dll!76ffb3c8()
Associate Chris Robertson