Slide 1

Slide 1 text

3か月前の自分に伝えたい UEFN / Verseの知見5選 10月13日 UEFN.Tokyo 勉強会 02 株式会社サイバーエージェント エンジニア イワケン/岩﨑 謙汰/@iwaken71

Slide 2

Slide 2 text

イワケン / 岩﨑謙汰 / @iwaken71 iwaken7 1 2018年 Unityエンジニア VTuber / VRアプリ / Vキャラライブ 2020年 UEエンジニア バーチャルプロダクション 2023年 UEFNエンジニア New! Fortniteのレベルは現在109 (ゼロビルド勢) フォロワー 7050人 XR界の吉田松陰

Slide 3

Slide 3 text

UEFNと自分 2023.3 UEFN発表 2023.5 UEFN面白そう! 2023.7 個人Map公開 会社でもやるぞ! 企業様のマップ制作 2023.10 技術記事投稿 ・Mapを3つ公開 ・UEFN Qiita記事数ランキング1位 (6個/9個)

Slide 4

Slide 4 text

UEFNわからん Verseわからん 3か月前の自分 UE/Unityだったら こう実装できるのに...

Slide 5

Slide 5 text

今: UEFNプレゼンも作れるように

Slide 6

Slide 6 text

「UEFNプレゼン」を元に知見解説 3か月前の自分に伝えたいUEFN / Verseの勘所 • スライド公開予定 • 詳細記事公開予定 知識のインデックスを貼れると良いと思います

Slide 7

Slide 7 text

UEFN / Verse知見5選 • 早く知りたかった仕掛け3選 • Verseスタイルガイド • Verse UI実装 • マルチプレイでデバッグしよう • 生のコードを見よう

Slide 8

Slide 8 text

早く知りたかった Devices(仕掛け) 3選

Slide 9

Slide 9 text

174種類覚えるのは大変 • Devices (仕掛け)とは、島で特定のインタラクティブな体験を 設定することのできるクリエイティブ用ツールです。

Slide 10

Slide 10 text

早く知りたかった仕掛け3選 早く知りたかった仕掛けランキング • Mutator Zone • Prop Manipulator • Tracker

Slide 11

Slide 11 text

Mutator Zone 使い方 • このZoneに入ったら〇〇というイベントが取れる! • Zoneに入ったら武器の付与 他にできること • エモート検出 • 武器使用の禁止 • ジャンプ禁止 • 重力変更 • スピード倍率変更

Slide 12

Slide 12 text

Prop Manipulator 小道具操作機 使い方 • このPropがダメージを受けたら○○というイベントが取れる! • 撃たれたらスライドを進める 他の使い方 • Propを破壊できなくする • Propを見せる/隠す • Propの体力変更

Slide 13

Slide 13 text

Tracker 使い方 • 目標の設定 左に出るミッション、クエスト的なもの 使い方パターン • 経過時間 • Score • 撃破数 20種類以上活用可能

Slide 14

Slide 14 text

Verseスタイルガイド

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

あとで見ると良いかもです https://dev.epicgames.com/documentation/ja-jp/uefn/verse-code-style-guide-in-unreal-editor-for-fortnite

Slide 17

Slide 17 text

Verse UI実装

Slide 18

Slide 18 text

今回のVerse UI実装 • Texture • Text 現在のスライド を表示

Slide 19

Slide 19 text

Verse UI実装 初見ムズすぎ問題

Slide 20

Slide 20 text

サンプルコードを載せました • まずは写経から • 全体像を理解しながらコードを書くことで理解が進む

Slide 21

Slide 21 text

VerseUIで話すこと • Verse UIの全体像 • Canvas内配置の数値 • Textureの呼び出し方 • マルチプレイ対応でmap活用

Slide 22

Slide 22 text

[全体像] Verse UI classの依存関係

Slide 23

Slide 23 text

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

Slide 24

Slide 24 text

Widget配置の数値わからん問題

Slide 25

Slide 25 text

Widget作って数値を参考に

Slide 26

Slide 26 text

TextureをVerseから呼び出す ① TextureをAssets.digest.verseに登録する ② TextureをVerseコードで使用する Verse

Slide 27

Slide 27 text

Assets.digest.verseに登録する • Contents以下にフォルダを作る • 画像データをを保存する • Menuバーの[Verse]>[Build Verse Code]からビルドする

Slide 28

Slide 28 text

TextureをVerseコードで使用する方法 • using {/Verse.org/Assets}を追加 • {フォルダ名/module名}.{ファイル名/変数名}として使用可能 例 Textures.Slide001

Slide 29

Slide 29 text

なんでmapでWidget定義? • Player毎にWidgetを保持しているから • マルチプレイの時にこの実装じゃないと不具合が発生する • 私はWidget情報をまとめたclassの実装をmapのValueに設定しています。 mapとは、Key-Valueで情報を持つ プログラミングの書き方 canvas texture Add Widget Player text

Slide 30

Slide 30 text

マルチプレイで デバッグしよう

Slide 31

Slide 31 text

PC + Switchでデバッグ • シングルプレイではうまくいっても、 マルチプレイでうまくいかないことも (特にUI実装) • Switchスペックでも動くMapに PC Switch

Slide 32

Slide 32 text

生のコードを見よう

Slide 33

Slide 33 text

VSCode見る & 検索 • 仕掛けを右クリック「Open Definition in Visual Studio Code」 「Damaged」で検索

Slide 34

Slide 34 text

最後に • Xフォロー @iwaken71 よろしく! • 今年はUEFNの日本語記事30本は書きたい 参考にしていただけると嬉しいです! • 一緒にUEFN勉強・マップ制作する仲間をゆる募してます! 個人でも会社でも ゼロビルドしたい