---
title: VerseとScene Graphを活用したゲーム開発実演  | Unreal Fest Tokyo 2026
tags: 
author: [エピック ゲームズ ジャパン](https://www.docswell.com/user/EpicGamesJapan)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LE39NPN6E5.jpg?width=480
description: 講演内容：VerseとScene Graphについて簡単に紹介した後、開発途中のゲームをライブで完成させます。Verseによるプログラミング、ゲームプレイへの並行処理の活用、プレハブの構築を実演し、最後に完成したゲームを実際にプレイします。  スライド中の動画一覧： https://epicgames.box.com/s/49787z0uzd2s4lg27tiobulbnno99xqv  本講演へのアンケートにご協力をお願い致します： https://docs.google.com/forms/d/e/1FAIpQLScI6FWrr04t65fePUmAE6s4RcAwETxXtOUQwk4M5skRkjaK-Q/viewform  講演者： Magnus Enebakk(Epic Games)  Unreal Fest Tokyo 2026公式サイト： https://www.unrealengine.com/events/unreal-fest-tokyo-2026
published: November 05, 26
canonical: https://www.docswell.com/s/EpicGamesJapan/ZR8P7E-UE_UFT2026_VERSE_SG
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LE39NPN6E5.jpg)

Building a game with Verse and
Scene Graph


# Page. 2

