How to go about animating multiple parts of the same 3D model? (the "tank problem")

Not favoritedFavorited Favorited 0 favourites
  • 6 posts
From the Asset Store
Get ready for explosive action in "Shoot the Tank: Pew Pew"! In this thrilling tank combat game
  • Hi. Very excited to see that C3 is moving towards better 3D support.

    I'm curious to know how you're supposed to animate different parts of the same 3D model (e.g. rotating both the base and turret of a tank, moving a humanoid's head and body independently). How would I go about doing this?

    I should preface this by saying I'm relatively inexperienced in true 3D modeling/animation, and still need to wrap my head around the full capabilities of the new 3D model plugin. So far I have only seen very static, baked-in animations be played on characters (like walking or dancing) that, while neat, don't seem very useful for a 'true 3D' game.

  • The turret, hull, and gun must be separate models. If you rotate the wheels, then the wheels must also be a separate model.

  • Try Construct 3

    Develop games in your browser. Powerful, performant & highly capable.

    Try Now Construct 3 users don't see these ads
  • The turret, hull, and gun must be separate models. If you rotate the wheels, then the wheels must also be a separate model.

    Ouch. That's what I feared, which is a really big shame. The usability of 3D models is going to feel very limited without some kind of single-mesh dynamic animation.

  • > The turret, hull, and gun must be separate models. If you rotate the wheels, then the wheels must also be a separate model.

    Ouch. That's what I feared, which is a really big shame. The usability of 3D models is going to feel very limited without some kind of single-mesh dynamic animation.

    I don't know the format of your future game, so this might seem strange to me.

    Do you really want to rotate the tank turret around the tank by deforming the mesh?

    I think it would be very convenient to place all the turret objects in a family and then rotate them or apply a offset.

    A long time ago, I made a test game about tanks, and back then there weren’t any 3D models yet—just cubes. At the time, it seemed to me that separate turrets were more convenient.

    crazygames.com/game/blocky-tank-3d

  • I should preface this by saying I'm relatively inexperienced in true 3D modeling/animation

    Pretty much all modern games use bones for this, including for mechanical contraptions actually. The question is if Construct has the ability to manipulate bones at runtime. I don't think it's supported (yet?).

    Bones are exactly what the name implies. You just build a "skeleton" for your mesh which you can then move. Generally called "rigging"

    For you in the end, it will not be much different than manipulating any object in 3D space. Rotate, translate, scale. Except instead of changing the mesh directly, you will change the bone, which in turn changes the mesh based on painted weights. Weight painting is a pain btw :), generally called "skinning"

    And you can set up some clever helpers like IK (inverse kinematics) which is often used for legs/arms because it simplifies animating that in the first place and also allows for clever stuff like dynamic proper foot placement on uneven ground.

    Here's a video of the process

    youtube.com/watch

    Most games use both pre-baked animations and dynamic animations. E.g. a character walking is pre-baked, but the character looking at the player has to be dynamic, so the head-bone will rotate towards the player (with some limits). If the character dies it might turn into a ragdoll which would be physics driven. And AAA releases start to implement even more complex systems like procedural animation but I wouldn't worry about that.

  • > I should preface this by saying I'm relatively inexperienced in true 3D modeling/animation

    Pretty much all modern games use bones for this, including for mechanical contraptions actually. The question is if Construct has the ability to manipulate bones at runtime. I don't think it's supported (yet?).

    This checks out with what I've heard, yeah. Having this sounds like it could be a huge improvement.

Jump to:
Active Users
There are 0 visitors browsing this topic (0 users and 0 guests)