Script Intro
Posté : lun. 7 juin 2010, 13:07
J'ai trouvé ce script assez simple pour créer ton intro Youry
a mettre dans l'init.sqf
un fichier cam_functions.sqf
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 :
On va créer le 1er plan. :
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 :
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 :
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.
ce qui donne pour une intro de 23 sec avec 3 plans en mouvement
Source : Wiki des R3F.
a mettre dans l'init.sqf
Code : Tout sélectionner
call compile preprocessFileLineNumbers "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;
};
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;
Code : Tout sélectionner
[MAN1,HM1,5,[1,1,1.8],_cam] call FNCT_CamFollow;
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;
3ème plan :
Code : Tout sélectionner
[MAN1,MAN1,10,[0,0.5,2],_cam] call FNCT_CamFollow;
On termine l'intro en libérant la caméra.
Code : Tout sélectionner
[_cam] call FNCT_CamFreeCamera;
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;