Skip to content

Advanced screenshot taking guide

Tajfun403 edited this page Jul 16, 2023 · 8 revisions

Before the photo mode came, most of screenshot taking capabilities were exposed to modders through console commands. Then, the Legendary Edition has added a working, built-in photo mode to every game of the trilogy.

Although the photo mode is a very user-friendly and simple tool, not all of features which used to be available through console commands have been added to it.

Furthermore, the official photomode has a major limitation of not being able to be triggered in middle of conversations or cinematics, what is not the case in the classic, console-command driven method which could be successfully triggered anywhere.

The purpose of this guide is to highlight several tricks and methods I have been using for the past years in creating cinematic screenshots for my own mods using only console commands. Some of them are not possible to be recreated solely in the official photomode, and as such you might find this guide an interesting alternative or addition to your current workflow.

Most of the console commands mentioned in this guide can be freely mixed with the game's photo mode. For example, you can enter the photo mode, then use playersonly to un-stop the time, and then slomo .5 to halve its speed.

This guide has been written mostly basing on ME2/LE2 experience. Most console commands should work in every game from the trilogy, but it's not guaranteed.

Setting up the free camera

The core and most important aspect of creating screenshots manually is entering the free camera mode (also called flying camera mode) - in other words, the camera is no longer following Shepard, but is rather controlled fully separately.

Free camera (also often called flying camera, flycam for short) will use the default Shepard's movement keys, that is WASD for classic QWERTY keyboards, ZQSD for French AZERTY, et cetera. The flycam doesn't, however, change the game mode.

The game is separated into several game modes, for example - combat mode, conversation mode or cinematic mode. Every mode has its own set of keybinds. This is why pressing space during combat triggers use/run/evade, but pressing it during a conversation skips the current line instead.

As you can imagine by this point, by default only the combat game mode has movement key bindings set up - and since the flying camera inherits the current mode's keybinds, this means the movement scheme needs to be added to the conversation mode manually if we wish to use the flycam during conversations. For this, we need to edit the Coalesced file.

This step is optional - you only need to follow it if you wish to use the free camera inside conversations. Additionally, I focus on describing the method of directly editing the game's Coalesced file (which should be easier to follow). If you wish to create a fully fledged mod folder for your modifications instead, munchyfly has written alternative guides for that for every game from the trilogy (including LE1 which is a little bit different from what I cover here).

In order to edit the Coalesced file directly, you will need to drag-and-drop Mass Effect Legendary Edition\Game\ME2\BioGame\CookedPCConsole\Coalesced_INT.bin file onto ME3Tweaks Mod Manager's window. This will create a new subfolder which contains the extracted inis.

Inside the BioInput.ini file, [SFXGame.SFXGameModeDefault] is the section which holds keybinds for normal walking mode. You can also see [SFXGame.SFXGameModeConversation] which has keybinds for conversation mode, as well as [SFXGame.SFXGameModeBase] which is the "parent" of all of them - keybinds defined in the SFXGameModeBase section will keep working in every game mode in the game. It is up to you whether you want to add the movement keybinds to every game mode one-by-one, or just slap them into the Base mode and have them unlocked everywhere. Personally, I opted for the latter option, and there are no real side effects to that - when flycam is not enabled, your movement input is disabled either way. Those are the lines you need to add:

Bindings=( Name="A", Command="PC_StrafeLeft" )
Bindings=( Name="D", Command="PC_StrafeRight" )
Bindings=( Name="W", Command="PC_MoveForward" )
Bindings=( Name="S", Command="PC_MoveBackward" )
Bindings=( Name="MouseX", Command="PC_LookX" )
Bindings=( Name="MouseY", Command="PC_LookY" )

Personally, I have also bound some of the most used console commands (which are described below) to function keys:

Bindings=( Name="F1", Command="playersonly" )
Bindings=( Name="F2", Command="toggleflycam" )
Bindings=( Name="F3", Command="show scaleform" )

You can then compile the bin file back by dragging the mele.extractedbin file from inside the folder back onto M3's window. Your edited BioInput.ini file should look somewhat like this:

edited BioInput.ini file

The process would be almost identical in case of ME3 - the only difference being that its Coalesced file is decompiled into xmls rather than inis.

Controlling the free camera

