APPENDIX A

This section explains the files that Janus uses to operate. Some files are provided with Janus, while others are generated by Janus automatically. Also, some files are optional; the user can generate these files to alter the behaviour of Janus.

Janus_MAINCONFIG and Definition Files

Janus_MAINCONFIG.cfg is the name of the file that associates a particular scene to a definition file.

A definition file is a file containing all group and command information, and global settings. A definition file's information is not stored in the scene file because this hampers the workflow of sharing definition files across scenes. This is most particular with scenes that are similar to each other. When you open up Janus for the first time, it will create a default definition file, which should be changed to an appropriate name. My suggestion is to name these definition files to broadly denote a sequence of scenes. Definition files may also be imported and exported.

Janus_MAINCONFIG.cfg is created and maintained by Janus in the root of the current content directory. Definition files may reside anywhere, but preferably it should reside within the project directory. Janus_MAINCONFIG.cfg is very important and must not be deleted. It may be modified manually. See Appendix: File Formats for technical information on this.

Janus_PLUGINDEF.cfg
Janus_PLUGINDEF.cfg (Object Plugins) is created and saved in the projects directory by Janus when an object plugin parameter is saved. Object plugins refer to plugin handlers associated with mesh / null items (e.g. DisplacementHandlers, CustomObjHandlers, and ObjReplacementHandlers). This file is generated for each project and is written to when the user saves out an object plugin parameter block.

Janus_SCENEPLUGINDEF.cfg
Janus_SCENEPLUGINDEF.cfg (Scene Plugins) is created and saved in the projects directory by Janus when scene plugin parameter is saved. Scene plugins refer to plugin handlers associated with the scene, as opposed to a specific item. This file is generated for each project and is written to when the user saves out a scene plugin parameter block.

Janus_CommandTypes.txt
Janus_CommandTypes.txt contains all the information regarding the definition of command types in Janus. This file is modifiable by the user, but care must be taken. The user should assume full responsibility of the final modification of this file and much of Janus's functionality rests on the data in this file. The file is (or should be) located in the same directory as the Janus script. See the section on creating command types for more information on how to modify this file.

Janus_GroupTypes.txt
Janus_GroupTypes.txt contains all the information regarding the definition of group types in Janus. This file is modifiable by the user, but like Janus_CommandTypes.txt, care must be taken when changing this file. The file is (or should be) located in the same directory as the Janus script. See the section on creating group types for more information on how to modify this file.

Janus_SurfaceOverrides.txt
Janus_SurfaceOverrides.txt contains directives for partial surface overrides. Partial surface overrides define which surface channel attributes are disconnected when the override is applied. See the section on partial overrides for more information. This file is modifiable by the user, but take care in modifying this file. The file is (or should be) located in the same directory as the Janus script.

Janus_FilterPresets.txt
Janus_FilterPresets.txt is generated by Janus and stores saved and recent name filters, as well as the notes presets. The user is free to modify this file as long as it follows the proper INI syntax.

Janus_WorkFile.txt
Janus_WorkFile.txt operates transparently to the user. It is a multi-purpose file used internally by Janus to facilitate string-based operations when parsing and writing out scene files. This file is created in the project's root directory. This file is generated and maintained by Janus.

Janus_AbortFile.txt
Janus_AbortFile.txt is used by Janus to capture an abort request by the user when a breakout is in progress. This file is generated and maintained by Janus.

Janus_AbortProcess.bat
Janus_AbortProcess.bat is executed by the user in order to abort a breakout that is in progress. This file is not to be modified by the user.

Janus_PluginDataModifiers.txt
Janus_PluginDataModifiers.txt is a file that contains instructions on what plugin data will be changed, and how to change them. The format is similar to any INI-style file in Janus. A section is is enclosed in the square brackets ([]), and contains a string, which are actually two indentifiers: the type of plugin, and the name of the plugin. For example:

[ImageFilterHandler,RSMBExport]

The section above indicates that the RSMBExport plugin of the image filter type will be modified. The instructions are placed below the second. Currently plugin data modifiers support the following directives:

Janus_MasterPluginExcludes.txt
By default, Janus strips a pass-scene from all Master plugins because some Master plugins / LScripts are known to crash ScreamerNet. However some Master plugins that don't crash ScreamerNet are necessary for a scene, like LW_MasterChannel, MotionMixer, etc. Janus_MasterPluginExcludes.txt is the list of Master plugins that the user intends to exclude from automatic removal. This file is located in the same directory where Janus resides. This file comes with Janus and is okay to be modified by the user.

Janus_GlobalPreferences.txt
Global preferences are stored in this file. This also includes hotkey settings. This file comes with Janus and is okay to be modified by the user so as long as it follows the correct INI syntax.

Janus_Surfaces (Folder)
This folder contains several preset surfaces that is used by the default command type of Janus. As you make your own passes, and their prerequisite shaders (if any), you may place them here as well so that Janus can easily access them. However, Janus will also look at a user-specified project-centric location for your desired shaders, too.

MOD_Copy.ls / MOD_Paste.ls
These two LScripts are used with the COMBINEOTHERGROUP and COMBINEACTIVEGROUP subcommands.

JanusTR_getWindowPos_ahk.ahk
This AHK file is used to store and set the location of the test render LWSN window.

JanusOpenGN.ls / JanusCloseGN.ls
These two LScripts are used as LScript shortcuts to quickly open up Janus via hotkey.

Janus_ReceiveImages.jsxbin
This is a Photoshop JavaScript file that extracts information from Janus in order to properly update the Photoshop composite.

Janus_SendTo_Photoshop.ls
This is an LScript that sends final images to Photoshop. You must add this as a plugin in LightWave before using. See this section for more details.

Janus_SendTo_AfterEffects.ls
This is an LScript that sends final images to After Effects. You must add this as a plugin in LightWave before using. See this section for more details.

Janus_LWSN_3_Render.ls
This is an LScript that renders the selected render passes using LWSN running mode 3 (standalone). You must add this as a plugin in LightWave before using. See this section for more details.

Janus_UserFunctions.ls
This is an LScript that Janus relies on when using user functions. The Janus user write all functions here (it is possible to include -- as in use the include pragma -- other LScripts to reduce the size of inlining code). The file also contains Janus-specific code needed to query the state of the functions. More information can be found in the user functions section in the documentation.