getCameraViewDirection: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "\|seealso= *\[\[([^ ]+)\]\], \[\[([^ ]+)\]\]" to "|seealso= $1 $2")
m (Text replacement - " +\[ +" to " [")
 
(26 intermediate revisions by 2 users not shown)
Line 7: Line 7:
|gr1= Object Manipulation
|gr1= Object Manipulation


|descr= Returns the direction unit is looking in render time scope. While for AI the origin for the view direction vector can be taken from {{hl|[[eyePos]] unit}}, for human player the origin should be taken from player camera position {{hl|[[positionCameraToWorld]] [0,0,0]}}
|descr= Returns the direction unit is looking in render time scope. While for AI the origin for the view direction vector can be taken from <sqf inline>eyePos unit</sqf>, for human player the origin should be taken from player camera position <sqf inline>positionCameraToWorld [0,0,0]</sqf>


|s1= [[getCameraViewDirection]] unit
|s1= [[getCameraViewDirection]] unit
Line 15: Line 15:
|r1= [[Array]] - 3D Vector
|r1= [[Array]] - 3D Vector


|x1= Draw AI eye direction (green), weapon direction (red) and camera direction (blue) in 3D: <code>bob = [[createGroup]] [[east]] [[createUnit]] ["O_Soldier_F", [0,0,0], [], 0, "NONE"];
|x1= Draw AI eye direction (green), weapon direction (red) and camera direction (blue) in 3D:
bob [[setVehiclePosition]] [<nowiki/>[[player]] [[modelToWorld]] [0,100,0], [], 0, "NONE"];
<sqf>
[[onEachFrame]]
Bob = createGroup east createUnit ["O_Soldier_F", [0,0,0], [], 0, "NONE"];
{
Bob setVehiclePosition [player modelToWorld [0,100,0], [], 0, "NONE"];
_beg = [[ASLToAGL]] [[eyePos]] bob;
onEachFrame {
_endE = (_beg [[vectorAdd]] ([[eyeDirection]] bob [[vectorMultiply]] 100));
_beg = ASLToAGL eyePos Bob;
[[drawLine3D]] [ _beg, _endE, [0,1,0,1]];
_endE = (_beg vectorAdd (eyeDirection Bob vectorMultiply 100));
_endW = (_beg [[vectorAdd]] (bob [[weaponDirection]] [[currentWeapon]] bob [[vectorMultiply]] 100));
drawLine3D [_beg, _endE, [0,1,0,1]];
[[drawLine3D]] [_beg, _endW, [1,0,0,1]];
_endW = (_beg vectorAdd (Bob weaponDirection currentWeapon Bob vectorMultiply 100));
_endV = (_beg [[vectorAdd]] ([[getCameraViewDirection]] bob [[vectorMultiply]] 100));
drawLine3D [_beg, _endW, [1,0,0,1]];
[[drawLine3D]] [_beg, _endV, [0,0,1,1]];
_endV = (_beg vectorAdd (getCameraViewDirection Bob vectorMultiply 100));
};</code>
drawLine3D [_beg, _endV, [0,0,1,1]];
};
</sqf>


|seealso= [[positionCameraToWorld]] [[weaponDirection]] [[eyeDirection]] [[vectorDir]] [[vectorDirVisual]]
|seealso= [[positionCameraToWorld]] [[weaponDirection]] [[eyeDirection]] [[vectorDir]] [[vectorDirVisual]]
}}
}}

Latest revision as of 18:48, 8 November 2023

Hover & click on the images for description

Description

Description:
Returns the direction unit is looking in render time scope. While for AI the origin for the view direction vector can be taken from eyePos unit, for human player the origin should be taken from player camera position positionCameraToWorld [0,0,0]
Groups:
Object Manipulation

Syntax

Syntax:
getCameraViewDirection unit
Parameters:
unit: Object
Return Value:
Array - 3D Vector

Examples

Example 1:
Draw AI eye direction (green), weapon direction (red) and camera direction (blue) in 3D:
Bob = createGroup east createUnit ["O_Soldier_F", [0,0,0], [], 0, "NONE"]; Bob setVehiclePosition [player modelToWorld [0,100,0], [], 0, "NONE"]; onEachFrame { _beg = ASLToAGL eyePos Bob; _endE = (_beg vectorAdd (eyeDirection Bob vectorMultiply 100)); drawLine3D [_beg, _endE, [0,1,0,1]]; _endW = (_beg vectorAdd (Bob weaponDirection currentWeapon Bob vectorMultiply 100)); drawLine3D [_beg, _endW, [1,0,0,1]]; _endV = (_beg vectorAdd (getCameraViewDirection Bob vectorMultiply 100)); drawLine3D [_beg, _endV, [0,0,1,1]]; };

Additional Information

See also:
positionCameraToWorld weaponDirection eyeDirection vectorDir vectorDirVisual

Notes

Report bugs on the Feedback Tracker and/or discuss them on the Arma Discord or on the Forums.
Only post proven facts here! Add Note