Please note - Mass Effect 3 uses a separate free camera mode when the camera is toggled. Although it is generally more comfortable to use, toggleslowflycam and toggleflycamcontrol seem not to be working in it anymore. Additionally, Mass Effect 1, although it uses the old flycam system, seems to have been stripped out of those two aforementioned console commands fully. All in all, those two commands unfortunately seem to only be usable in ME2.

toggleflycam

The free camera can be toggled with the console command toggleflycam - that's all, easy as that. If you followed the ini tweaks mentioned in the previous section, you will be able to freely use WASD keys and mouse to navigate the flycam in any game mode.

toggleslowflycam

This is an alternative fly cam mode, whose name is also kind of misleading. As you can notice very quickly when using the flycam, its speed is const. And in reality, the flycam's default speed is both too fast when you want to capture an accurate shot of an actor from upclose, and too slow when you want to take a glance at Illium towers which are 2 kilometers away.

Fortunately, there's a solution: toggleslowflycam is an alternative flycam mode, where its speed is being multiplied by the slomo speed. There's more about the slomo in a section below. Basically, slomo paired with toggleslowflycam allows you to move the camera with adjusted speed, thus allowing for taking of some very precise shots.

toggleflycamcontrol

The final console command, one that is rarely useful and even more rarely known, allows you to swap control back to Shepard while keeping the last flycam's position, instead of making it go back to Shepard. Basically, the camera stops moving, but WASD keys now control Shepard. Besides the testing purposes, I have used this console command exactly once - when creating the header image for Combat Evade Maneuvers. I had wanted to merge two images when looking at the same angle, both depicting Shepard in middle of doing an evade. Keeping the same angle wasn't the only issue, tho - I also needed at least a few tries at each evade (to grab a good screenshot). The classic way would be to exit flycam, trigger the evade from Shepard, enter flycam again, position it, make a screenshot, repeat - that woulda been a clear nightmare. In this case, toggleflycamcontrol was a clear salvation to me: I just quickly swapped the control to Shepard to trigger her evade, while keeping my well-positioned flycam at place:

Showing the usage of Toggleflycamcontrol

By default, only the WASD directional keys keep having control over Shepard's movement in the swapped control mode. Mouse input is fully disabled - instead of leading her weapon at the mouse location like usually, Shepard will just maintain a blank stare to the void ahead of herself. This property of this mode can be disabled by a simple edit from Legendary Explorer. Open SFXGame.pcc file in the Package Editor tool, then navigate to BioPlayerController.PlayerWalking.PlayerMoveCombatOrExplore() function inside the file - by default export 13632 in LE; 12736 in OT (you can use the goto button). This script, in several places, checks whether the current camera mode is the free cam mode (with a bool passed as an argument). To treat free cam mode equally compared to the rest, just set the bIsFreeCam bool to false at the start of the function (but after local variable declarations - it's just a UnrealScript thing).

Toggleflycamcontrol movement mode edit

Then, compile the script with the Compile button and save the file. This will cause Shep to react to your mouse movement once again, including correctly looking up/down.

fov x

The fov command allows you to adjust the camera's vertical field of view (in degrees). Some of the vanilla values are:

  • 70 for normal combat walking
  • 90 for sprint/take cover
  • 40 for assault rifle zoom
  • 10 for sniper rifle zoom

You can use the fov command to "zoom in" the camera, by lesseing the amount of world it needs to fit in its view. The lower the fov, the bigger the zoom. You can use fov 0 to reset the fov to its default values.

Stopping the time

There are two console commands which allow one to manage the time flow in the game:

playersonly

playersonly allows you to toggle advancement of the game's physics and gameplay. This is exactly the feature widely used by the game in, for example, the left-shift command menu, escape-key menu, or when you alt-tab out of the game causing it to pause.

playersonly prevents the game's gameplay and physics from advancing, but it does not interrupt some particle effects - like fire, biotics, and similar. If you wish to slow down those (unfortunately, not stop fully), you need to use the slomo command.

slomo x

slomo is a console command that allows you to set a multiplier on the total game's speed. It affects everything - from player movement, through menu animations, to particle effects movement.

It is a total multiplier in the simplest meaning - slomo 2 will double the game's speed, while slomo .5 will halve it (in most programming languages, the leading zero can be omitted when writing decimals, therefore both slomo 0.5 and slomo .5 are valid).