![Page Image](https://bcdn.docswell.com/page/8EDGWLWMEG.jpg)

Magnus Enebakk


# Page. 3

![Page Image](https://bcdn.docswell.com/page/V7P3929QJ8.jpg)

Quick show of hands (1/2)


# Page. 4

![Page Image](https://bcdn.docswell.com/page/2JV4MDMP7Q.jpg)

Quick show of hands (2/2)


# Page. 5

![Page Image](https://bcdn.docswell.com/page/5EG1GYGQJL.jpg)

How today works


# Page. 6

![Page Image](https://bcdn.docswell.com/page/4JQDXMXW7P.jpg)

The Village template before we
start


# Page. 7

![Page Image](https://bcdn.docswell.com/page/K74Z6V61E1.jpg)

Agenda


# Page. 8

![Page Image](https://bcdn.docswell.com/page/LJ1RV3V5JG.jpg)

Foundations


# Page. 9

![Page Image](https://bcdn.docswell.com/page/GJW1LPLWE2.jpg)

Effect specifiers: what a function
may do


# Page. 10

![Page Image](https://bcdn.docswell.com/page/4EZPMKM2J3.jpg)

Failure: it decides which code runs


# Page. 11

![Page Image](https://bcdn.docswell.com/page/Y76MNQ56EV.jpg)

Concurrency: code that waits (1/3)


# Page. 12

![Page Image](https://bcdn.docswell.com/page/G75Z5RY5J4.jpg)

Concurrency: code that waits (2/3)


# Page. 13

![Page Image](https://bcdn.docswell.com/page/9J2RNDGG7R.jpg)

Concurrency: code that waits (3/3)


# Page. 14

![Page Image](https://bcdn.docswell.com/page/DEYDP2VGEM.jpg)

Scene Graph: entity, component,
prefab


# Page. 15

![Page Image](https://bcdn.docswell.com/page/VJN658M8J8.jpg)

Scene Graph: entities form a tree


# Page. 16

![Page Image](https://bcdn.docswell.com/page/YE9LYKNX73.jpg)

Scene Graph: what a berry bush is
made of


# Page. 17

![Page Image](https://bcdn.docswell.com/page/GE8X6RK9JD.jpg)

Berry bushes


# Page. 18

![Page Image](https://bcdn.docswell.com/page/LEL89KZM7R.jpg)

Turn a bush into a prefab


# Page. 19

![Page Image](https://bcdn.docswell.com/page/4JM6Z2V6EW.jpg)

Turn the bush setup into a prefab


# Page. 20

![Page Image](https://bcdn.docswell.com/page/PJRP6M2NE9.jpg)

Prefabs: in Verse, a prefab is a class
(1/2)


# Page. 21

![Page Image](https://bcdn.docswell.com/page/PEX3MVD8JX.jpg)

Prefabs: in Verse, a prefab is a class
(2/2)


# Page. 22

![Page Image](https://bcdn.docswell.com/page/3EKYGQXLJD.jpg)

Add components


# Page. 23

![Page Image](https://bcdn.docswell.com/page/L739NP5675.jpg)

Add interactable and sound
components to the prefab


# Page. 24

![Page Image](https://bcdn.docswell.com/page/87DGWLDM7G.jpg)

Write your own component


# Page. 25

![Page Image](https://bcdn.docswell.com/page/VJP392XQE8.jpg)

Create berry_bush_component
and tune it in Details


# Page. 26

![Page Image](https://bcdn.docswell.com/page/2EV4MDLPJQ.jpg)

Picking berries


# Page. 27

![Page Image](https://bcdn.docswell.com/page/57G1GYXQEL.jpg)

Components: a Verse class you
write (1/7)


# Page. 28

![Page Image](https://bcdn.docswell.com/page/4EQDXM8WJP.jpg)

@editable: values designers can
change (2/7)


# Page. 29

![Page Image](https://bcdn.docswell.com/page/KJ4Z6V2171.jpg)

Lifecycle: setup, behaviour, cleanup


# Page. 30

![Page Image](https://bcdn.docswell.com/page/LE1RV3M5EG.jpg)

Lifecycle: quick setup (3/7)


# Page. 31

![Page Image](https://bcdn.docswell.com/page/GEW1LP3W72.jpg)

GetComponent: find the
interactable (4/7)


# Page. 32

![Page Image](https://bcdn.docswell.com/page/47ZPMKV2E3.jpg)

Built-in events: wait for a pick (5/7)


# Page. 33

![Page Image](https://bcdn.docswell.com/page/YJ6MNQY67V.jpg)

Concurrency: regrow over time
(6/7)


# Page. 34

![Page Image](https://bcdn.docswell.com/page/GJ5Z5RG5E4.jpg)

Lifecycle: clean up (7/7)


# Page. 35

![Page Image](https://bcdn.docswell.com/page/LE39NPR5E5.jpg)

A rare golden bush


# Page. 36

![Page Image](https://bcdn.docswell.com/page/8EDGWLYYEG.jpg)

Create the golden bush variant


# Page. 37

![Page Image](https://bcdn.docswell.com/page/V7P39262J8.jpg)

Prefab subclasses: change only
what is different


# Page. 38

![Page Image](https://bcdn.docswell.com/page/2JV4MD3X7Q.jpg)

A component is a Verse class. Use
the lifecycle methods for setup,
behaviour, and cleanup.


# Page. 39

![Page Image](https://bcdn.docswell.com/page/5EG1GY3RJL.jpg)

The puzzle house


# Page. 40

![Page Image](https://bcdn.docswell.com/page/4JQDXM5Y7P.jpg)

A puzzle with pressure plates


# Page. 41

![Page Image](https://bcdn.docswell.com/page/K74Z6V9ZE1.jpg)

The puzzle house


# Page. 42

![Page Image](https://bcdn.docswell.com/page/LJ1RV3KDJG.jpg)

Scene events: from a plate to its
room


# Page. 43

![Page Image](https://bcdn.docswell.com/page/GJW1LPD8E2.jpg)

Scene events: up and down the
tree (1/5)


# Page. 44

![Page Image](https://bcdn.docswell.com/page/4EZPMKG9J3.jpg)

Scene events: up and down the
tree (2/5)


# Page. 45

![Page Image](https://bcdn.docswell.com/page/Y76MNQYDEV.jpg)

Scene events: up and down the
tree (3/5)


# Page. 46

![Page Image](https://bcdn.docswell.com/page/G75Z5RG8J4.jpg)

Scene events: up and down the
tree (4/5)


# Page. 47

![Page Image](https://bcdn.docswell.com/page/9J2RNDYV7R.jpg)

Scene events: up and down the
tree (5/5)


# Page. 48

![Page Image](https://bcdn.docswell.com/page/DEYDP2GQEM.jpg)

EntityEnteredEvent: a player steps
on a plate (1/7)


# Page. 49

![Page Image](https://bcdn.docswell.com/page/VJN658G2J8.jpg)

Scene events: SendUp from the
plate (2/7)


# Page. 50

![Page Image](https://bcdn.docswell.com/page/YE9LYKWD73.jpg)

Scene events: OnReceive in the
room (3/7)


# Page. 51

![Page Image](https://bcdn.docswell.com/page/GE8X6RN5JD.jpg)

Scene events: check the plate
order (4/7)


# Page. 52

![Page Image](https://bcdn.docswell.com/page/LEL89KP37R.jpg)

Scene events: SendDown a reset
(5/7)


# Page. 53

![Page Image](https://bcdn.docswell.com/page/4JM6Z24MEW.jpg)

Scene events: each plate handles
the reset (6/7)


# Page. 54

![Page Image](https://bcdn.docswell.com/page/PJRP6MWLE9.jpg)

Scene events: return true to
consume (7/7)


# Page. 55

![Page Image](https://bcdn.docswell.com/page/PEX3MVV6JX.jpg)

A gem pedestal


# Page. 56

![Page Image](https://bcdn.docswell.com/page/3EKYGQQGJD.jpg)

The gem on the pedestal


# Page. 57

![Page Image](https://bcdn.docswell.com/page/L739NPP575.jpg)

Entity hierarchy: the gem gets a
new parent (1/6)


# Page. 58

![Page Image](https://bcdn.docswell.com/page/87DGWLLY7G.jpg)

Entity hierarchy: snap it into place
(2/6)


# Page. 59

![Page Image](https://bcdn.docswell.com/page/VJP39222E8.jpg)

Scene queries: find the room to
notify (3/6)


# Page. 60

![Page Image](https://bcdn.docswell.com/page/2EV4MDDXJQ.jpg)

Scene queries: search the tree
from an entity (1/3)


# Page. 61

![Page Image](https://bcdn.docswell.com/page/57G1GYYREL.jpg)

Scene queries: search the tree
from an entity (2/3)


# Page. 62

![Page Image](https://bcdn.docswell.com/page/4EQDXMMYJP.jpg)

Scene queries: search the tree
from an entity (3/3)


# Page. 63

![Page Image](https://bcdn.docswell.com/page/KJ4Z6VVZ71.jpg)

Generators: what queries return
(1/3)


# Page. 64

![Page Image](https://bcdn.docswell.com/page/LE1RV33DEG.jpg)

Generators: what queries return
(2/3)


# Page. 65

![Page Image](https://bcdn.docswell.com/page/GEW1LPP872.jpg)

Generators: what queries return
(3/3)


# Page. 66

![Page Image](https://bcdn.docswell.com/page/47ZPMKK9E3.jpg)

Scene queries: search up the tree
(4/6)


# Page. 67

![Page Image](https://bcdn.docswell.com/page/YJ6MNQQD7V.jpg)

Generators: take the first match
(5/6)


# Page. 68

![Page Image](https://bcdn.docswell.com/page/GJ5Z5RR8E4.jpg)

Scene queries: a direct call (6/6)


# Page. 69

![Page Image](https://bcdn.docswell.com/page/9E2RNDDVJR.jpg)

Connect components with scene
events and scene queries, not hard
references.


# Page. 70

![Page Image](https://bcdn.docswell.com/page/D7YDP22Q7M.jpg)

Mobs in the tall grass


# Page. 71

![Page Image](https://bcdn.docswell.com/page/VEN65882E8.jpg)

Detect players in the grass


# Page. 72

![Page Image](https://bcdn.docswell.com/page/Y79LYKKDJ3.jpg)

The tall grass in the editor


# Page. 73

![Page Image](https://bcdn.docswell.com/page/G78X6RR5ED.jpg)

Mobs in the grass


# Page. 74

![Page Image](https://bcdn.docswell.com/page/L7L89KK3JR.jpg)

EntityEnteredEvent: wait for a
visitor (1/9)


# Page. 75

![Page Image](https://bcdn.docswell.com/page/4EM6Z22M7W.jpg)

Failure: two checks before an
encounter (2/9)


# Page. 76

![Page Image](https://bcdn.docswell.com/page/PERP6MML79.jpg)

Failure: is the visitor a player? (3/9)


# Page. 77

![Page Image](https://bcdn.docswell.com/page/P7X3MVK6EX.jpg)

Spawning prefabs: start an
encounter (4/9)


# Page. 78

![Page Image](https://bcdn.docswell.com/page/37KYGQ5GED.jpg)

Tags: mark the spawn points (5/9)


# Page. 79

![Page Image](https://bcdn.docswell.com/page/LJ39NPK5J5.jpg)

Tag queries: find the spawn points
(6/9)


# Page. 80

![Page Image](https://bcdn.docswell.com/page/8JDGWL3YJG.jpg)

Shuffle: pick different spots (7/9)


# Page. 81

![Page Image](https://bcdn.docswell.com/page/VEP3924278.jpg)

Spawning prefabs: create a mob
(8/9)


# Page. 82

![Page Image](https://bcdn.docswell.com/page/27V4MDXXEQ.jpg)

Spawning prefabs: place it, then
add it (9/9)


# Page. 83

![Page Image](https://bcdn.docswell.com/page/5JG1GYVR7L.jpg)

An elite mob


# Page. 84

![Page Image](https://bcdn.docswell.com/page/47QDXM6YEP.jpg)

The elite in the editor


# Page. 85

![Page Image](https://bcdn.docswell.com/page/KE4Z6V4ZJ1.jpg)

Prefab subclasses: spawn either
class (1/3)


# Page. 86

![Page Image](https://bcdn.docswell.com/page/L71RV34D7G.jpg)

Prefab subclasses: spawn either
class (2/3)


# Page. 87

![Page Image](https://bcdn.docswell.com/page/G7W1LPX8J2.jpg)

Prefab subclasses: same
component, new values (3/3)


# Page. 88

![Page Image](https://bcdn.docswell.com/page/4JZPMK6973.jpg)

Stun mobs, show their health


# Page. 89

![Page Image](https://bcdn.docswell.com/page/YE6MNQ2DJV.jpg)

Stun, defeat, clean up


# Page. 90

![Page Image](https://bcdn.docswell.com/page/GE5Z5R2874.jpg)

Runtime tags: tag a mob as
stunned (1/3)


# Page. 91

![Page Image](https://bcdn.docswell.com/page/972RND4VER.jpg)

Runtime tags: tag a mob as
stunned (2/3)


# Page. 92

![Page Image](https://bcdn.docswell.com/page/DJYDP2MQJM.jpg)

Runtime tags: tag a mob as
stunned (3/3)


# Page. 93

![Page Image](https://bcdn.docswell.com/page/V7N658W278.jpg)

cancelable: clean up what you
subscribe to


# Page. 94

![Page Image](https://bcdn.docswell.com/page/YJ9LYKXDE3.jpg)

Use queries to find entities, prefab
classes to create them, and clean
up what you start.


# Page. 95

![Page Image](https://bcdn.docswell.com/page/GJ8X6R257D.jpg)

Bombs


# Page. 96

![Page Image](https://bcdn.docswell.com/page/LJL89K23ER.jpg)

Drop bombs


# Page. 97

![Page Image](https://bcdn.docswell.com/page/47M6Z28MJW.jpg)

Bombs use the character facing


# Page. 98

![Page Image](https://bcdn.docswell.com/page/P7RP6M5LJ9.jpg)

SpatialMath: where is the
character? (1/4)


# Page. 99

![Page Image](https://bcdn.docswell.com/page/PJX3MVX67X.jpg)

SpatialMath: in front of the
character (2/4)


# Page. 100

![Page Image](https://bcdn.docswell.com/page/3JKYGQWG7D.jpg)

Spawning prefabs: create a bomb
(3/4)


# Page. 101

![Page Image](https://bcdn.docswell.com/page/LE39NP15E5.jpg)

Spawning prefabs: place it, then
add it (4/4)


# Page. 102

![Page Image](https://bcdn.docswell.com/page/8EDGWLXYEG.jpg)

Clear the path to the cave


# Page. 103

![Page Image](https://bcdn.docswell.com/page/V7P392P2J8.jpg)

The path to the cave is clear


# Page. 104

![Page Image](https://bcdn.docswell.com/page/2JV4MD2X7Q.jpg)

Concurrency: wait for the fuse
(1/9)


# Page. 105

![Page Image](https://bcdn.docswell.com/page/5EG1GYRRJL.jpg)

FindOverlapHits: what is in range?
(2/9)


# Page. 106

![Page Image](https://bcdn.docswell.com/page/4JQDXMVY7P.jpg)

FindOverlapHits: everything in the
blast radius (1/2)


# Page. 107

![Page Image](https://bcdn.docswell.com/page/K74Z6VMZE1.jpg)

FindOverlapHits: everything in the
blast radius (2/2)


# Page. 108

![Page Image](https://bcdn.docswell.com/page/LJ1RV38DJG.jpg)

FindOverlapHits: a sphere at the
bomb (3/9)


# Page. 109

![Page Image](https://bcdn.docswell.com/page/GJW1LPZ8E2.jpg)

FindOverlapHits: each entity once
(4/9)


# Page. 110

![Page Image](https://bcdn.docswell.com/page/4EZPMK19J3.jpg)

FindOverlapHits: everything except
the bomb (5/9)


# Page. 111

![Page Image](https://bcdn.docswell.com/page/Y76MNQLDEV.jpg)

Interfaces: cast to blastable (6/9)


# Page. 112

![Page Image](https://bcdn.docswell.com/page/G75Z5R18J4.jpg)

Interfaces: a contract (7/9)


# Page. 113

![Page Image](https://bcdn.docswell.com/page/9J2RND1V7R.jpg)

Interfaces: each type implements
OnBlast (8/9)


# Page. 114

![Page Image](https://bcdn.docswell.com/page/DEYDP2ZQEM.jpg)

Removing entities: the bomb
removes itself (9/9)


# Page. 115

![Page Image](https://bcdn.docswell.com/page/VJN65832J8.jpg)

Removing entities: a blasted bush
keeps its stump (1/2)


# Page. 116

![Page Image](https://bcdn.docswell.com/page/YE9LYK9D73.jpg)

Removing entities: a blasted bush
keeps its stump (2/2)


# Page. 117

![Page Image](https://bcdn.docswell.com/page/GE8X6R95JD.jpg)

Find what is in range, then call the
interface on each component that
implements it.


# Page. 118

![Page Image](https://bcdn.docswell.com/page/LEL89KW37R.jpg)

Everything we used today


# Page. 119

![Page Image](https://bcdn.docswell.com/page/4JM6Z29MEW.jpg)

Learn more


# Page. 120

![Page Image](https://bcdn.docswell.com/page/PJRP6MGLE9.jpg)

Questions?


