HOW-TO: Create a scene

2024-05-21_13-15_1.png

In this guide you can learn how to create a scene and dialogues.

Follow the steps below, starting with the preparations to building a scene and then a deep-dive into creating dialogues.


 

Getting ready to build a scene

 

To create something inside a scene, you first need to create the scene itself!

First, find a world where you want your scene to appear and open it (https://cdprojektred.atlassian.net/wiki/spaces/W3REDkit/pages/6324517).

After that, you need to go to Asset Browser (CTRL+A), then any folder you want to work in, right-click on the folder’s background and select Create > Scene Script. Name your scene script file and press OK.

 

2024-05-21_15-40.png

 

 

 

 

Once you open the new Scene Script file you should see the Scene Editor. Here’s what it consist of:

 

At the top half of the screen you have:

  • Screenplay panel: you can type the script for the scene here, add actions, and props

  • Preview window: to see your scene while building it

  • Starting conditions is not a needed tab

  • Definitions: always set it up, very important, needed to deliver the scene

At the bottom of the screen, you can switch between:

  • Graph: the logic of the scene, nodes

  • Timeline: orange nodes are sections, they have timelines, which are the content of the node’s section

  • dialogueset settings: older version of sceneset, template that allows us to create the scene faster

 

 

 

Remember to save your work often as the undo option does not work.

The Editor does not save your work automatically either when you close it either. You can save by via View –› Save custom layout,

 


 

Creating dialogues

 

To create dialogues, we first need to define who and how will be in the scene. For that, you need to add the actors you want to see in the scene.

If you wish to use already created actors, you can find them in the following paths:

  • [RECOMMENDED] quests/ folder - (quests/main_npcs or quests/secondary_npcs or the individual quests): custom NPCs that are made to act a role in a specific quest. These characters will most likely have a voicetag already defined.

  • [NOT RECOMMENDED] characters/ folder - the base characters that are only setup with the mandatory features. They might be missing some gameplay logic or quest functionality. These characters will most likely have no voicetag defined.

Follow these steps:

  1. Go to the definitions tab

  2. Right-click, “Add element” in the first row

     

  3. Choose an actor: 

    1. Add the actor’s template: 

      1. In the Asset Browser, Go to the folder which contains the template (depot/quests/main_npcs or secondary_npcs/<choose>)

         

      2. While the entity is selected, click on the green arrow in the Actor template column

         

      3. Entity is hooked to the scene

    2. Their voicetag ID should appear in the first column

       

       

Please also make sure to check the voicetags in the reference actor’s entity template! You have to assign at least one appearance of an actor for the referenced voicetag!


While opening up the entity template, take a look at the Voicetags tab on the bottom half of the screen:

You can see that this entity’s setup is done correctly because the reference voicetag ID “INKEEPER ELZA“ is assigned to one of the actor’s appearances called “__Q001_Elza”.

You can assign multiple records in this table if you want, but only one is necessary for our example. To see what are the available appearances for the given entity, you can navigate to the Appearances tab:

  1. Repeat the process until all actors are added.


The next thing you need to add into your scene, is the dialogueset.

There are 2 ways for you to do that: you can either create a blank dialogueset and create slots for each actor manually, or you can import dialog presets, which are templates designed to help you create scenes faster.

You can find these presets in Depot\gameplay\dialoguesets:

They can be opened to see what they’re like before selecting them. In these previews, the dark grey lines are cameras that can be used in production, and the blue spheres on the “ground” are where characters can be placed.

Having decided on one, you need to go back to the scene editor, then go to settings, and click the “import dialogueset” option (which is at the bottom of the panel, the second button from the right). It cannot be dragged and dropped, so you have to import it this way.

You can give it a name or simply use the asset file’s name by default:

You can set high-property sets (inside the dialogueset tab, middle column), like snap to terrain, or find safe placement (scene will move according to the world, to avoid collisions), but these are optional.

To place actors into the dialogueset, you need to go to the dialogueset tab’s last column, the List of actors. Having imported a preset, there are empty slots for each actor, and it’s your job to populate those.

To do exactly that, select your actor in “actorName” from the dropdown list to be in the scene: these are added from the definitions tab, the actors we added there. (After dialogueset is complete, it’s recommended to save.)

Now, you have the places where your characters will appear, let’s make them appear! You can do this by creating the flow of the scene:

  1. Go to the graph panel

  2. When you click each node, you can see the properties of it on the right, in the property window

  3. To connect the scene to the node, select the dialog you made in the property window, “dialoguesetChangeTo” and select the name you gave to the dialogueset

  4. Name the section node with something that clearly represents it:

  5. Make sure to connect the sockets of the nodes to make the flow go through from left to right (from input all the way to the output), where the signal is represented by the connection of the nodes.

     

  6. Restart or just Save the Scene Editor. Now you should see your actors in the scene in the Preview tab.

     

  7. Notice that in order to see both of the actors in a clear plan, the editor preview mode was selected which enables the user to move the “camera” freely. However, this camera view is not going to be used in the scene just yet! It only allows us to examine our scene in any angle we want while we’re going to be working on it.



Choices usually determine how many sections there will be: section 1–›choice–›section 2 , but it can be however you’d like it to be - choice sections also have timelines in this editor, they’re usually looped. A very simple, no-choice graph will look like this: Input - section - output. It’s recommended to name each section in the properties panel to see what’s going on in them.

You have your actors, the flow of the scene too. What’s needed for us to be able to make this come to life, is to add the dialog itself. Be sure to work in english locale, it will make your job easier (you can set this in the main world editor, there’s a dropdown for all the available locales).

Go to Scene Editor’s Screenplay panel, To add a line to the screenplay Hit Enter this will append it with the following:

The text of the line that will be spoken (dialog text). Next to your line, you’ll see some character’s name (SPEAKER) who will speak the line, and next to that (Speaking to) the name of the actor who will be the current listener. The first character says your line to the second character, so adjust these accordingly (by writing/rewriting the names). The Editor will help you by automatically offering the currently existing voicetags defined in the Definitions tab.


After you’re satisfied with that, hit enter to add another line. Continue until you have your last line. A shorter conversation should look something like this:

To apply the dialog so that it can be visible in the timeline, go to the Section tab around the top-right corner of the screen…

… and click on the “Approve local VO” button.

We have our characters in a scene, and they’re speaking to each other now. Amazing! Just to be sure, you should save your progress and restart the scene editor. The lines added calculate a duration time for them to be played, and they’re added to Timeline proportionally. All the animations, effects, Look at events will be placed in the exact percentage of each section (since this scene only has one section where one character says Hello, we can only see one rectangle with one timestamp.) So that when it plays with a different language, the timings will be changing to the new section timings. Since we haven’t applied audio and lipsync to the section yet the timestamp on the section is only an estimation by the editor, and will be updated once an audio will be applied to the section. This process is explained here: https://cdprojektred.atlassian.net/wiki/spaces/W3REDkit/pages/6326845.


Now let us work with the timeline. Each row in the timeline represents placing some type of component in the scene. e.g. A row for cameras, another one for animations, and one for effects, etc. Each actor and prop will have the same applied components to it’s own set of rows, so that for instance you can set the animation for the actor who will perform the animation. A scene usually consist of cameras that are showing the current actor in the scene who’s speaking or doing some other actions. So go ahead and find the _Camera row in the timeline.

To add a new camera to the timeline, you can either use the already defined camera position templates provided by the imported dialogueset:

You can preview the camera templates by switching to Enable free camera mode:

And selecting different camera settings from the Custom cameras selection:

The other option is to freely move the camera from the viewport in the same camera mode. Pressing W, A, S, D and E, Q keys can move the camera inside of it.
Once you have the angle you want to use for the current timeframe of the scene, right-click on the _Camera row section and select Add camera > from view. After that a icon should appear at the exact timeframe:

You can preview how the camera is used by the scene by switching to the Enable preview mode and play, pause, stop, or step sections of the scene.

You can use the light scroller to change the direction of the light in the preview. This light direction will not be visible in the actual scene, it’s only applied in this editor.

Animations can be added to the animations row per actor. e.g. if we wanted to animate Elza in the scene, we need to add the animation to her section.

Make sure that you double click on the animations title node. You could just add a new animation node the same way we added a camera into the row section, but that way you have to manually setup a bunch of properties.

This way a selection dialog with all the available animations for the actor will be presented and be available to choose.

Click on Gesture > bow 1. The animation with the required settings will be applied to the actor from the point where the current frame scroller is located.

Also you could make the actors look at each other, for that you can use the additives row. right click on the row, choose Add actor event > look at (point cloud). You should be able to see the Lookat event placed on the timeline.

You can set the eye target to a static point:


Also you can specify the eye target on other actors like this:

 

______________________________________
The Witcher 3: Wild Hunt Complete Edition © 2024 CD PROJEKT S.A. Published by CD PROJEKT S.A. Developed by CD PROJEKT RED. CD PROJEKT®, The Witcher®, REDengine® are registered trademarks of CD PROJEKT Capital Group. All rights reserved. The Witcher game is set in the universe created by Andrzej Sapkowski in his series of books. All rights reserved.