Arma 3 Scripting

Arma 3: Animated Briefing

  • Also known as Arma 3 Animated Briefing

Topic · Markdown · JSON · original wiki page

The Arma 3: Animated Briefing framework allows you to create a briefing using the in-game map which features timeline-based, animated events such as moving markers, blinking markers, zooming, and other marker-related features.

Functionality

The standard map is used as the platform. Standard markers are placed on the map using some kind of animations. Showing, hiding, canceling, moving and stretching markers is done by set of functions which are part of the briefing's framework. The briefing can be easily synced to dialogs, such as a leader explaining a plan, or to music.

Features: Easy to setup

Timeline based Can be easily synced to music or dialogs Skippable

Systems

BIS_fnc_animatedBriefing

BIS_fnc_eventTimeline

Usage

Setup

A few things need to be prepared before calling the Animated Briefing function:

private _timeline = [
    [
        0,
        {
            [markerSize "BIS_SF_zoom0", markerPos "BIS_SF_zoom0", 0, nil, true] spawn BIS_fnc_zoomOnArea;
            [(getMissionLayerEntities "g_showAtEnd") select 1, 0, true] spawn BIS_fnc_showMarkerArray;

            sleep 0.5;

            [markerSize "BIS_SF_zoom1", markerPos "BIS_SF_zoom1", 3, nil, true] spawn BIS_fnc_zoomOnArea;
        }
    ],
    [
        1.5,
        {
            ["to_c02_m01_003_br_sf_briefing_c_GUARDIAN_0", "GUARDIAN", BIS_fnc_AnimatedBriefing_speaker1] spawn BIS_fnc_TO_playSoundAndSubtitles;

            ["BIS_SF_specialArea", 2] spawn BIS_fnc_showMarker;
        }
    ],
    [
        8.2,
        {
            ["to_c02_m01_003_br_sf_briefing_c_GUARDIAN_1", "GUARDIAN", BIS_fnc_AnimatedBriefing_speaker1] spawn BIS_fnc_TO_playSoundAndSubtitles;

            _arrayTemp = ["BIS_SF_question_"] call BIS_fnc_getMarkers;
            [_arrayTemp, 8, false] spawn BIS_fnc_showMarkerArray;
        }
    ],
    [ 12, {}]
];
[_timeline, 0, nil, allMapMarkers, (getMissionLayerEntities "showAtEnd") select 1, "BIS_markerh_Zoom_final"] spawn BIS_fnc_animatedBriefing;

To show a list of markers when the briefing starts, retrieve and show them in the first element of the timeline at 0 seconds as shown below:

private _timeline =
[
    [
        0,
        {
            [(getMissionLayerEntities "showAtStart") select 1, 0, true] spawn BIS_fnc_showMarkerArray;
        }
    ],
// etc
];

Starting the Briefing

The Animated Briefing can be started by calling the function BIS_fnc_AnimatedBriefing. Once called, the briefing starts right away.

// timeline of events
_timeline =
[
    [0.0,    { hint "Start of the Timeline" }    ],
    [1.0,    { hint "Event 1" }                    ],
    [3.0,    { hint "End of the timeline" }        ]
];

// get markers to be shown at end by using the layer's name
private _showMarkers = (getMissionLayerEntities "showAtEnd") select 1;

// start the Animated Briefing at index 0
// hide all markers and show the markers from the "showAtEnd" layer after the briefing is done
// zoom on marker_rect_1 at the end of the briefing
[_timeline, 0, nil, allMapMarkers, _showMarkers, "marker_rect_1"] spawn BIS_fnc_animatedBriefing;

// Wait until timeline is over
waitUntil { !(missionNamespace getVariable "BIS_fnc_eventTimeline_playing"); };

Note

  • The briefing can be started from a different keyframe (by passing the pointer/index), which is helpful in the development/testing phase.
  • The briefing can be interrupted by setting a variable: missionNamespace setVariable ["BIS_fnc_eventTimeline_play", false].
  • To hide the standard briefing screen that normally opens after the Intro phase ends, add the line briefing = 0; in the Description.ext file in your mission folder.

Synchronizing a timeline to dialogues

Dialogues can be easily synchronized to events. This can be achieved by following these steps:

Once you are done with creating the timeline, you can add commands (e.g moving/showing/resizing markers) to the existing timeline elements to have them synchronized with the dialogs.

Map and Marker Functions

See Function Group: Map and Markers.