Additional Documentation (advanced features)

Got questions about Shipmaker? Get answers here. Please read the stickied topics first!

Moderators: th15, Moderators

Locked
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Additional Documentation (advanced features)

Post by Kaelis »

Last edited by Kaelis on Wed Sep 16, 2009 7:31 pm, edited 11 times in total.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

DIRECT CONTROL

In DC mode, you can control how your ship moves and where/when do its weapons shoot with keyboard and mouse.

For ship movement, arrow keys, W S A D keys, and mouse are used.

There are 4 DC modes that define movement control scheme.
Mode 1 - ship rotates to face mouse, W S / up down move ship forward (where its facing) and backward, A D / left right strafe the ship to its (relative to the ship facing) left/right
Mode 2 - ship rotates to face mouse, W S A D / up down left right move the ship in relevant direction relative to the screen
Mode 3 - ship does not rotate to face mouse, W S / up down move ship forward/backward, A D strafe ship to its left/right, left and right rotate ship
Mode 4 - Ship does not rotate to face mouse, W S A D / up down left right move the ship in relevant direction relative to the screen AND rotate it to face that direction at the same time

If you want to control weapons, you have to assign them to a DC group in ShipMaker via 'DC group' edit field in ED2 tab. Each group corresponds to certain keyboard key or mouse button which will fire weapons belonging to those groups (they won't fire by themselves). Weapons assigned to a DC group will rotate to face the mouse when the ship they belong to is in DC mode (taking their fire arc into account), outside of DC mode they will behave like normal weapons.

To enter DC mode, select a ship and press Ctrl+C. To toggle through every mode keep pressing Ctrl+C. To immediately exit out of DC mode (without having to toggle through them) press C. When in DC mode, you will be unable to command other ships, and zooming will not work. The camera will follow your ship automatically.

Note that Direct Control is not supposed to be integral game mechanic; its just for fun. It might be exploitable and/or unbalanced.
Last edited by Kaelis on Fri Feb 06, 2009 1:52 am, edited 2 times in total.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

MOVING SECTIONS

Sections with linear movement enabled will move between their origin (starting point, where theyre placed in SM) and their move target, the back.

You can either change the move target by using appropriate edit fields in ED2 tab ('Target X/Y' and/or 'Target distance' and 'Target direction'), or you can press T (while the section is selected) to get a visual representation of the target point and manipulate it with mouse and keyboard arrows (shift+mouse move/fine move apply). Press left mouse button or again T to confirm, press right mouse button to abort.

Note that if the moving section is parented to a rotating section (even indirectly), the rotation will affect movement.


Parameter explanation:

Moving - Defines whether the selected sections moves or not.
Target X/Y - X/Y coordinates of move target, will update Adv/Ret speed.
Target distance - Distance of move target from origin, will update Adv/Ret speed.
Target direction - Direction of move target in respect to origin.
Start distance - The distance between origin and target at which the movement should start.
Adv speed - Defines how fast the movement from origin to target should be, in pixels per frame. Will update Adv frames.
Ret speed - Defines how fast the movement from target to origin should be, in pixels per frame. Will update Ret frames.
Adv frames - Defines how many frames should the movement from origin to target take, will update Adv speed.
Ret frames - Defines how many frames should the movement from target to origin take, will update Ret speed.

Adv delay - Defines how many frames section will wait after reaching move target until moving back to origin.
Ret delay - Defines how many frames section will wait after reaching move origin until moving to target.
Counter - If starting distance is between origin and target, positive value means section will start moving towards target, negative value (-1) means section will start moving towards origin. Otherwise, determines the starting counter for current delay.

Do not set Target distance, Adv speed, Ret speed, Adv frames or Ret frames to 0.


Use preview mode to see how movement will look like ingame.
Last edited by Kaelis on Tue Feb 03, 2009 10:34 pm, edited 2 times in total.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

ROTATING SECTIONS

You can make sections rotate. Their children will follow, as if they were attached (much like group rotate in ShipMaker). This includes sections, doodads, weapons and modules. Rotating sections can rotate in one direction indefinitely, or you can set them to stop rotating after reaching a certain angle, then rotate back after (optionally) waiting a number of frames.


Parameter explanation:

Rotating - Defines whether the selected section rotates or not.
Start angle - Defines at what angle should the rotation start.
CW/CCW Rot speed - Defines how fast should the clockwise/counterclockwise rotation be, in degrees per frame. CW/CCW Rot frames will be automatically updated to match.
CW/CCW Rot frames - Defines how many frames should the rotation cycle (either 360 degrees if borders are disabled, or from one border to another if borders are enabled. CW/CCW Rot speed will be automatically updated to match.

Borders - Defines whether rotation is limited to certain angles. Limiting rotation means that instead of constantly rotating in one direction, the section will rotate back after reaching CW/CCW border.
CW border - Defines at what angle section will start rotating back towards CCW border.
CCW border - Defines at what angle section will start rotating back towards CW border.
CW delay - Defines how many frames section will wait after reaching CW border until rotating back towards CCW border.
CCW delay - Defines how many frames section will wait after reaching CCW border limit until rotating back towards CW border.
Counter - If starting angle is within borders, positive value means section will start rotating CW, negative value (-1) means section will start rotating CCW. If starting angle is not within borders, determines the starting counter for current delay.

Do not set CW/CCW Rot speed or CW/CCW Rot frames to 0

Use preview mode to see how rotation will look like ingame.
Last edited by Kaelis on Tue Feb 03, 2009 10:35 pm, edited 2 times in total.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

WEAPON LINKS

Weapon linking allows you to make weapons fire at the same time in the same direction. Link children will have the same angle as their link parent (they turn when their link parent turns, disregarding their arc range), and shoot at the same time (and only then) with optional delay ('Link delay' field in ED2 tab). Parameters unrelated to shooting angle and reload will still be in effect on link children. The link parent will behave as a normal weapon. When the link parent is destroyed, link children get back to normal weapon behavior. There can be only one link parent for a weapon, but one weapon can have multiple link children.

To pick a link parent for selected weapon, right click on the weapon you want to be the link parent and select Set Link. Select Clear Link to clear the link (its link parent) from the weapon under mouse. Red arrows will indicate links (you can turn them off by using 'Link/Driver Lines' option from Commands menu).

If you want weapons on a turret to work like barrels, link them all to the driver.



WEAPON DRIVERS

Driven sections behave just like rotating sections (including children rotating along with their parent), but instead of rotating by themselves, their angle is derived from the weapon that drives them - when the driver turns, so does the section. This make it possible to create proper turrets.

To pick a driver weapon for selected section, right click on a weapon and pick 'Set Driver'. To clear the driver, right click on a section and pick 'Clear Driver'. Orange arrows will indicate drivers (you can turn them off by using 'Link/Driver Lines' option from Commands menu).

For the driven section to work properly, its weapon driver cannot be parented to it.

If you want to build a proper turret, its best to move the driver to be at the same coordinates as the driven section, and hide underneath the turretsection (with weapon depthing) or make it invisible (0 alpha), give it alot hp, and disable shooting with 'Shooting' field in ED2 tab.
Last edited by Kaelis on Tue Feb 03, 2009 12:08 am, edited 1 time in total.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

TRIGGERS

Triggers give you the ability to trigger on/off certain actions (for example section movement or weapon fire) with other actions (for example when certain section reaches specific angle or weapon acquires a target). Trigger parameters are located in EDIT tab for sections and ED2 tab for weapons.

'Mode' field defines what kind of behavior will be triggered. For sections, it is Move, Rotate, and Fade, and Move+Rotate. For weapons, its Online/Offline (if weapon is offline, it won't shoot, rotate, or gain targets), Shooting, Force fire (means that the weapon will be forced to fire, in this mode the off trigger has no effect).

There are two types of triggers: trigger on and trigger off. As the name suggest, trigger on triggers something online (for example, start rotation), trigger off puts it offline (stops rotation). For both triggers, you can pick two actions to fire that trigger (so that you can trigger something with two different actions). To pick actions, use fields called 'Trigger on action 1/2' and 'Trigger off action 1/2'.

Available actions:
Frames elapsed (self) - Will trigger when a set number of frames has elapsed after its been triggered off (if its set for 'trigger on action 1') or triggered on (if its set for 'trigger off action 1'). There is a separate field ('On frames' and 'Off frames') for defining the amount of frames.
Key pressed: , (comma), . (period), / (slash) - Will trigger when the picked key is pressed.
Rotation reach CW/CCW border - Will trigger when the picked rotation border is reached.
Movement reach target/origin - Will trigger when move target/origin is reached.
Fade reach hi/lo limit - Will trigger when the selected fade limit is reached
Weapon fire - will trigger when weapon fires
Weapon acquired target - Will trigger when weapon has acquired target (providing that there was no target before)
Weapon lost target - Will trigger when weapon has lost target (providing that no new target has been assigned at the same time)

Actions that have (self) or (s) beside their name mean that the action will be taken from the same section that will be triggered; the section will trigger itself. For example, if you set the section to rotating and enabled borders, set on trigger to 'Rotation reach CW border (self)', and set mode to Move, it will mean that once this section has reached CW border while rotating, itll also start moving.

For actions that have no (self) tag, you will need to set a trigger on/trigger off parent. Do that by right clicking on the desired parent (section or weapon) while you have a section/weapon selected, and picking either 'Set on trigger 1/2' or 'Set off trigger 1/2'. For example, if you have set 'Trigger on action 1' to 'Fade reach hi limit', you will need to right click on a section that fades and pick 'Set on trigger 1'. If youve picked one of the weapon-specific actions for off trigger action 1/2, you will have to click on a weapon and set pick 'Set off trigger 1/2'. Cyan arrows indicate on trigger parents, magenta arrows indicate off parents, and blue arrows indicate that both on and off triggers are set to that parent (you can turn them off by using 'Trigger Lines' option from Commands menu).

If all trigger actions are set to the same actions, and they have the same trigger parent (doesn't matter for (self) triggers), the action will toggle selected behavior between on and off.

You can set the delay in triggering a behavior (mode) after receiving a trigger for both triggers (will apply to both actions) by using the 'On delay' and 'Off delay' fields.

You can preview key triggers (as well as other triggers) in preview mode by pressing relevant keys. Triggers will be executed for all section/weapons with those actions as on/off trigger. You can trigger weapon fire/weapon gained target/weapon lost target in the same way by pressing Q, W and E respectively. disable shooting with 'Shooting' field in ED2 tab.
Last edited by Kaelis on Tue Feb 03, 2009 12:18 am, edited 1 time in total.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

NEW VISUAL EFFECTS

Sections (and in some cases, other components as well) can now use a variety of visual effects. All fields for these effect are located in EFF tab, except for Alpha (transparency) which can be found in

Blending - You can now set sections to be rendered in additive blending mode. To do that, press Shift+C while a section is selected, or use the 'Blending' field.

Alpha (transparency) - All components (including weapons and modules) have an Alpha field in the EDIT tab. You can also change transparency of selected components with [ and ] keys.

Disable glow - This field allows you to disable ingame glow on specific sections. Glow is not visible in ShipMaker.

Shimmer - This field allows you to disable the slight variations in color brightness that are present ingame. Normally its barely noticeable (especially if you have non-black glow), but becomes an issue when trying to perfectly match sections with weapon/module sprites (since weapons and modules don't have shimmer). Shimmer is not visible in ShipMaker.



Section effects

Sections also have several other effects with their own parameters, notably the fake Aegis glow.

Parameter explanation:

Effect type - Defines what effect will be added when rendering selected section. Possible effect types are:
Alpha fade - This will make the effect fading work on section transparency instead of selected effect.
Custom glow - Lets you specify a custom glow color and possibly make it fade. Glow is not visible in ShipMaker.
Section over - Renders another section sprite above the existing one.
Section under - Renders another section sprite under the existing one.
Fake aegis - Visual Aegis effect does not have any of the aegis module mechanics (has no impact on gameplay), and does not require a module.

Alpha - Defines transparency of the effect, starting alpha if effect fading is on.
Blending - Defines blending mode of Section over/under effects.
Color - Defines the color of effect.
X offset - Defines X offset for Section over/under effects.
Y offset - Defines Y offset for Section over/under effects.
X scale - Defines X scale for Section over/under effects.
Y scale - Defines Y scale for Section over/under effects.
A. blur - Defines blur/glow of Fake aegis effect.
Spread - Defines spread of Fake aegis effect.

In addition to being able to see the effects (and their fading) immediately, you can preview them more accurately in preview mode. You can also press F6 to reset fade and fade delay on all section at once.



Effect fading

It is possible to make section effects change their transparency with time, making them glow or vanish. Parameters for effect fading are located in the EFF tab.

Parameter explanation:

Alpha fade - Defines whether selected effect should fade or not.
Fade in - Defines how many frames will the effect fade in (towards Hi limit) process take.
Fade out - Defines how many frames will the effect fade out (towards Lo limit) process take.
Counter - If the starting alpha is between limits, positive value means that the effect will start fading in, negative value (-1) mean that the effect will start fading out. Otherwise, determines the starting counter for current delay.
Hi limit - Defines at what value alpha will start fading down, towards Lo limit. Real value, 0 to 1 ( 0 = fully transparent, 1 = opaque)
Lo limit - Defines at what value alpha will start fading up, towards Hi limit. Real value, 0 to 1 ( 0 = fully transparent, 1 = opaque)
Hi delay - Defines how many frames the fading process will wait after reaching Hi limit until fading back to Lo limit.
Lo delay - Defines how many frames the fading process will wait after reaching Lo limit until fading back to Hi limit. disable shooting with 'Shooting' field in ED2 tab.
Last edited by Kaelis on Tue Feb 03, 2009 2:11 am, edited 2 times in total.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

CUSTOM SPRITE IMPORT

You can import your own sprites for use as sections, doodads, weapons or bullet sprites.



Format & technical info

Custom sprites must be in the form of .png or .gif files (with extension in lowercase), and need to be located in Custom sprites directory residing in BSF directory. Their names should be short and every single sprite must have a unique name (refer to the 'Sprite name rules' sticky in Custom content forum sections for naming rules). Section, doodad and weapon sprites all need a 1 pixel black border, which will be used as transparency color. Additionally, if you want the glow on custom sections to work properly, they need to be 80x80 in size. All sprites will be imported with their origin set to ceil(width/2), ceil(height/2), where the top left pixel is 0,0.

Note that all custom sprite paths for current ship are saved with the sb4 and shp. If you move a sprite out of the directory it was in when youve built the ship, the sprite will appear as missing when loading your ship. The only way to change paths in a saved sb4 is to open it up in a text editing app and change them manually (theyre relative to Custom sprites directory).



Importing, arranging and saving

All available sections are distributed through four groups, and the current selection of available sections (the section button on the sidebar and section picker) will reflect currently active group. To change groups, change 1234 mode to ‘groups’ with tilde, then press corresponding 1/2/3/4 keys. You can also see and pick all sections from currently active group by invoking the section picker with the Z key.

Another feature regarding groups is group arrange, accessible from Tools menu. You can manage your groups by selecting sections, dragging them around, deleting etc. You can save and load your group arrangements by using the 'Save Sprites Ini' and 'Open Sprites Ini' options from Tools menu.

To import a section or doodad and insert it directly onto the grid in SM, simply drag and drop the files onto the SM window. If you drag a gif, you will be presented with an option to make it either a section or a doodad.
You can import custom sections to the end of current group by dragging and dropping a file onto the section picker. Alternatively, there is an 'Import Section Sprite' option in Tools menu which has the same result (but doesn't use drag&drop).
You can also import custom sections into a specific group at specific position by dragging and dropping files into place while group arrange is active. Imported sections will be inserted directly after the section which was under mouse (highlighted) when they were dropped.




Weapon and bullet sprites

To set a custom sprite for a weapon or its bullets, use the appropriate fields in ED2 tab. You will be presented with open file dialog, press cancel to go back to default sprites. You can also change the scale of bullets with 'Bullet x/y scale' fields, use -1 for default. Note that you won't be able to see how bullet sprites actually look like in ShipMaker.



Export Custom Sprites

'Export Custom Sprites' option in Tools menu lets you copy all sprites currently used by your ships to a new directory (you will be presented with a dialog asking for directory name). Copied files will retain their paths (ShipMaker will create the necessary directories) relative to Custom sprites directory.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

MOUSE FUNCTIONS

There are a few mouse + keyboard combinations that make it possible to pick and manipulate sections only with mouse.

Scrolling - Use Ctrl + mousewheel to scroll through the current section group (as if you were using arrow buttons)
Precise dragging - While dragging components with mouse, you can hold Shift for more precise positioning.
Rotating - You can rotate selected sections and doodads by holding V (15 degrees by default) or X (5 degrees) and rotating the mousewheel. There are entries in smconfig.ini for defining V/X rotate steps, called 'rotxstep' and 'rotystep' respectively.
Scaling - To scale sections or doodads with mouse, hold B (for horizontal scale) or N (for vertical scale) and use the mousewheel.
Flipping - You can flip sections and doodads by pressing lmb and rmb when V key is pressed.
Depth - By holding Shift and scrolling the mousewheel, you can change depth of selected sections.



COLOR BUTTONS AND KEYS

In addition to pressing lmb and rmb on the color buttons, you can use keyboard shortcuts. Numeric keys from 5 to 0, plus - and = keys correspond to first eight custom color buttons, you can also use numpad 1-9 keys. To assign color to selection, press the key. To change custom color, press Ctrl + key.

There are few additional color functions available when you press rmb on a color button while holding Ctrl.
Fill - Assigns color to all sections that have the same color as currently selected section.
Sample - Color picker, changes color to that of currently select section, akin to eyedropper tool in graphic programs.
C mode - Toggles through assign and cycle C modes (refer to manual).
Save colors - Saves custom colors into smconfig.ini (excluding team colors), which means that the same colors will be loaded next time you run ShipMaker.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

SECTION HIDING

You can hide sections to increase performance and possibly help with selection in dense areas.

For the hide/unhide options to work, core must not be selected. To hide section under mouse (or selected section, if theres no section under mouse), press H. To temporarily unhide all sections, press U (or use the 'Toggle Hiding' option in Commands menu), press again to hide them again. To unhide all sections, press Shift + U (or use the 'Unhide All' option in Commands menu).

To hide sections in a rectangular area defined by mouse, press Ctrl+H where you want the area start, then press lmb where you want the area to end. Use Ctrl+U for rectangular unhide.

You can also hold Y and press left/right mouse button to hide/unhide sections in an area around mouse. While Y is pressed, a circle will be drawn to show how big the area is. You can change the radius in smconfig.ini, with 'mousehradius' entry.



SCREENSHOTS AND FRAME CAPTURE

By default, SM now saves screenshots in png format to a separate directory 'SMScreenshots'. It also lets you pick a rectangular area to capture instead of capturing the whole window. Press F9 (or use the 'Screenshot' option in Tools menu), then drag a rectangle. You can still capture the whole window by pressing Ctrl + F9.

There is a new option to capture a set number of frames. Press Shift + F9 to use it. As with normal screenshot, you will be able to pick a rectangular area. Unlike the normal screenshot option, rectangle dragging will start immediately, without the need to press lmb (so your mouse cursor should already be where you want it to start prior to pressing Shift + F9), and you can confirm by pressing lmb or abort by pressing rmb. Upon confirmation, you will be presented with a dialog that will let you specify how many frames you want to capture, after which there will be a dialog for frameskip (0 for no skip). Once you press Ok on the second dialog, capturing will begin. You can abort it by pressing F9 while its running. Mind you, capturing frames is slow, especially with large capture areas and/or with big ships. Each frame will be output as .png into 'SMFrames' directory.
Kaelis
Moderator
Posts: 1590
Joined: Fri Dec 14, 2007 4:46 am

Post by Kaelis »

OTHER SHIPMAKER FUNCTIONS NEW IN 0.9:

Recolorable weapons and modules - You can now change the color of weapon and module sprites; you're no longer stuck with white. To do so, press ' (apostrophe) while a weapon or module is selected. You can also use color buttons.

Scale and angle for modules - Modules can now be rotated and scaled. Keys are the same as for weapons.

Paste params - When you right click on a weapon while another weapon is selected, the 'Copy params' option will appear in the menu. If you select it, weapon-specific parameters will be copied from selected weapon to the one under mouse.

Paste effects - When you right click on a section while another section is selected, the 'Copy effects' option will appear in the menu. If you select it, effect-specific parameters will be copied from selected section to the one under mouse.

Reparent children - If you right click on a section while another section is selected, providing that selection is not the parent (even indirect) of section under mouse, an option to reparent children will appear. If you select it, it will reparent all children from selected section to section under mouse.


Commands menu:

Re-Mirror Ship - Remirror deletes the entire lower half of the ship and mirrors everything again.

Clear Mirroring Status - This option will make all current sections behave as if they were never mirrored; when you mirror your ship, they will be mirrored again. Useful if you want to move sections from one side of the ship to another.

Move/Rot Step - By default, objects will be moved/rotated (when pressing shift+arrows or j/l) by steps defined in smconfig.ini by following entires:
'movnormalstep' - moving, default 1 pixel
'rotnormalstep' - rotation, default 5 degrees
If you use this option, you will toggle between the default (normal) move/rot step and fine mov/rot step. Fine move/rot step can also be defined in smconfig.ini, by using following entries
'movfinestep' - moving
'rotfinestep' - rotation

Insert Depth - This option toggles between 'Below parent' insertion depth and 'Bottom' insertion depth. By default, sections will be inserted directly below their parent, but you can force them to be inserted on the bottom (below everything else). You can also use the W key to move sections to below their parent in regards to depth.


Tools menu:

Effect Edit Mode - In effect edit mode, some keyboard keys change so that its easier to edit effects. Refer to keyboard shortcuts section in helpfile to see which exact keys are used.

30 FPS Limit - By default, BSF is set to run in 30 fps. ShipMaker, on the other hand, runs in 60 FPS (interface handling is easier at higher fps). In some cases, this might be problematic, for example with animated doodads (their animation will run twice as fast in ShipMaker). However, you can force 30 FPS limit to see how will frame-based functions look like ingame with this option.

Preview Mode - Lets you preview how will rotation, movement, fading and triggers work like ingame. While in preview mode, FPS will be temporarily set to 30, and you will be unable to modify anything. Press F11 to toggle preview mode.

Hide GUI - You can hide GUI to gain some performance. To unhide it, press F12.


Additional ini settings:

Setting for depthed bridge rendering - There is an entry in smconfig.ini for rendering bridge sprite above core, but below everything else (so just like ingame), called 'renderbridge'. Use 1 for old rendering method (above everything), 0 for ingame-like rendering method.

Setting for default SM background - There is an entry called 'background' in smconfig.ini for setting a default custom background to load at ShipMaker startup. It uses a path relative to Custom Sprites directory (the background image you wish to use must be located there).
Locked