Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
3か月前の自分に伝えたいUEFN / Verseの知見5選
Search
Kenta Iwasaki
October 18, 2023
Technology
0
1.3k
3か月前の自分に伝えたいUEFN / Verseの知見5選
2023年 10月13日 UEFN.Tokyo 勉強会 02 にて登壇
Kenta Iwasaki
October 18, 2023
Tweet
Share
More Decks by Kenta Iwasaki
See All by Kenta Iwasaki
31歳男性としての人生資本バランス & ウェルビーイング
iwaken71
0
82
Iwaken Lab. 説明スライド 2024.04.01
iwaken71
0
3.7k
Coding Stoicだった 自分を思い出す
iwaken71
0
170
HoloLensと謎解きの融合: 「TARGET」開発物語 - 企画から一般公開に向けての道のり
iwaken71
0
140
Iwaken Lab.紹介スライド2023.05.14
iwaken71
0
3.7k
Babylon.js書籍出版の裏側。ツイートから始まった奇跡の1年を振り返る
iwaken71
0
430
XR好き学生支援コミュニティIwaken Lab.が今熱い
iwaken71
0
190
オンライン時代の 技術仲間の増やし方 ~3つのコミュニティ事例を添えて~
iwaken71
0
850
やりたいことを仕事にして会社を楽しもう「会社員+コミュニティ型個人」 な生き方の勧め
iwaken71
1
310
Other Decks in Technology
See All in Technology
シンプルな設定ファイルで実現する AWS IAM Identity Center のユーザー管理と開発チームへの委譲 / Delegating AWS IAM Identity Center User Management with a Simple DSL
yamaguchitk333
3
420
All About Sansan – for New Global Engineers
sansan33
PRO
1
1.2k
Azure の裏側を支える SRE の世界
tsubasaxzzz
2
490
TerraformとGitHub Actionsで手軽に実装するECSのCI/CD
k___tkg
0
220
SmartHRの複数のチームにおけるMCPサーバーの活用事例と課題
yukisnow1823
1
650
AWS LambdaでSocket通信サーバーレスアプリケーションのリアルタイム通信 / 20250523 Kumiko Hennmi
shift_evolve
1
250
主要ライブラリの実例に学ぶ、TypeScriptで実現する型安全な座標定義
tiroljpn
1
220
バックエンドのコードファーストなOpenAPIスキーマ駆動開発 - TSKaigi2025
yujitorii
1
240
VueUseから学ぶ実践TypeScript #TSKaigi #TSKaigi2025
bengo4com
3
5.2k
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
1
7.1k
[JAWS-UG 栃木 #2]AWS FISはドSなのか?システムに試練を与えて強くする!
sh_fk2
1
250
スプリントゴールで価値を駆動しよう
takufujii
3
1.6k
Featured
See All Featured
4 Signs Your Business is Dying
shpigford
183
22k
Product Roadmaps are Hard
iamctodd
PRO
53
11k
Docker and Python
trallard
44
3.4k
Building an army of robots
kneath
305
45k
The World Runs on Bad Software
bkeepers
PRO
68
11k
Building Adaptive Systems
keathley
41
2.6k
Building a Scalable Design System with Sketch
lauravandoore
462
33k
It's Worth the Effort
3n
184
28k
Producing Creativity
orderedlist
PRO
344
40k
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
0
27
Speed Design
sergeychernyshev
30
960
Agile that works and the tools we love
rasmusluckow
329
21k
Transcript
3か月前の自分に伝えたい UEFN / Verseの知見5選 10月13日 UEFN.Tokyo 勉強会 02 株式会社サイバーエージェント エンジニア
イワケン/岩﨑 謙汰/@iwaken71
イワケン / 岩﨑謙汰 / @iwaken71 iwaken7 1 2018年 Unityエンジニア VTuber
/ VRアプリ / Vキャラライブ 2020年 UEエンジニア バーチャルプロダクション 2023年 UEFNエンジニア New! Fortniteのレベルは現在109 (ゼロビルド勢) フォロワー 7050人 XR界の吉田松陰
UEFNと自分 2023.3 UEFN発表 2023.5 UEFN面白そう! 2023.7 個人Map公開 会社でもやるぞ! 企業様のマップ制作 2023.10
技術記事投稿 ・Mapを3つ公開 ・UEFN Qiita記事数ランキング1位 (6個/9個)
UEFNわからん Verseわからん 3か月前の自分 UE/Unityだったら こう実装できるのに...
今: UEFNプレゼンも作れるように
「UEFNプレゼン」を元に知見解説 3か月前の自分に伝えたいUEFN / Verseの勘所 • スライド公開予定 • 詳細記事公開予定 知識のインデックスを貼れると良いと思います
UEFN / Verse知見5選 • 早く知りたかった仕掛け3選 • Verseスタイルガイド • Verse UI実装
• マルチプレイでデバッグしよう • 生のコードを見よう
早く知りたかった Devices(仕掛け) 3選
174種類覚えるのは大変 • Devices (仕掛け)とは、島で特定のインタラクティブな体験を 設定することのできるクリエイティブ用ツールです。
早く知りたかった仕掛け3選 早く知りたかった仕掛けランキング • Mutator Zone • Prop Manipulator • Tracker
Mutator Zone 使い方 • このZoneに入ったら〇〇というイベントが取れる! • Zoneに入ったら武器の付与 他にできること • エモート検出
• 武器使用の禁止 • ジャンプ禁止 • 重力変更 • スピード倍率変更
Prop Manipulator 小道具操作機 使い方 • このPropがダメージを受けたら◦◦というイベントが取れる! • 撃たれたらスライドを進める 他の使い方 •
Propを破壊できなくする • Propを見せる/隠す • Propの体力変更
Tracker 使い方 • 目標の設定 左に出るミッション、クエスト的なもの 使い方パターン • 経過時間 • Score
• 撃破数 20種類以上活用可能
Verseスタイルガイド
Verseの書き方に慣れる Why: メンテナンスが容易で一貫性のあるVerse コード 1つだけ紹介 ・タイプには lower_snake_case ・その他のすべては PascalCase C#と逆なんだよなぁ...
https://dev.epicgames.com/documentation/ja-jp/uefn/verse-code-style-guide-in-unreal-editor-for-fortnite
あとで見ると良いかもです https://dev.epicgames.com/documentation/ja-jp/uefn/verse-code-style-guide-in-unreal-editor-for-fortnite
Verse UI実装
今回のVerse UI実装 • Texture • Text 現在のスライド を表示
Verse UI実装 初見ムズすぎ問題
サンプルコードを載せました • まずは写経から • 全体像を理解しながらコードを書くことで理解が進む
VerseUIで話すこと • Verse UIの全体像 • Canvas内配置の数値 • Textureの呼び出し方 • マルチプレイ対応でmap活用
[全体像] Verse UI classの依存関係
classの依存関係からわかること • playerに対してwidgetを付与する • widgetにはたくさんの種類がある canvas button_load (ボタンのUI要素) texture_block (TextureのUI要素)
text_block (文字のUI要素) • canvasの中にwidgetを複数持つことができる (厳密にはcanvas_slotの中) canvas texture Add Widget Player text
Widget配置の数値わからん問題
Widget作って数値を参考に
TextureをVerseから呼び出す ① TextureをAssets.digest.verseに登録する ② TextureをVerseコードで使用する Verse
Assets.digest.verseに登録する • Contents以下にフォルダを作る • 画像データをを保存する • Menuバーの[Verse]>[Build Verse Code]からビルドする
TextureをVerseコードで使用する方法 • using {/Verse.org/Assets}を追加 • {フォルダ名/module名}.{ファイル名/変数名}として使用可能 例 Textures.Slide001
なんでmapでWidget定義? • Player毎にWidgetを保持しているから • マルチプレイの時にこの実装じゃないと不具合が発生する • 私はWidget情報をまとめたclassの実装をmapのValueに設定しています。 mapとは、Key-Valueで情報を持つ プログラミングの書き方 canvas
texture Add Widget Player text
マルチプレイで デバッグしよう
PC + Switchでデバッグ • シングルプレイではうまくいっても、 マルチプレイでうまくいかないことも (特にUI実装) • Switchスペックでも動くMapに PC
Switch
生のコードを見よう
VSCode見る & 検索 • 仕掛けを右クリック「Open Definition in Visual Studio Code」
「Damaged」で検索
最後に • Xフォロー @iwaken71 よろしく! • 今年はUEFNの日本語記事30本は書きたい 参考にしていただけると嬉しいです! • 一緒にUEFN勉強・マップ制作する仲間をゆる募してます!
個人でも会社でも ゼロビルドしたい