Q3D V-2.4 [3D Physics + Skeletal Animation UPDATE]

From the Asset Store
Run and Jump in 3 Dimensions! Take your platformer to the next level!
  • It is a pity that the creator of Q3D did not follow the Plugin project. The Plugin is very good and optimized and for 4 years it seems to me that it has not updated it. Can you imagine if it kept updating? It would be a monster and of course it would sell like gold. I bought it 2 years ago.

    The only thing I have not been able to do is export the animations from the .JS files naming them from 3DSMax. I can only export them without movement.

  • problem is that is a big hurdle. most of the short comings can be worked around. but not being able to play 3d animations well is a major hurdle.

  • Has anyone figured out how to do sprite billboarding in with Q3D in C2? I would like to do doom style rendering with sprites that will change the animation based on what direction the other sprite is facing. But I can't figure out how to determine what sprite to display based on the direction of the entity relative to the player.

  • I think a Dot Product would do the trick. Take the Dot Product of the surface normal and the direction to the player. If it is >0, then it is facing the player.

  • mmm I am trying my hardest but I must be overlooking something.

    after digging this was the simplest understanding of dot product I could find. ( (a1,a2)•(b1,b2) = a1b1 + a2b2 )

    but the code is not working as implemented (is not returning a number between 1 or -1)

    It might be looking me right in the face but I am stuck right now. any input?

  • It is quite possible that what you have is okay, but I did notice two things:

    1. Dot product will only evaluate from -1 to +1 if you normalize the vectors first. Since you haven't done this (and don't really need to), what you are seeing is the expected result. Since all you need is a number greater than 0, you should be fine.

    2. Is the enemyFacing vector a position or a direction? If it is a direction, then you don't need to subtract the enemy's position from it to get dot2. If it is a position, then you are computing v2 correctly.

    I'm not sure if dot1 and dot2 are being calculated directly, but from the numbers you have in the screenshot, they are both pointing roughly in the same direction. Their x and y components both have the same sign. The dot product should evaluate to be >0.

  • oh ok that makes sense. and yes after some more test you are right it does return a positive number or negative number even if it's high.

    I might normalize later but I seem to have found another way? I either am normalizing the vector unintentionally or my math is only working in this isolated case. But either way it's working in the range of -1,1

    by multiplying the distance between the enemy and player by 3 and then dividing the dot product by that it seems to be returning a value between the range 1,-1

    as you can see in the photo when the only thing that has changed between the two snapshots is the distance the manipulated dot product has not changed (roughly as I manually placed the instances so it was not moved on a straight line)

  • Do you need to normalize? It sounds like you just need to know if the enemy is facing the player. Normalizing involves an inefficient square root operation, and it is best avoided if you don’t need it.

  • I am not sure if I need it but it seems to be working without.

    no doubt there is a cleaner way of doing this but my solution is to get the dot product for both the front and side. this way I can see how forward and how sideways facing the entity is. I then compare the front dot value to see if it is front or rear facing and then compare the side dot to see what side is facing.

    Video of the effect in action. I am not sure if it's perfect but it seems ok to me.

    Subscribe to Construct videos now
  • This looks great! Well done!

  • problem is that is a big hurdle. most of the short comings can be worked around. but not being able to play 3d animations well is a major hurdle.

    Actually the problem exists in the plugin that exports from 3DSMAX to .js (If you export models but don't allow to name the different animations) then Q3D doesn't detect any ID animation even if they exist.

  • oh dang that stinks. is a fix in the works? or is .js a dead format?

    wasn't their a blender plugin?

  • Try Construct 3

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

    Try Now Construct 3 users don't see these ads
  • oh dang that stinks. is a fix in the works? or is .js a dead format?

    wasn't their a blender plugin?

    Apparently the Blender plugin does export animations because it allows you to name them, but the 3DSmax plugin only exports the static model.

  • I started a test in Q3D - Shame it cannot load in the colliders of a model too.

    Basic shapes might work but its pretty tricky to work out how to load / place them into the scene.

  • I have not messed with 3d collision yet. doesn't Q3D let you use the object as it's own collision shape? or are you talking about separate data that was bundled with the object that Q3D does not load?

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