Actions

Venue Autogeneration

From RBN/C3 Documentation

Revision as of 15:37, 14 October 2020 by Doa (talk | contribs) (→‎Introduction)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Introduction

Autogeneration of venue tracks is provided in Magma v2.0, with a set of default themes and a handful of pre-defined themes as well. These allow you to control how the autogeneration creates lighting, camera shots, and post process camera effects.

In addition to using the preset templates (themes), you can create your own, and add as much or as little detail to the themes as you wish. You can save these themes, edit them, and share them.

Themes are chosen via the "Theme" dropdown menu on the Gameplay Magma editing page (Game Data tab for C3 Magma), and any author-created themes will appear in the list along with the list provided by Harmonix (Figure 1).

In one click, you can totally change the look and feel of your song!

magma-themes.png
Figure 1: Magma - default auto-generation themes.

Overview

Autogen themes define a set of rules that tie specific lighting, post proc, and camera behavior to different sections of your song. They are driven by the placement of practice sections in your EVENTS track, which get mapped to effect presets for sections like "chorus", "verse", and "intro"

Default Themes

C3 Author: GhostByob.

The default themes included with Magma are found in the themes folder of your Magma installation. All themes have the .rbtheme file extension.

Theme Example: Arena Rock

C3 Author: GhostByob.

Themes can be viewed and edited with a simple text editor such as Notepad on Windows. Each theme consists of a camera pacing preset followed by a list of section presets.

The section presets contain lighting and post processing instructions for a variety of song sections.

Note: Song sections vary between themes.

The Arena Rock theme is shown below:

(camera_pacing medium)

(section_presets

   (default 
      (allowed_lightpresets loop_warm loop_cool)
      (allowed_postprocs ProFilm_a.pp)
      (lightpreset_blendin 2)
   )  
   
   (intro   
      (allowed_lightpresets silhouettes_spot loop_warm)
      (allowed_postprocs  ProFilm_a.pp)
      (lightpreset_blendin 4)
   )
   
   (preverse
      (allowed_lightpresets manual_warm)
      (allowed_postprocs ProFilm_a.pp)
      (lightpreset_blendin 2)
      (keyframe_rate 4)
   )
   
   (verse1
      (allowed_lightpresets manual_cool)
      (allowed_postprocs ProFilm_a.pp)
      (lightpreset_blendin 2)
      (keyframe_rate 2)
   )
   
   (verse2
      (allowed_lightpresets manual_cool)
      (allowed_postprocs ProFilm_a.pp)
      (lightpreset_blendin 2)
      (postproc_blendin 2)
      (keyframe_rate 2)
   )
   
   (verse3
      (allowed_lightpresets manual_cool)
      (allowed_postprocs ProFilm_a.pp)
      (keyframe_rate 2)
      (lightpreset_blendin 2)
   )    
   
   (bridge
      (allowed_lightpresets dischord)
      (allowed_postprocs ProFilm_a.pp)
      (keyframe_rate 2)
      (lightpreset_blendin 2)
   )
   
   (solo
      (allowed_lightpresets searchlights)
      (allowed_postprocs ProFilm_a.pp)
      (lightpreset_blendin 1)
   )   
   
   (prechorus   
      (allowed_lightpresets verse)
      (allowed_postprocs  ProFilm_a.pp)
      (lightpreset_blendin 2)
      (keyframe_rate 2)
   )     
   
   (chorus1
      (allowed_lightpresets chorus)
      (allowed_postprocs ProFilm_a.pp)
      (keyframe_rate 1)
      (dircut_at_start directed_all)
      (lightpreset_blendin 1)
      (bonusfx_at_start)
   )
   
   (chorus2
      (allowed_lightpresets chorus)
      (allowed_postprocs ProFilm_a.pp)
      (keyframe_rate 1)
      (lightpreset_blendin 1)
      (bonusfx_at_start)
   )
   
   (chorus3
      (allowed_lightpresets chorus)
      (allowed_postprocs ProFilm_a.pp)
      (keyframe_rate 1)
      (dircut_at_start directed_all_cam)
      (lightpreset_blendin 1)
      (bonusfx_at_start)
   )
   
   (postchorus
      (allowed_lightpresets manual_warm)
      (allowed_postprocs ProFilm_a.pp)
      (keyframe_rate 2)
      (lightpreset_blendin 2)
   )
   
   (main_riff
      (allowed_lightpresets manual_warm)
      (allowed_postprocs ProFilm_a.pp)
      (keyframe_rate 2)
      (lightpreset_blendin 2)
   )  
   
   (outro
      (allowed_lightpresets searchlights)
      (allowed_postprocs ProFilm_a.pp)
      (lightpreset_blendin 2)
   )
)


