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
- Script vue caméra d'un véhicule en déplacement --> cam_suiveuse.sqs Posté le 30/12/2006 à 16:14:47
- Script poursuite --> pourchasse.sqs Posté le 30/12/2006 à 15:48:17
- script unité prete --> unitready.sqs Posté le 30/12/2006 à 15:55:15
- Script ejection hélico en feu --> Ejection_Helico.sqs Posté le 31/12/2006 à 11:51:33
- Script éjection helicoptère --> Ejection_Helico.sqs Posté le 30/12/2006 à 15:45:45
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum
|
|