Tout permuter
-
Déplacer une caméra sur une spline
Domaines concernés : DarkRadiant, scripts.
-
Dans DarkRadiant, créer une func_splinemover :
- Créer une petite brush et lui appliquer la texture
NODRAW
- La convertir en func_splinemover (
darkmod/func/func_splinemover
)
- Créer une petite brush et lui appliquer la texture
-
Créer une spline NURBS et dupliquer sa valeur dans le func_splinemover :
- Curve > Create NURBS Curve
- Afficher les données de la courbe et sélectionner sa propriété
curve_Nurbs
- Sélectionner le func_splinemover et insérer la propriété
curve_Nurbs
avec sa valeur - Supprimer la spline d'origine
-
Ajuster la spline : passer en mode vecteur (touche V) et déplacer les deux points dans la spline pour refléter le déplacement voulu
-
Créer l'objet de déplacement :
- Créer une petite brush et lui appliquer la texture
NODRAW
- La convertir en func_mover (
darkmod/func/Movers/func_mover
) - Nouvelle propriété,
cinematic
, avec la valeur 1. Ceci gardera l'entité activée lorsqu'une cinématique est en cours (ce qui est le cas quand on change de caméra)
- Créer une petite brush et lui appliquer la texture
-
Créer la caméra :
- Créer un func_cameraview
- Nouvelle propriété,
trigger
, avec la valeur 1 - Nouvelle propriété,
bind
, avec le nom du func_mover comme valeur. Ceci permettra à la caméra de suivre la spline - Nouvelle propriété,
cinematic
, avec la valeur 1
-
Ajouter une cible pour la caméra :
- Créer une entité target_null et la placer à l'endroit voulu
- Ajouter une propriété au func_cameraview,
target
, avec comme valeur le nom du target_null. Ceci déterminera l'orientation de la caméra, mais seulement au chargement du niveau
-
Écrire le script :
// "spline" est une func_splinemover
// "mover" est une func_mover
sys.setCamera( $camera );
$mover.time( 5 ); // L'action du mover durera 5 secondes
$mover.accelTime( 0.1 );
$mover.decelTime( 0.1 );
$mover.disableSplineAngles(); // Stabilisation de la vue de la caméra
$mover.startSpline( $spline ); // Commencer le déplacement de $mover sur $spline
sys.waitFor( $mover );
sys.firstPerson(); // Rétablir la caméra de première personne
-
-
Utiliser un script avec une entité trigger
-
Créer la zone :
- Créer une brush qui sera la zone de l'entité trigger
- Transformer la brush en trigger (avec l'entité appropriée dans
darkmod > Triggers
, dans DarkRadiant)
- Créer le trigger_relay (
darkmod > Triggers
) - Nouvelle propriété pour la brush du trigger :
target
-> nom du trigger_relay -
Nouvelles propriétés pour le trigger_relay :
call
-> fonction du scriptwait
-> nombre de secondes à attendre avant de déclencher le relais à nouveau (pour un trigger_multiple, utile si le joueur est encore dans la zone)
-