Page 1 sur 1

Script Intro

Posté : lun. 7 juin 2010, 13:07
par =[TTK]= Mao
J'ai trouvé ce script assez simple pour créer ton intro Youry

a mettre dans l'init.sqf

Code : Tout sélectionner

call compile preprocessFileLineNumbers "cam_functions.sqf";
un fichier cam_functions.sqf

Code : Tout sélectionner

/*##################################################################
Créer la caméra
 
FNCT_CamMakeCamera()
	@param1 Position de départ de la camera
	@return la camera créée
 
Ex : _cam = [ (getPos player) ] call FNCT_CamMakeCamera;
##################################################################*/
 
FNCT_CamMakeCamera ={
 
	_pos = _this select 0;
 
	enableRadio false;
	showCinemaBorder false;
 
	_cam = "camera" camCreate _pos;
	_cam cameraEffect ["internal", "back"];
	_cam camSetFov 1.0;
	_cam;
};
 
 
 
/*##################################################################
Libérer la caméra
 
FNCT_CamFreeCamera()
	@param1 la camera a détruire
	@return la camera
 
Ex : _cam = [ _cam ] call FNCT_CamMakeCamera;
##################################################################*/
 
FNCT_CamFreeCamera = {
 
	_cam = _this select 0;
 
	_cam cameraEffect ["terminate", "back"];
	camDestroy _cam;
	enableRadio true;
	_cam;
};
 
 
/*##################################################################
 
Suivre avec la caméra un objet en déplacement ou pas à partir 
d'un autre objet en mouvement ou pas
 
FNCT_CamFollow()
	@param1 Porteur de la camera
	@param2 cible de la camera
	@param3 durée du plan (en seconde)
	@param4 Offset de position de la camera par rapport au véhicule à suivre (x,y,z)
	@param5 la caméra
 
	@return la camera
 
Ex : [OFF1,OFF2,10,[0,-1,1.8],_cam] call FNCT_CamFollow;
 
#################################################################*/
 
 
FNCT_CamFollow = {
    _porteur    = _this select 0;
    _cible      = _this select 1;
    _duree      = _this select 2;
    _camOffset  = _this select 3;
    _cam        = _this select 4;
 
    _start = time;
 
    while {((time - _start)< _duree) && (alive _porteur) } do {
 
    	_pos = position _porteur;
    	_x   = _pos select 0;
    	_y   = _pos select 1;
    	_z   = _pos select 2;
 
    	_cam camSetPos [ 
    		_x + (_camOffset select 0 ), 
    		_y + (_camOffset select 1 ), 
    		_z + (_camOffset select 2 )
    	];
 
    	_cam camSetTarget _cible;
 
    	_cam camCommit 0;
    	sleep 0.002;
    };
   _cam;
};
Apres tu créer intro.sqf

L'intro.sqf contient le script qui va décrire tous les mouvements de la caméra. La première fonction à appeler est 'FNCT_CamMakeCamera()'.
Cette fonction va mettre en place l'intro et créer une caméra.

exemple :
Sur la Map, placer 1 Humvee nommé HM1 qui suit quelques point de passages. 1 Homme nommé MAN1 qui suit aussi quelques points de passages.

Ils vont nous servir de repère et de porteur pour notre camera.

On créé la caméra :

Code : Tout sélectionner

_cam = [ (getPos player)] call FNCT_CamMakeCamera;
On va créer le 1er plan. :

Code : Tout sélectionner

[MAN1,HM1,5,[1,1,1.8],_cam] call FNCT_CamFollow;
La caméra est portée par MAN1 et regarde HM1. La camera est placée à 1m à droite et 1 m en arrière du cameraman (MAN1) et à 1.8m au dessus de lui. Le plan dure 5 sec.
Quelque soit les mouvements des unités, la caméra suivra toujours HM1 et sera toujours portée par MAN1.

2eme plan :

Code : Tout sélectionner

[HM1,MAN1,8,[1,3,5],_cam] call FNCT_CamFollow;
Cette fois c'est le Humvee (HM1) qui porte la caméra et qui filme MAN1. La caméra est placée 1m à droite et 3 m en arrière du Humvee et à 5m de haut. Le plan dure 8 sec.

3ème plan :

Code : Tout sélectionner

[MAN1,MAN1,10,[0,0.5,2],_cam] call FNCT_CamFollow;
La camera est portée par MAN1 et regarde MAN1. Elle est placée à juste derrière la tête de MAN1.

On termine l'intro en libérant la caméra.

Code : Tout sélectionner

[_cam] call FNCT_CamFreeCamera;
ce qui donne pour une intro de 23 sec avec 3 plans en mouvement

Code : Tout sélectionner

/*
intro.sqf
*/
 
_cam = [ (getPos player)] call FNCT_CamMakeCamera;
[MAN1,HM1 ,5 ,[1,1,1.8],_cam] call FNCT_CamFollow;
[HM1,MAN1 ,8 ,[1,3,5]  ,_cam] call FNCT_CamFollow;
[MAN1,MAN1,10,[0,0.5,2],_cam] call FNCT_CamFollow;
[_cam] call FNCT_CamFreeCamera;
Source : Wiki des R3F.

Re: Script Intro

Posté : lun. 7 juin 2010, 19:10
par =[TTK]= Yourry
:cheers: :cheers: :cheers:
il y a plus qu'a alors !
je vais testé
merci !