Media
A media entry wraps a single file the host should play: a video, an audio file, a still image, or a Unity-native prefab. The entry carries timing data the writer authors (captions for the dialogue overlay, background-clip markers and story beats the recap UI reads), and the host loads the underlying file when a Play Sequence event fires. One place for the file and everything timed against it, so captions and recap annotations travel with the clip.
What’s not here: field-by-field reference for every media field (Media reference); firing an entry from an event (Play sequence event reference); layered scoped audio, which is a different shape (Audio cues).
Anatomy of a media entry
- Media: Title, ID, Description, Type, File, Folder, Extension, and Duration. The file binding lives here.
- Captions: timed lines spoken over the clip, one per row, each tied to a Character.
- Background Clips: time ranges the recap UI can skip or label as b-roll.
- Story Beats: narrative highlights the recap UI can surface by importance.
- Preview: plays the file in the inspector so a writer can verify timing without leaving the panel.
Configure media folders
Before you bind media entries to files, tell the editor where your asset files live. Open Project Settings from the menu and pick the Media tab. Click Add Media Folder to pick a folder (a native folder picker opens), and drag rows to reorder: the editor searches folders top to bottom, so if two folders happen to hold a file at the same relative path, the earlier one wins. The project’s own assets folder is always searched last and cannot be removed.
Media folders are personal, not shared. They are stored in a file the editor keeps out of source control, so each writer or media contributor points the list at wherever their asset library actually lives, whether that is an external drive, a shared network folder, or a different path on every machine, without fighting over it in git. Each row shows how many of the project’s media files it resolves, and a folder the editor cannot currently find (a disconnected drive, a moved folder) shows an unavailable badge instead of a count.
Removing a folder does not touch a single file on disk, it only stops the editor searching there. If you remove one by accident, an Undo link appears underneath the list and puts it back in the same position.
Add a media entry
- Drop the file into any folder listed in Media folders, or into the project’s
assetsfolder if you have not set up an external folder yet. - In the editor, open the Media tab in the Data View. Click Review Media to pick from the files the editor found across your media folders and create an entry pre-bound to the file, or click Add Media to create a blank entry that you bind to a file yourself in the inspector.
- In the entry’s inspector, set Title (the visible name) and pick Type. Type drives how the preview renders. If you used Add Media, pick the File now from the combobox: it lists every matching file the editor found across your media folders, so a typo can’t ship. Leave Folder empty if the file sits at the top level of whichever media folder holds it, or set it to the subfolder path (forward slashes, for example
video/cutscenes) if the file is nested. For video and audio, the Detect button next to Duration reads the length from the file. - Save. The entry is now selectable from any Play Sequence event’s Sequence field.
You can also drag files straight onto the Media tab. A file that already lives inside one of your configured media folders is referenced where it sits. A file dragged in from anywhere else is copied into the project’s assets folder so the project stays self-contained. If the drop matches a relative path that exists in more than one of your media folders, the earlier folder wins and the editor tells you which one.
The four Type values drive how the host loads the file. Video is used for cutscenes and cinematics. Audio is used for music, ambience, and voice-over. Image is used for stills, portraits, and overlays. Unity is a Unity-native prefab or addressable for projects shipping inside Unity: the host resolves the reference through its own pipeline instead of reading a file from a media folder.
Audio entries
For audio entries, the inspector swaps the video preview for a compact audio player and adds a Use as background checkbox to the Media block. Ticking it marks the entry as a candidate the game can pull for menu music and other looping background beds; the flag doesn’t change normal Play Sequence playback. Captions, background clips, and story beats are still available on audio entries but rarely populated in practice; the recap surface is usually a video concern. For multi-segment scoped audio (music that loops through intro / loop / outro or ends on a specific event), reach for an audio cue instead of a single-file audio media entry. For location-scoped ambient audio, see Locations; the ambience surface bundles audio cues rather than media entries.
Review media
The editor watches the files behind your media entries and raises a banner at the top of the window when something needs attention: files it can no longer find, files whose contents changed on disk, or files sitting on a disconnected drive. The banner counts what it found (“2 media files not found · 1 changed”), and Review & remap opens the Review Media dialog. The same dialog opens from Review Media on the Media tab, where it also lists files found in your media folders that no entry references yet.
Missing files
If a media entry’s file cannot be found in any configured media folder or in assets, for example after a file gets renamed or a shared drive is not mounted, the banner reads “N media files not found”. Click Review & remap to open the dialog: it lists every file the editor found without a matching entry, alongside a Still unresolved section for entries that have no match yet.
For each found file, pick an action from its dropdown: Remap to an existing entry, Import as new, or Ignore. Choosing Remap opens a picker under the row, already filled in with the closest-matching entry, so a plain rename needs no further clicks. Open the picker to choose a different entry. It lists every entry of a compatible type that has no working file: the ones whose file is missing, and the ones that never had a file assigned, so a found file can fill an entry you created ahead of the asset. Closest matches come first, and typing reorders that list rather than shortening it, so an entry stays selectable even when its title looks nothing like the file name. Click Continue to apply your choices. Anything still unresolved after that stays listed until you fix it by hand or supply a matching file.
Changed files
The editor also notices when a file behind an entry is not the file it saw last time: a re-export saved over the same location, or the same file now resolving from a different media folder (the row says where it now resolves from). The banner counts these as changed, and the dialog lists them in a Changed files section.
Each changed row carries a checkbox, the entry’s title, a line showing what changed (the old and new timestamps for a re-export; hover the row for the full stamps and file sizes), and a duration reading. The duration reading compares the entry’s stored Duration against what the file actually plays now: 12.5s → 14.0s when they differ, 12.5s (unchanged) when they match, N/A → 14.0s when the entry never had a stored duration, reading… while the editor is still measuring, and duration unknown when the file cannot be measured. Rows whose duration really did change arrive pre-checked. Click Update duration to write the new duration to every checked entry immediately; each updated row leaves the section on the spot.
Closing the dialog counts as having reviewed the list: the flags clear and the banner goes away without any other action. If you close while a row with a real duration change is still un-updated, the editor asks first; Close anyway confirms. The prompt appears whichever way you close: the Cancel button, Esc, or a click outside the dialog.
Two things never appear here. Image entries are never flagged as changed, since a still has no timing to go stale. And the flag itself is only about the file: if a new duration leaves a caption, background clip, or story beat running past the end of the clip, the usual validators raise that separately after you update.
Disconnected volumes
A file on a media folder the editor cannot currently reach (an unplugged drive, an unmounted network share) is neither missing nor changed. The banner mentions these calmly and offers Media folders, which opens the folder list in Project Settings. In the dialog, these entries sit in a read-only section grouped by volume. If a same-named file in another folder is standing in for one of them in previews, the row says so. Entries on a disconnected volume are not offered as remap targets, so a temporary disconnect cannot be “fixed” into pointing somewhere else. Reconnect the drive and the section empties by itself; nothing needs reviewing.
New files
Files the editor found in your media folders that no entry references yet are listed in the dialog, and the ones that were not there the last time you looked sort first, marked New. Opening and closing the dialog marks the current list as seen, so the next visit badges only genuinely new arrivals. The first time you ever open the dialog nothing carries a badge, since there is no earlier visit to compare against.
Dismissing the banner
Dismiss hides the banner for now. It returns when the situation shifts, not only when the numbers grow: fixing all the missing files while a changed file remains, or a changed file appearing where only missing files were before, brings it back. Fix everything and it stays gone.
Author captions
Captions are the writer’s main reason to touch a video or image entry. Each caption carries a time range, a speaking character, and the displayed line, plus the usual translator notes attached to any localizable field.
- On a caption row, set Start (seconds from the start of the clip). Leave End empty to hold the caption until the next caption’s Start, or set it explicitly for a hard out-point.
- Pick the speaking character from the combobox on the row. It draws from the project’s character list.
- Type the line into the caption field. Use the Localize note to leave a hint for translators if the line is idiomatic or relies on visual context.
- Add Caption at the bottom of the section adds the next row; repeat for each line.
The inspector’s Preview section plays the clip with the captions overlaid, so a writer can verify timing without leaving the inspector. What ships to the player is whatever the host renders through its dialogue UI; the in-editor preview is an authoring aid.
Mark the recap surface
Background clips and story beats annotate the clip for recap UIs. A writer authors them once on the entry, and the host reads them from any recap surface that fires.
- Background Clips section label, with a count of the rows below it.
- A clip’s time range: Start and End, in seconds from the start of the clip.
- Story Beats section label, with its own row count.
- A beat’s Importance dropdown.
- A beat’s Decay field.
- Background clip: a time range (Start to End) plus a free-form Description (“the camera pans across the empty valley”). Recap UIs use these to skip filler or label it as b-roll. Useful for long videos with both story and atmosphere. Add via Add Background Clip.
- Story beat: a time range (Start / End), a Content line, an Importance dropdown on a five-step scale (Trivial, Minor, Moderate, Major, Critical), and a Decay field that lowers importance as the run progresses. Recap UIs surface beats in importance order. Add via Add Story Beat.
The typical pattern is background clips for sections you’d skip in a recap and story beats for moments you’d surface in one. A clip can carry both.
Fire a media entry
To play the entry in a run, add a Play Sequence event on a node or event list and pick the entry from its Sequence field. The runtime plays the file and surfaces the entry’s captions through the dialogue UI in sync. Audio entries with Use as background ticked are also available to the game for menu music outside any run: that path doesn’t need an event. See the Play sequence event reference for the event’s fields.
See also
- Media reference for the field list.
- Project Settings reference for the project-level settings dialog whose Media tab hosts your media folders.
- Play sequence event reference for firing an entry.
- Audio cues for layered scoped audio (a different shape than single-file playback).
- Character reference: captions reference characters by ID.
- Error messages: Background-video clip bounds are invalid: panel message when a clip has an impossible Start, End, or duration.