JackFrench Arma 3
Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Le Deal du moment : -50%
-50% sur les sacs à dos pour ordinateur ...
Voir le deal
19.99 €

Aller en bas
JackFrench
JackFrench
Admin
Messages : 150
Date d'inscription : 25/02/2019
https://jackfrench-arma3.fr/

 	Script caméra autour d'une cible --> Cam_rotation.sqs  Posté le 30/12/2006 à 16:32:59 Empty Script caméra autour d'une cible --> Cam_rotation.sqs Posté le 30/12/2006 à 16:32:59

Mer Fév 27 2019, 10:07
ATTENTION écrit pour OFP non Testé Arma version française
Code:
;ATTENTION écrit pour OFP non Testé Arma version française
;==========================================================================
; Fais tourner la camera autour de la position de "cible" version 1.0
;
; [getmarkerpos "cible",getpos soldat1, 0, 50, 10, 50, 0.1] exec "Cam_rotation.sqs"
; [getpos patrouille,getpos espionintro,-30,0,10,5,0.1] exec "Cam_rotation.sqs"
; paramètre 1: origine
; paramètre 2: point concerné
; paramètre 3: angle de départ
; paramètre 4: angle d'arrivée (la caméra parcourt les angles entre celui de depart et d'arrivée)
; paramètre 5: placement par rapport au point (devant derriere)
; paramètre 6: placement par rapport au point (hauteur)
; paramètre 7: frequence
;

_coordOrigine = _this select 0
_coordPoint = _this select 1
_Theta1 = _this select 2
_Theta2 = _this select 3
_recul = _this select 4
_hauteur = _this select 5
_freq = _this select 6

_inc = 1
? _theta1 > _theta2 : _inc = -1

_coordx = _coordOrigine select 0
_coordy = _coordOrigine select 1
_coordz = _coordOrigine select 2


;On calcule les distances algébriques pour chaque coordonnées.

_PosX = ((_coordPoint select 0) - (_coordOrigine select 0))
_PosY = ((_coordPoint select 1) - (_coordOrigine select 1))
_PosZ = ((_coordPoint select 2) - (_coordOrigine select 2))


;On détermine la distance entre les deux points

_distance = sqrt ((_PosX * _PosX) + (_PosY * _PosY) + (_PosZ * _PosZ))
_sin = _PosY / _distance
_cos = _PosX / _distance


;On regarde sur quelle partie du cercle trigo on est pour déterminer l'angle.

? _sin >= 0 and _cos >= 0: _angle = acos _cos
? _sin >= 0 and _cos < 0: _angle = acos _cos
? _sin < 0 and _cos >= 0: _angle = - acos _cos
? _sin < 0 and _cos < 0: _angle = - acos _cos


;TitleText [format["dist: %1 ; cos: %2 ; sin: %3 ; angle: %4",_distance,_cos,_sin,_angle],"PLAIN DOWN",1]

_distance= _distance + _recul
_rot = _angle + _theta1
;_rot = _angle

_camera = "CAMERA" camCreate [_coordx + (_distance * (cos _rot)),_coordy + (_distance * (sin _rot)),_hauteur]
_camera cameraEffect ["internal","front"]
_camera camCommand "inertia off"

_camera camsetTarget _coordOrigine
_camera camCommit 0
@camCommitted _camera

#boucleprincipale
_camera camSetPos [_coordx + (_distance * (cos _rot)),_coordy + (_distance * (sin _rot)),_hauteur]
_camera camCommit _freq
@camcommitted _camera
_rot = _rot + _inc
;?_rot < 360 : goto "boucleprincipale"
?_inc == 1 and _rot < _angle + _theta2 : goto "boucleprincipale"
?_inc == -1 and _rot >= _angle + _theta2 : goto "boucleprincipale"
camdestroy _camera
Revenir en haut
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum