Dismiss Notice
60,000 passwords have been reset on July 8, 2019. If you cannot login, read this.

How To Change A Units Yaw And Pitch With Code

Discussion in 'StarCraft II Tutorials' started by rover2341, Sep 27, 2010.

  1. rover2341

    rover2341

    Joined:
    Feb 23, 2008
    Messages:
    592
    Resources:
    4
    Maps:
    2
    Tutorials:
    2
    Resources:
    4
    How To Change A Units Yaw And Pitch With Code


    What Is Yaw And Pitch?

    [​IMG]


    Functions

    ChangeOrientation(target,yaw,pitch)

    Takes the desired target(unit), yaw, pitch.
    It then changes the targets(unit) yaw and pitch Instantly.


    ChangePitch(target,pitch)
    Takes the desired target(unit), pitch.
    It then changes the targets(unit) pitch Instantly.


    Code (Text):

    ////////////////////////////////////////////////////
    // ChangeOrientation                              //
    ////////////////////////////////////////////////////
    void ChangeOrientation (unit target, fixed yaw, fixed pitch)
    {      
        // Variable Declarations
        fixed forwardX;
        fixed forwardY;
        fixed forwardZ;
        fixed upX;
        fixed upY;
        fixed upZ;

        // Variable Initialization    
        forwardX = Cos(yaw) * Sin(pitch);
        forwardY = Sin(yaw) * Sin(pitch);
        forwardZ = Cos(pitch);
        upX = 0;
        upY = 0;
        upZ = 0;
       
        // Implementation
        libNtve_gf_SendActorMessageToUnit(target, libNtve_gf_SetRotation(forwardX, forwardY, forwardZ, upX, upY, upZ));
    }

    ////////////////////////////////////////////////////
    // ChangePitch                                    //
    ////////////////////////////////////////////////////
    void ChangePitch(unit target, fixed pitch)
    {
        // Variable Declarations
        fixed yaw;
        fixed forwardX;
        fixed forwardY;
        fixed forwardZ;
        fixed upX;
        fixed upY;
        fixed upZ;

        // Variable Initialization
        yaw = UnitGetFacing(target);  
        forwardX = Cos(yaw) * Sin(pitch);
        forwardY = Sin(yaw) * Sin(pitch);
        forwardZ = Cos(pitch);
        upX = 0;
        upY = 0;
        upZ = 0;
       
        // Implementation
        libNtve_gf_SendActorMessageToUnit(target, libNtve_gf_SetRotation(forwardX, forwardY, forwardZ, upX, upY, upZ));
       
    }
    Notes

    This only works when the unit isn't moving.
    If a unit, turns upside down at any point it will roll 180 Degrees.
    Ground units don't seem to work even if you make them float.


    Credits

    Arkless
    eXirrah
    Twinmold20
    Grogian
    Rover2341


    Attached Map

    The attached map allows you to change the pitch and yaw by pressing A + D For Yaw, And W + D For Pitch. It was made by Grogain and Edited by Rover2341. It is a GUI Version.
     

    Attached Files:

    Last edited: Sep 27, 2010
  2. ikillforeyou

    ikillforeyou

    Joined:
    Jun 10, 2008
    Messages:
    1,340
    Resources:
    33
    Models:
    22
    Icons:
    9
    Packs:
    1
    Tutorials:
    1
    Resources:
    33
    This isn't a tutorial. it's a resource.

    Submit it to the resources page.