Code34/Sandbox – User

From Bohemia Interactive Community
Jump to navigation Jump to search
(create sandbox page main menu)
 
(Replaced content with "== Todo ==")
Tag: Replaced
 
(14 intermediate revisions by the same user not shown)
Line 1: Line 1:
[[Category:Sandbox]]
== Todo ==
 
{{TOC|side}}
 
[[Arma 3 Apex]] introduces new main menu.
 
[[File:a3 mainMenu.jpg|512px]]
 
== World Scene ==
World scene is a scenario shown behind main menu when a specific terrain is loaded and [[Arma_3_Startup_Parameters#Game_Loading_Speedup|-skipIntro]] is not used. If you're playing on Altis and leave to main menu, Altis scene will be used.
 
The scene is configured with the terrain and is responsibility of a terrain creator.
 
=== Guidelines ===
The scene should meet following criteria:
* '''High FPS is important!''' Lower performance makes navigating the menu uncomfortable.
** Low [[setViewDistance|view distance]] (~200 m) is recommended.
** Camera looking down or towards sloped terrain, so the view distance is not as apparent.
* All content of the scenario should be placed in the ''Intro'' [[Eden_Editor:_Scenario_Phases|phase]].
* Camera is static, all the movement should be in the scene (e.g., vegetation in the wind, sea, wildlife, etc.)
** Avoid following settings (not mandatory, it may work in some cases):
*** Unlit night scenes (dark menus on dark scene don't look well).
*** Bad weather (hides shadows).
* The scene should work on 16:9 screen. Multiple monitors doesn't need to be considered, as the main menu shows a grey background there.
 
=== Configuration ===
<syntaxhighlight lang="cpp">class CfgWorlds
{
// Class of your terrain
class MyWorld
{
cutscenes[] = {"MyWorldScene"}; // Class names of used scenes. When more than one is present, the system will pick one randomly.
};
};
class CfgMissions
{
class Cutscenes
{
class MyWorldScene // Class referenced in 'cutscenes' property in CfgWorlds
{
directory = "\MyAddon\MyScene.MyWorld"; // Path to scenario with the scene
};
};
};
</syntaxhighlight>
 
=== Scenario ===
<ol>
<li>Open [[Eden Editor]] on the desired terrain</li>
<li>Switch to ''Intro'' [[Eden_Editor:_Scenario_Phases|phase]] and place a player character (the system will not work without a player!)</li>
<li>Save the scenario using the name defined by ''directory'' property in config (''MyScene.MyWorld'' in our example)</li>
<li>Open scenario folder (''Scenario > Open Scenario Folder'')</li>
<li>Create '''initIntro.sqf''' file, it will be run automatically at the scene start</li>
<li>Copy the code below to the file
<syntaxhighlight lang="cpp">
[
//--- Underwater plane
{
["InitDummy",["Stratis",[1445.92,4802.16,-4.05235],140.191,0.27,[-9.09091,-10.4773],2.74605,0,1049.08,0.00329716,1,1.10852,-0.157568,1.23792]] call bis_fnc_camera;
setviewdistance 200;
},
//--- Aegis
{
["InitDummy",["Stratis",[2622.76,580.76,16.5994],25.2349,0.53,[-44.4346,0],0,0,526.374,0.00669019,1,1,0,1]] call bis_fnc_camera;
}
] call BIS_fnc_initWorldScene;</syntaxhighlight>
The script will automatically add a subtle vignette and play main menu theme repeatedly.
</li>
<li>Replace scenes in the [[Array|array]] with your scenes captured by [[Arma 3: Splendid Camera]]. Make sure to use "InitDummy" [[String|string]] at the beginning. The example currently uses two Stratis scenes, you replace them with as many scenes as you wish.
* Optionally, add assets to the scene in the editor if needed (e.g., soldiers walking around, parked vehicles, etc.)</li>
<li>Move the scenario folder to your addon folder (as defined by ''directory'' property in config; ''\MyAddon\MyScene.MyWorld'' in our example)</li>
</ol>
 
== Spotlight ==
Three large square buttons in the middle of the main menu are spotlight buttons. While the left and right ones are hard-coded, the middle one can be used by any mod-maker.
 
It's possible to define a list of spotlights, with the system picking randomly from them every time the menu refreshes (i.e., startup or returning from sub-menu).
 
=== Configuration ===
<syntaxhighlight lang="cpp">
class CfgMainMenuSpotlight // RscDisplayMain >> Spotlight works but is considered obsolete since SPOTREP #00064
{
class CoopCampaign
{
text = "Coop Campaign"; // Text displayed on the square button, converted to upper-case
textIsQuote = 1; // 1 to add quotation marks around the text
picture = "\a3\Ui_f\Data\GUI\Rsc\RscDisplayMain\spotlight_1_apex_ca.paa"; // Square picture, ideally 512x512
video = "\a3\Ui_f\Video\spotlight_1_Apex.ogv"; // Video played on mouse hover
action = "ctrlactivate ((ctrlparent (_this select 0)) displayctrl 101);"; // Code called upon clicking, passed arguments are [<button:Control>]
actionText = $STR_A3_RscDisplayMain_Spotlight_Play; // Text displayed in top left corner of on-hover white frame
condition = "true"; // Condition for showing the spotlight
};
class AnotherCoopCampaign
{
text = "Another Coop Campaign";
picture = "\a3\Ui_f\Data\GUI\Rsc\RscDisplayMain\spotlight_1_eastwind_ca.paa";
action = "ctrlactivate ((ctrlparent (_this select 0)) displayctrl 149);";
actionText = $STR_A3_RscDisplayMain_Spotlight_Play;
condition = "isKeyActive 'FinishedCoopCampaign';";
};
class JoinServer
{
text = "Splendid Server";
picture = "my_mod\data\spotlight.paa";
action = "connectToServer ['127.0.0.1', 2302, '']";
actionText = "Join the Splendid Server";
condition = "true";
};
};
</syntaxhighlight>
 
 
{{GameCategory|arma3|Editing}}

Latest revision as of 20:53, 22 February 2021

Todo