Hello! I just wanted to make sure I know my options for implementing non-armature animation from Blender. I.E. a gun recoiling, or a gun moving up and down (From walking), etc.
Does the animation have to be included with the model? That would prove rather cumbersome to do that for every gun… I was hoping that I could create a node for the gun, then have all the “IPO” animations that were created in Blender on that node… How would I do this?
Thank you very much!
why not just using your characters armature and reparent the gun to that armature. (like in the looking and gripping sample which ships with panda)
The Game doesn’t have a character. (Kinda Like Halflife) I.E. It is just a gun, you never actually “see” your person… but the player had no reason not to believe he is there… But also like what if I wanted a Ship to crash in a certain way, or an object to fall via an animation. (So as not to use up processing power in physics)
Surely Panda has some way of defining an animation that doesn’t use Armatures right?
If you didn’t use an armature, what would you use instead?
In any case, you can have just one “gun floating” animation that moves around any of your guns, using techniques as ThomasEgi suggests.
I think there is a misunderstanding here.
Animation is when a model change its own form, like a arm moving for a human.
If you have a gun that should move, but without changing its structure, you only need to have its node moved.
It just depend on panda side, ie: you can’t create that in blender.
On the bright side, once you have the movement of your node, any mesh ( gun) parented can use the same ‘animation’
You reparent a node just a little forward of the camera, and apply a task to make it jiggle. then you reparent the current gun to this node.
It is true that you can animate a node using Panda code, for instance via a task or an interval. But you can also animate a node using Blender and Panda’s animation system.
It just depends on what’s easier for you. The complex motion of a gun moving in front of your face while you’re walking might be most easily constructed using keyframe animation in Blender, then exported to Panda as an animation.
Just because you use Blender to animate a node, doesn’t mean there has to be a visible character skinned around that node. The “looking and gripping” tutorial would work exactly the same even without Eve, as long as there was an (invisible) animated skeleton going through Eve’s motions.
So, to make sure I have this straight. There is no way to define a path or motion without using armatures or panda intervals?
As well, in my FPS game (Horror Room) I need guns recoiling, bullets flying out of the weapon (Ya know like the ones that come off to the side, rays are used for actual shooting), shoulder roll (where the gun moves up and down from walking), reloading (Gun will move and and cock down or something). The gun is attached to a single node and does not have an armature. So (finally) how would you guys recommend doing this?? I already have IPO animations made in blender… Would I have to remake them in Panda Intervals… that sounds tedious… Thanks a lot!
you did that with ipo’s?.. wow. well you should be able to set up an armature and use a “copy rotation” and “copy position” modifier on the bone so it copies your gun’s movement , or whatever you had. so to say… a 2nd copy of your model. getting the IPO from blender into panda is a lot more tricky. someone tried before i think.
I don’t know anything about Blender, and I don’t know what an IPO animation is. But if it doesn’t convert to an animated egg file, that sounds more like an issue with the converter, than with Panda per se.
The kind of motion you’re describing is the kind of motion that would most easily be represented in Panda with an animated egg file, via the Actor interface. How you create that egg file is really between you, your modeling tool of choice, and your egg converter.
I appreciate all of the help and support that has been given here!
ThomasEgi - Since IPO’s are so similar to Panda’s I may copy these ones by hand and maybe later write a script.
dwrw: IPO stands for, “Interpolation” a term I have no doubt that you know. So in blender one would say insert at frame 1 a “key” for the cube to be at 0,0,0 in position. Then at frame 25 another key for the cube to be at 0,25,0. Blender would then interpolate and move the cube from 0,0,0 to 0,25,0 over the space of 25 frames. You see? Blender can also do this for rotation, scaling, colors, basically anything… And as far as I am aware is the standard method for dynamic objects in blender. So, since this is quite similar to Panda’s Intervals I will copy the things by hand… for now. Later I may write a script that can take the blender data and turn it into Panda code!
Thank you for all of your help!
@ThomasEgi Heh, I tried it.
What I did was store a “velocity delta” that is how much units are moved during one frame and then how many frames was the animation, later with that information setup a panda task that animated the object during the specified time with the specified velocity.
It’s not really tricky if you only intend to use panda from python as you can use the pickle python module to store python objects and load them from panda(with no conversion headhaches) the problems begun because I wanted to be able of animating it that way also from C++, which involved writing a bit more code, but not a lot really, I had a preliminary version working.