Bon j'ai jeté un oeil j'te propose ça :
Donc tu mets le premier script dans le OnEnter d'un déclencheur générique :
void main()
{
object oPC = GetEnteringObject();
ExecuteScript("sc_cameralocked", oPC);
}
et ensuite tu créées simplement un second script avec pour non "sc_cameralocked" qui contient ceci :
void main()
{
object oPC = OBJECT_SELF;
float fDir = DIRECTION_WEST;
float fDist = 15.0;
float fPitch = 60.0;
SetCameraFacing(DIRECTION_WEST,fDist,fPitch, CAMERA_TRANSITION_TYPE_SNAP);
LockCameraDistance(oPC, TRUE);
LockCameraPitch(oPC, TRUE);
}
Voilà, pour les explications :
--- fDir = la direction dans la quelle tu veux faire regarder le joueur, donc en fonction de ta zone DIRECTION_NORTH, DIRECTION_SOUTH, DIRECTION_EAST, DIRECTION_WEST.
--- fDist, fPitch : Deux valeurs sur lesquelles tu peux jouer pour regler le champ de vision que tu veux, (fPitch c'est l'angle de la camera, valeur entre 1 et 89, sachant que 1 c'est horizontal, et 89 c'est vertical, fDist : c'est la distance du point d'horizon va-t-on dire, si la distance est courte tes joueurs vont être bloqués à regarder leurs pieds en gros.)
--- LockCameraDistance : Tu as compris ce que ça faisait je crois. :-)
--- LockCameraPitch : Ca empèche de jouer avec l'angle de la caméra.
Donc ce script dans l'état, règle & verouille un angle vertical de caméra, et un niveau de zoom, les joueurs pourront néanmoins faire tourner la caméra à 360° autour d'eux horizontalement. Si tu veux leur enlever ça tu ajoutes un LockCameraDirection(oPC, TRUE); Mais je crains que ça les rende épileptiques