Part of the Khronos Group

The Industry's Foundation for High Performance Graphics

from games to virtual reality, mobile phones to supercomputers

Results 1 to 2 of 2

Thread: tilt effect?

  1. #1
    Intern Contributor
    Join Date
    Feb 2011

    tilt effect?

    im making a barrel for my fps that responds to my bsp and my bullets
    i made it move around based on bullets pushing it
    just by getting the barrel move vector with subtracting barrel center from barrel bullet hit point
    i also made it spin a variable bit by getting the dot product of bullet rebound vector and the original bullet vector
    and that looks really cool but i cant stop there i dont know why
    so now i want to add tilting of the barrel when i hit it above the center
    so that is my question
    how do i calculate the x and y axis rotation for tilt from the bullet direction vector
    if i set the barrel z rotation to my camera z rotation kind of like a sprite then if i rotate it back on the y axis it works fine
    but obviously i need the z rotation to stay put while i walk around the barrel
    and make it tilt back when i shoot it
    and hopefully not just tilt it back but per the bullet rebound vector
    that if i hit it from the front on the side it would tilt to the oposite side and back a little
    i hope this is not as hard to do as i think it is

  2. #2
    Intern Contributor
    Join Date
    Feb 2011

    Re: tilt effect?

    i did my babies!!!
    the key is entityWorldAngle
    to tilt the object in the direction opposing the shot is just to simply set xy rotation to the xy bullet vector
    then when you walk around the barrel shooting at it the barrel will always tilt back
    then when the bullet spins the barrel it will want to tilt based on its forward vector
    so you have to get the angle between the barrel forward vector and the world forward vector
    then just rotate the bullet vector by that angle
    and that will correct it to always tilt back again
    this looks so nice and realistic

    now i finally realize that i need to make globally available vars like


    and so on...

    vec3_t wtf2, rv;

    wtf2[2] -= 90;
    wtf2[2] -= entityWorldAngle;

    VectorRotateQ3(aVec2, wtf2, rv);

    c->angle[0] = rv[0] * 20;
    c->angle[1] = rv[1] * 20;

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts