i have no idea how and where to put all those scripts
There's a .vap file attached to that post (shown at the bottom), which you can import either into an existing profile, or as a standalone profile (in case of the latter you'd need to include that profile into any profile you want to use it in, either into each profile individually, or as a global profile).
The command phrases consist of one or two (for diagonals) directions, and optionally a speed.
For example: "up", "up crawl", "up slow", "up fast", "up sprint", or "left up", "left up crawl", "left up slow", "left up fast", "left up sprint"
(you also have the option of speaking "go", at the start of any phrase, E.G. "go up").
(
this profile can be used to show all the possible spoken phrases the contents of a "When I say" field would generate; again, the .vap file is at the bottom of the post)
While it wouldn't be very noticeable while moving the cursor across the screen normally, when moving a camera around you may be seeing the jumps in coordinates the command generates (E.G. at "fast" speed, the cursor position jumps by 9 pixels each time it moves, every ~50ms), or the delay between the jumps (E.G. at "crawl" speed, the cursor moves 1 pixel each ~125ms)
You can try reducing either or both the delay and the amount of pixels per jump, however you'll want to check whether 0ms delay with 1 pixel jumps is fast enough, as that is the smoothest it can go without changing the "Resource balance offset" option (which may also be a possibility, but it would use more system resources as the loop will come around more often)
Another thing you can try is to check the "Move using relative data (useful for 3D games)" option, though that may not make a difference in perceived smoothness.
The gyro remote is working perfectly if i can position my head precisely because a slight move and the view switch abruptly to the sky or floor but for turning around me with go left and go right work fine. So maybe there is a way to constrain the script to not go pass a certain height since the gyro remote work fine to look up or down but i am lacking decent codding skills.
It is possible to stop the cursor's absolute position from exceeding a certain value, however in most games this may not have the desired effect when controlling the camera, as that movement is relative (I.E. the absolute position of the cursor on screen does not necessarily equate to any given position of the ingame camera)
A limit could be implemented by modifying the "mouse movement loop" command, like this:
Set integer [minimumY] value to 400
Set integer [maximumY] value to 600
Start Loop While : [stopMoving] Equals False
Begin Condition : ([incrementY] Is Greater Than 0 AND [{EXP: {MOUSESCREENY} > {INT:maximumY}}] Equals '1') OR ([incrementY] Is Less Than 0 AND [{EXP: {MOUSESCREENY} < {INT:minimumY}}] Equals '1')
Begin Integer Compare : [incrementX] Equals 0
Exit Command
Else
Set integer [incrementY] value to 0
End Condition
End Condition
Move mouse right [{INT:incrementX}] pixel(s), down [{INT:incrementY}] pixel(s) (from cursor position)
Pause a variable number of seconds [incrementDelay]
End Loop
This modified version is attached to this post for importing. The limit values were set arbitrarily; you'll want to adjust those for your screen.
As the command is set up, if you move diagonally, it will keep moving along the X axis when is reaches the Y axis limit. If you'd rather have it stop completely, modify the command to something like
Set integer [minimumY] value to 400
Set integer [maximumY] value to 600
Start Loop While : [stopMoving] Equals False
Begin Condition : ([incrementY] Is Greater Than 0 AND [{EXP: {MOUSESCREENY} > {INT:maximumY}}] Equals '1') OR ([incrementY] Is Less Than 0 AND [{EXP: {MOUSESCREENY} < {INT:minimumY}}] Equals '1')
Exit Command
End Condition
Move mouse right [{INT:incrementX}] pixel(s), down [{INT:incrementY}] pixel(s) (from cursor position)
Pause a variable number of seconds [incrementDelay]
End Loop