Slomo does, however, have both a minimum and a maximum amount of speed change it can give:

  • Minimum speed => no more than 2000 real frames rendered per a in-game-universe second.
  • Maximum speed => no less than 2.5 real frames rendered per a in-game-universe second.

Basically, the game will not allow itself to render less or more real frames within the time a single second passes in the game's universe. If your game is usually running on 60 fps, you won't be able to speed the game more than 60 / 2.5 => 24 times, or slow it down more than 2000 / 60 => 33 times.

This is still a plenty of range to move inside. If you enter a slomo value bigger than this in the console (for example slomo 100), it will simply be clamped to the closest allowed value, but the game won't explode. Use slomo 1 to come back to the normal game time.

Hiding the UI

show scaleform

Vast majority of the UI can be toggled with the show scaleform console command. The only part of the UI which is not included in the scaleform switch are the selectors, and those can be toggled with show lensflares command.

show lensflares

This will toggle the display of selectors (i.e. those floating rectangles that appear on actors which can be interacted with / talked to).

show ui

Hides the UI managed by vanilla Unreal's UI framework. This command is mostly useless, because BioWare uses a third-party Scaleform engine for its UI, which can be toggled with its own command.

Toggling visibility of lighting, postprocess, and other graphics effects

Several console commands can be used to change the lighting and postprocess of the game.

show postprocess

This console command toggles the running of post process functions - in other words, filters that run on top of the rendered image to make it look fancier. Sometimes, they make the image too dark, so you might want to temporarily disable the vanilla postprocess and apply some color filters yourself afterwards.

show postprocess

viewmode unlit

viewmode unlit allows you to fully disable Unreal's lighting system. In other words, no light will be simulated, and instead the entire world will be rendered in pure colors.

This may be useful sometimes, because some areas could cause your character to be basically black due to a lack of lighting. With lighting disabled, everything is rendered palely, and you can either add shadows yourself later on, or merge some parts of the un-lit image with a lit image.

Here's an example of a screenshot for Modern Weapon Pack's N7 Crusader weapon I had made on Aite. I made two screenshots - a lit one (for the fancy background), and an unlit one to see my character. Then I merged them in Photoshop for the final view. Usually, I don't replace the entire character with the unlit image, but instead set the overlay opacity to something between 20 and 60 percent. In this case, the image also needed some slight color correction, to account for the yellow/orangish tint coming from the sun.

viewmode lit and unlit composite

Normal lighting can be brought back with viewmode lit.

show fog

You can also toggle fog on levels which use it.

show staticmeshes

show dynamicshadows

dynamicshadows are the shadows cast by dynamic objects - mostly pawns like Shepard. This is in contrary to the level itself, which uses prebaked shadows in order to save on runtime performance.

show staticmeshes

show lensflares

Besides disabling the selectors, the show lensflares console command also toggles visibility of real lens flares.

show staticmeshes

show staticmeshes

Static meshes (i.e. meshes without a skeleton) are mostly the meshes which build the game's levels - floors, walls, stuff like that. Disabling their rendering is, though, probably not particularly something you would need often. Because static meshes build the world, the game will have nothing to render with them disabled, resulting in, well, interesting views. (in this example, all you can see is the sun, which in turn is just a glorified lens flare).

show staticmeshes

show skeletalmeshes

Skeletal meshes (i.e. ones that have skeletons - sets of bones) are pretty much everything that moves - Shepard, her squadmates, enemies, weapons (because they collapse). Visibility of those can be triggered with the show skeletalmeshes command.

show skeletalmeshes

show particles

Particle effects (shortly called particles) cover a wide variety of displayed objects, but they are most commonly used for a great variety of visual effects - starting by the obvious ones, like fire or biotics, through environmental effects like snow or rain, stopping on even weapon's ammo holograms. Those can be toggled with show particles console command.

show particles

Taking high-res screenshots

One of my favorite features provided by console commands that never made it to the official photo mode is the ability to render screenshots in arbitrarily big resolutions. 4k, 8k, 16k - anything you want, even from an average 1080p screen.

The command which allows it is called tiledshot

tiledshot x y