As you can see each section has it's own lighting and post-processing cues. These are used by Magma to auto-generate a Venue.

Notation

C3 Author: doa.

The examples given below typically consist of two lines (or groups) of code:

  1. a string of commands and arguments (that show how a theme is constructed), and
  2. example syntax as entered into a theme.


Camera Pacing

A default camera pacing entry is required, and can be one of the following: 'minimal', 'slow', 'medium', 'fast, 'crazy'. For Example:

(camera_pacing [pacing])
(camera_pacing slow)

Section Presets

Section presets are required and are where you will define the rules that place camera, lighting, and camera post process cues in different sections of your song.

Each entry follows the form:

([SectionName]
([ParamName] [Option 1] [Option 2] ...)
([ParamName] [Option 1] [Option 2] ...)
 ...
 )

(solo
(allowed_lightpresets searchlights)
(allowed_postprocs ProFilm_a.pp)
(lightpreset_blendin 1)
)

SectionName can be any section defined in the "extra_sections" block for this theme (see below), or one of the following built in sections: intro, preverse, verse1, verse2, verse3, postverse, prechorus, chorus1, chorus2, chorus3, solo, bridge, outro, main_riff.

Note that there is a special section "default", which is required as a catch-all when practice sections are encountered in your MIDI that do not match any of the rest of the sections defined in your preset. In fact, "default" is the ONLY section that is scrictly required in your section preset.

The following parameters are available in each section preset:

Allowed Light Presets

The allowed_lightpresets section defines which light preset to use for this section. If more than one is listed, a random one will be selected each time the section appears in your song.

(allowed_lightpresets [light preset #1] [light preset #2] ...)
(allowed_lightpresets searchlights manual_warm sweep)

Allowed Post Procs

The allowed_postprocs defines which post proc to use for this section. If more than one is listed, a random one will be selected each time the section appears in your song

(allowed_postprocs [post proc #1] [post proc #2] ...)
(allowed_postprocs video_trails.pp posterize.pp)

Keyframe Rate

If the light preset is a manual type, you can use keyframe_rate to place a 'next' keyframe every N beats during this section.

(keyframe_rate [beats between each key])
(keyframe_rate 2)

Light Preset Blend In

lightpreset_blendin specifies how many beats BEFORE this section to start blending into the selected light preset. Not specifying this will cause a hard cut to the light preset when this section begins.

(lightpreset_blendin [beats to blend])
(lightpreset_blendin 2)

Post Proc Blend In

postproc_blendin specifies how many beats BEFORE this section to start blending into the selected post proc. Not specifying this will cause a hard cut to the post proc preset when this section begins.

(postproc_blendin [beats to blend])
(postproc_blendin 2)

Directed Cut at Start

dircut_at_start specifies a directed cut to use when the section starts

(dircut_at_start [dircut name])
(dircut_at_start directed_all)

Bonus FX at Start

bonusfx_at_start, if specified, will cause a bonusfx cue to be placed at the start of this section.

(bonusfx_at_start)
(bonusfx_at_start)

Camera Pacing Override

camera_pacing overrides the default camera pacing, only for the duration of this section. Pacing be one of the following: 'minimal', 'slow', 'medium', 'fast', or 'crazy'.

(camera_pacing [pacing])
(camera_pacing slow)

Extra Sections

These extra sections, which are optional, let you specify additional practice sections you'd like to create effect presets for.

Each definition specifies section name of your choosing (such as 'chorus') followed by a list of practice section names (i.e. "prc_chorus_1a"). They have the following form:

([section_name]
(practice_sections "[practice section #1]" "[practice section #2]" ...)
)

The following example creates a section called 'test' that matches practice sections prc_gtr_solo_2 and prc_melody

(test
(practice_sections "prc_gtr_solo_2" "prc_melody")
) 

NOTE: The * character can be used in the practice section names as a wildcard, allowing a single entry to match many practice sections.

For example, consider these practice section names:

[prc_verse_1a] [prc_verse_1b] [prc_verse_1c]

These could all be replaced by "*verse_1*" because "verse_1" is text that all 3 have in common. Please see Built In Autogen Section Definitions for the full specification of all the built in sections.

Note that none of the parameters are strictly required. Defaults will be filled in where applicable. We do suggest that you at least provide the "allow_lightpresets" and "allowed_postprocs" parameters.