eyeDirection: Difference between revisions

From Bohemia Interactive Community
Jump to navigation Jump to search
m (Text replacement - "<code>([^<]*)\[\[([a-zA-Z][a-zA-Z0-9_]+)\]\]([^<]*)<\/code>" to "<code>$1$2$3</code>")
m (Some wiki formatting)
 
(7 intermediate revisions by 2 users not shown)
Line 7: Line 7:
|gr1= Object Manipulation
|gr1= Object Manipulation


|descr= Returns the direction object is watching (eyes, or a vehicle primary observer).
|descr= Returns the direction object is watching (eyes, or a vehicle's primary observer).


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


|x1= <sqf>can = "Land_Can_V3_F" createVehicle position player;
|x1= Keep a can in front of the player's ''face'':
<sqf>
Can = "Land_Can_V3_F" createVehicle getPosATL player;
onEachFrame {
onEachFrame {
    can setPosASL [
_eyePos = eyePos player;
        (eyePos player select 0) + (eyeDirection player select 0),
_eyeDir = eyeDirection player;
        (eyePos player select 1) + (eyeDirection player select 1),
Can setPosASL [
        (eyePos player select 2) + (eyeDirection player select 2)
_eyePos select 0 + (_eyeDir select 0),
    ]
_eyePos select 1 + (_eyeDir select 1),
}</sqf>
_eyePos select 2 + (_eyeDir select 2)
]
};
</sqf>


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


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


<dl class="command_description">
{{Note
 
|user= Killzone_Kid
<dt></dt>
|timestamp= 20140526191000
<dd class="notedate">Posted on May 26, 2014 - 19:10 (UTC)</dd>
|text= This command should have really been named ''headDirection'' instead of [[eyeDirection]] as one could mistakenly think that eyes direction of your avatar correspond to the direction of the centre of your screen.
<dt class="note">[[User:Killzone Kid|Killzone Kid]]</dt>
Play with the script in {{Link|#Example 1}} to find out limitations. If you need centre of screen direction, use [[positionCameraToWorld]] instead.
<dd class="note">
}}
This command should have really been named ''headDirection'' instead of [[eyeDirection]] as one could mistakenly think that eyes direction of your avatar correspond to the direction of the centre of your screen. Play with the script in example 1 to find out limitations. If you need centre of screen direction, use [[positionCameraToWorld]] instead.
</dd>
 
</dl>

Latest revision as of 00:12, 11 November 2024

Hover & click on the images for description

Description

Description:
Returns the direction object is watching (eyes, or a vehicle's primary observer).
Groups:
Object Manipulation

Syntax

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

Examples

Example 1:
Keep a can in front of the player's face:
Can = "Land_Can_V3_F" createVehicle getPosATL player; onEachFrame { _eyePos = eyePos player; _eyeDir = eyeDirection player; Can setPosASL [ _eyePos select 0 + (_eyeDir select 0), _eyePos select 1 + (_eyeDir select 1), _eyePos select 2 + (_eyeDir select 2) ] };
Example 2:
Draw AI eye direction (green) and weapon direction (red) 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]]; };

Additional Information

See also:
positionCameraToWorld weaponDirection getCameraViewDirection 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
Killzone_Kid - c
Posted on May 26, 2014 - 19:10 (UTC)
This command should have really been named headDirection instead of eyeDirection as one could mistakenly think that eyes direction of your avatar correspond to the direction of the centre of your screen. Play with the script in Example 1 to find out limitations. If you need centre of screen direction, use positionCameraToWorld instead.