Tiledshot takes several separate screenshots of the game window - each zoomed in to a portion of the screen so that it is rendered in a high resolution. Then, the separate screenshots are automatically merged together into a big mosaic automatically.

Modern games (original Mass Effect 3 and all LE games) hide this aspect of their way of working, but it can still be viewed in classic Mass Effect 2:

Tiling of the tiledshot command in action

tiledshot console command takes two integer arguments:

  • The first one is the scale of the final screenshot - which is a simple multiplier of the resolution your game runs at currently. So tiledshot 3 when running in 1280x720 resolution will result in a 3840x2160 screenshot size.
  • The second arg is the overlap parameter. When the screenshot is being tiled, the postprocess filter, mainly its vignette feature, keeps affecting every taken "tile". Thus, after the screenshot is taken, you can see very visible branding caused by vignette leftovers:

Tiledshot tiling visible on a created image

In order to prevent this ugly checkboard, the overlap parameter needs to be set to value big enough so that the vignette's area is all overlapped. For 720p resolution, I've found 250 to be a good solution - i.e. 35% of the screen height. Keeping the same ratio, 1080p would want 380 overlapping pixels, 1440p -> 500 pixels, and 2160p -> 760.

Keep in mind that this should be a percentage of your game's native resolution, not the targeted, upscaled one.

On top of that, vignette is not the only element of the game which would end up being repeated all over the place - interface is, well. Therefore, you should always make tiledshots with the game's UI hidden with show scaleform console command before.

All screenshots made this way are saved in Documents\BioWare\Mass Effect 2\BIOGame\Screenshots in case of OT games, or Mass Effect Legendary Edition\Game\ME2\BioGame\ScreenShots in case of LE games.

They are all saved in bmp format, which might be problematic in case of a big volume of screenshots - a single 4k screenshot made this way weights 24 883 254 bytes (23,7MB). An 8k ss would already go up to 95MB; 16k -> 380MB, et cetera. Therefore, you might want to look out at your drive space.

Controlling the battlefield

Combat console commands

Sometimes you may want to take screenshots in middle of a combat, and as you might have already experienced, posing in middle of bullets ain't funny. There are several console commands you can use to make the combat photo-friendlier:

  • enableallai <bool> can enable or disable AI of every pawn in the game. With AI disabled, they simply stop moving. You can either use true/false values, or 1/0 where 1 means true, and 0 means false
  • god => toggles invincibility
  • min1health <bool> => makes Shepard and her squadmates no longer take damage when they reach 1 hp. Health and shields will still regenerate normally when no damage is taken for some time
  • killenemies => kill all enemies in the area
  • killtarget => kills the enemy you are aiming at
  • damage target x => deal some damage to the enemy you are aiming it
  • suicide => commit seppuku
  • givesupergun => grants your current gun some pretty big damage
  • initammo 999 => in case you ran out of ammo
  • enablepowercooldown <bool> => toggles power cooldowns. You should usually only use this when enemy AI is disabled, because otherwise enemies can stunlock you.
  • enabledamage <bool> => toggles the ability to receive damage for every pawn in the game. You won't be able to hurt enemies, and nor will they will be able to hurt you.

Movement console commands

  • teleport => teleport yourself to the crosshair location. Can be useful to get on the map's borders. Always aim on ground when using this console command! Otherwise you might teleport yourself outside the map. What I usually do is first toggleflycam, place the camera right above the spot I want to teleport to, then aim at the ground and do the teleport.
    • Also note - not every thing is seemingly "floor" actually has any collision! A floor you can see can often be merely a decoration, and not have any physics set up for optimization purposes - especially outside the inteded area of the map.
    • You can use toggledebugcamera to check collision - it is an extremely, extremely slow flycam, but it shows if the place you are aiming at actually has collision in there.
  • fly => allows you to move up/down with arrow keys, but it still respect collision. Most of the map borders are filled with Collision Volumes (to prevent you from exiting it), so this command is realistically useless.
  • ghost => same as before, but it ignores collision. Can be useful if you want to move to some places outside the map. It disables your camera movement, though.
  • walk => disables the two aforementioned modes and comes back to normal walking mode.
  • setgravity x => change the gravity when you fall out of the map. In centimeters per second squared. Positive numbers will make you will fly upwards, negative - fall downwards. The default is -980.
Clone this wiki locally