Accueil Forum Accès au Site Arma 2 Arma 3 Historique Ofp
Jeudi 09 Février 2012
Bonjour Votre Matricule est :

Retour : Accueil » SCRIPTS pour création de mission

Script caméra autour d'une cible --> Cam_rotation.sqs
Jackfrench
Général de classe exceptionnelle
rangs perso

Jackfrench

Date d'inscription : 27/12/2006
Messages : 598
Groupe : Administrateur

Posté le 30/12/2006 à 16:32:59  
;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


Voir le profil


Contacter l'administrateur | Recherche | Marquer tous les forums comme lus | Haut
Accueil Forum Retour site Arma 2 Arma 3 Opération ArrowHead Historique Ofp Ofp2