Jouer une animation à l'aide de la fonction BIS_fnc_ambientAnim et BIS_fnc_ambientAnimCombat

Section dédiée à l'entraide à l'édition, à l'échange et au développement de scripts pour Arma 3
Avatar de l’utilisateur
Mogwaii
Messages : 420
Nouvelle-Aquitaine
Contact :

Campagne(s) Arma3

Campagne(s) WW2

Citation(s) de la Virtual Force

Jouer une animation à l'aide de la fonction BIS_fnc_ambientAnim et BIS_fnc_ambientAnimCombat

Message Posté le Posté le

Pour jouer une animation d'ambiance, Bohemia Interactive propose deux fonctions très simple d'utilisation. Il est a noter que pour chacune des animations, une logique de jeu sera créée. En outre, il semble recommandé de ne pas faire jouer un nombre trop important d'animations (J'ai testé avec une vingtaine de PNJ et cela tournait sans problème, donc... !), surtout si votre mission comporte aussi pas mal d'autres éléments.
 
Vous pourrez trouver la liste des animations et des exemples sur la page du Community Wiki pour Arma III. Sur cette même page, vous verrez que divers paramètres existent pour ces fonctions. A vous de voir l'utilité qu'ils auront pour vous. Noter simplement que trois des six paramètres possibles sont facultatifs.










BIS_fnc_ambientAnim

Cette fonction permet de jouer une animation sur une unité donnée. Cette animation est à privilégier sur les unités qui n'ont pas besoin de réagir au combat. Pour jouer l'animation, il vous suffit d'écrire par exemple :

Code : Tout sélectionner

[[_unit, "BRIEFING", "FULL"], BIS_fnc_ambientAnim] remoteExec ["call"];
Les animations possible sont :
  • STAND1
  • STAND2
  • STAND_U1
  • STAND_U2
  • STAND_U3
  • WATCH
  • WATCH2
  • GUARD
  • LISTEN_BRIEFING
  • LEAN_ON_TABLE
  • LEAN
  • SIT_AT_TABLE
  • SIT1
  • SIT
  • SIT3
  • SIT_U1
  • SIT_U2
  • SIT_U3
  • SIT_HIGH1
  • SIT_HIGH
  • SIT_LOW
  • SIT_LOW_U
  • SIT_SAD1
  • SIT_SAD2
  • KNEEL
  • REPAIR_VEH_PRONE
  • REPAIR_VEH_KNEEL
  • REPAIR_VEH_STAND
  • PRONE_INJURED_U1
  • PRONE_INJURED_U2
  • PRONE_INJURED
  • KNEEL_TREAT
  • KNEEL_TREAT2
  • BRIEFING
  • BRIEFING_POINT_LEFT
  • BRIEFING_POINT_RIGHT
  • BRIEFING_POINT_TABLE

Cette animation est jouée en boucle et peut être désactivée avec :

Code : Tout sélectionner

_unit call BIS_fnc_ambientAnim__terminate


BIS_fnc_ambientAnimCombat

Cette fonction s'emploie comme la précédente mais permet à l'unité de réagir à une situation de combat. De plus, il est possible de conditionner l'arrêt de l'animation via une condition /un code. Dans l'exemple ci-dessous, l'unité se placera par principe en mode de combat dès qu'elle sera alertée (Tirs proches, détection allié, etc...) ou lorsqu'un joueur se trouvera à moins de 5 mètres de sa position.

Code : Tout sélectionner

 
[[_unit, "WATCH1", "FULL", { (player distance _this) < 5 }], BIS_fnc_ambientAnimCombat] remoteExec ["call"];

Les animations possible sont :
  • "STAND"
  • "STAND_IA"
  • "SIT_LOW"
  • "KNEEL"
  • "LEAN"
  • "WATCH"
  • "WATCH1"
  • "WATCH2"


Sur serveur dédié

Pour jouer ces animations sur un serveur dédié, j'utilise un script.sqf que j'initialise dans le init.sqf.

Voici ce que j'inscris dans mon init.sqf :

Code : Tout sélectionner

 
nul = [] execVM "scripts\ambientAnimation.sqf";

Pour le script d'animations, nommé ici "ambientAnimation.sqf", je le place habituellement dans un sous-dossier nommé "scripts". Dans ce fichier sqf, je place ceci :

Code : Tout sélectionner

 
if (isServer) then {

//BIS_fnc_ambientAnim ==> Les unités ne se mettent pas en mode "combat" (A utiliser pour l'ambiance !)
[[_unit, "BRIEFING", "FULL"], BIS_fnc_ambientAnim] remoteExec ["call"];

//BIS_fnc_ambientAnimCombat ==> Les unités peuvent se mettre en mode "combat"
[[_unit, "WATCH1", "FULL", { (player distance _this) < 5 }], BIS_fnc_ambientAnimCombat] remoteExec ["call"];
};
Comme vous le voyez, il est possible d'initialiser l'ensemble des animations dans un même code. Pour chaque nouvelle unité a animer, je créé une ligne. Il doit être possible de passer par un tableau, mais je n'ai pas encore essayé /testé et comme cela fonctionne bien ainsi... bah, vous m'aurez compris !  :rolleyes:

Bon jeu,
Image
Image
Répondre