Skip to content

A cinematic toolbox for Outer Wilds & Blender

Notifications You must be signed in to change notification settings

Picalines/outer-scout-blender

Repository files navigation

Outer Scout Blender

A frontend for the Outer Scout mod. This addon allows you to make cinematic shots in Outer Wilds and import them into Blender!

the Outer Scout thumbnail

Basic usage example

1. Open Blender and Outer Wilds at the same time

Note

The mod makes the game work in the background without a pause. This is necessary so that the two programs can interact at any time

2. Create Outer Scout scene

Get to the desired location in Outer Wilds and click "Create Scene" in the scene properties tab

the create button desired location

3. Import the planet model

See more in the asset extraction guide. Planet models are only needed for convenient positioning of your objects - they shouldn't be on the final render of the scene

import button imported body

4. Make a camera

Put the camera in Blender and animate it. In addition to position and rotation, you can animate its focal length, lens shift, clip start/end and sensor size. You can try adding camera shake using the camera shakify addon

camera configuration camera animation

Tip

A file path that starts with // is relative to your .blend file. No need to open the file dialog!

5. Record the footage

Click the record button in the scene properties tab. After recording, all configured cameras will receive a background with the recorded video

the record button imported background

camera.1.mp4

6. Setup compositor

The main idea of the mod and addon is to render blender models on top of the game's footages. To do this, click on the button and add the generated node group to the compositor tree

After that, you can do anything with your scene - you can even add effects on the footages of the game using the compositing nodes, or pull them into some editing program. You can make complex scenes with multiple cameras, and the addon will generate the necessary nodes for you

generate nodes button compositing tab

0001-0120.mp4

Requirements

Installation

  • Go to the Releases tab and download the outer_scout.zip file of the latest version
  • Open Blender, Edit > Preferences > Get Extensions
  • Click on the arrow in the upper right corner, Install from Disk...
  • Select the archive you downloaded earlier

See the asset extraction section to learn more about the addon settings

Additional Features

Game Object Replay

Use this feature to add interaction between game objects and your blender models:

  1. Create an Empty in the Blender, and give it the name of the Unity object from Outer Wilds in the Outer Scout panel. The easiest way to find out the name of an object is using Unity Explorer
  2. Set the Unity Object Mode to Existing. In this mode, the mod will not create a new empty UnityEngine.GameObject, but search for an existing one
  3. Specify the path to the file where the mod will record information about this object on each frame

After that, the Transform Mode property will appear, which tells the mod what to do after the next recording starts:

  • In Record mode, the mod will capture the transformation parameters of the object on each frame of the animation, and then import them as key frames of the blender
  • In Replay mode, the mod, on the contrary, imports the key frames of the blender into the game and assigns them to the object on each frame of the animation

Yes, it's a bit complicated, but the final algorithm is like this:

  • Create an object in Record mode and hit the "record" button in the scene properties tab
  • The mod automatically sets all Record objects to Replay
  • Now you can animate your blender models based on the position of something from the game! Dreams come true!

game object config imported keyframes

render.mp4

HDRI recording

You can select the Equirectangular type in the camera settings. In this case, the mod will record something like a 360 video from the point of that camera, which is suitable for creating HDRI in a Blender

The "Generate HDRI nodes" button generates the desired node group to be added to the world shader. There can only be one HDRI camera on one scene

equirectangular camera suzanne with hdri

Depth recording

The mod can record several textures from one camera at once. In this way, you can get both a color channel and a depth channel at the same time. The latter is used in the generated compositing nodes to put the blender object "behind" the game object

Warning

This feature works well only when your object is blocked by something from the foreground. Most likely, I incorrectly implemented the conversion of the Unity depth to Blender

The result depends on the clip planes. The greater the distance, the worse

depth config cropped render

Miscellaneous

Sidebar > View > Outer Scout

  • Toggle the planet model visibility
  • Warp the player to a position in the game corresponding to the position of the 3D cursor
  • Reposition the scene using the 3D cursor

Planet sectors

The planets in the game are divided into separate sectors by points of interest to optimize their loading time. When creating a scene, you can stand in the right place in the game, and by default the addon imports only those sectors in which the player is located

This saves performance, especially on large planets with many separate enclosed rooms - inaccessible locations will be skipped. If desired, you still have the option to import the entire planet, or select a planet not according to the player's position (see the asset extraction guide for details)

Planet model animation

You can try to animate the rotation of the planet object, rather than the camera itself - then you will be able to make an orbit flight! Just don't read the code of this thing

Extracting game assets

In order to import planet models into Blender you need to extract mesh assets from the game

Tip

You can watch the video version on YouTube! Thanks @ShVanes for making it!

drawing

Here're the steps:

  1. Open the AssetStudio

  2. Click File > Load Folder

  3. Select your Outer Wilds's data folder (OuterWilds_Data). For Steam users: Properties... > Installed Files > Browse...

  4. Options > Export options, set the Group exported assets by option to container path

Other export options (optional) other export options

Important

There are two folders with planet assets:

  1. bodies: static low detailed .fbx meshes. They contain basic structure of the planet, but they're not useful for the human artists
  2. extracted: dynamic for high detailed .obj meshes. They're the ones you want to see in your viewport

I highly recommend you to name them that way, so it'll be easier to troubleshoot your folders

asset folders

  1. Filter type > Mesh

  2. Export > Filtered assets to the extracted assets folder

  3. Select the planets of interest, and then Model > Export selected objects (split) to the bodies folder

    • You should put all planets in one bodies folder - the addon will only search for .fbx and .blend files in there by the name. You don't need to change these paths more than once after installation
    • Each planet subtree must have object with _Body postfix within. You can't select the SolarSystemRoot, because each planet should be in a separate .fbx file
    • AssetStudio will emit the texture .png files along side with .fbx, but they're not required for this addon.
export planets
  1. Close the AssetStudio, open Outer Wilds and Blender at the same time

  2. In Outer Wilds, go to the planet you want to import. The addon will later "talk" to your game to find out about .obj's it needs to import. You can pause the game, it doesn't matter

  3. In Blender, open the Properties > Scene > Outer Scout panel and press the Import button. Keep the default options, it doesn't matter at the moment

  4. If it's the first time you import the X planet, the addon will launch another Blender instance that'll generate a bodies/X.blend file for you

    • Look for the console window, in which the addon'll print the import progress
    • Your main Blender window will freeze with the "not responding" message - don't close it, it's waiting until the generation is done
  5. If everything went okay, the X planet model will appear in your Blender scene. That means you now have the bodies/X.blend file, and you don't need to open AssetStudio or Outer Wilds to import the X planet anymore. Congratulations!