SlideShare a Scribd company logo
1 of 28
ぷちコン作品を4日で作った話
第7回 UE4 ぷちコンにて賞を頂きました
UE4 ぷちコンって?
その名の通り、UE4を使用して数日~1ヵ月程度のぷち期間で制作した作品
の
コンテストです。
テーマが存在する
ぷちコンでは各コンテストでテーマが存在します。
第7回UE4ぷちコンでのテーマは「サプライズ」でした。
レギュレーション(公式HPより抜粋)
喜び・感動・恐怖・怒り、なんでもでもよし!
いろいろなサプライズ(驚き)をテーマに募集します。
解釈はあなた次第!このテーマをひとつでも含む作品ならば何でもOKです!
チーム制作可。ノンゲーム(映像作品など)も可。何点でも応募可
http://historia.co.jp/ue4petitcon07
第7回 UE4 ぷちコンにて賞を頂きました
タイトル:21
獲得賞:引き込まれたで賞
https://youtu.be/DB0nFrVVS2g
4日間の中「21」で活用した仕組み
・インターフェース
・イベントディスパッチャー
この二つについて話していきます
インターフェース
21のクラス
項目 定義・実装内容
インターフェース(IInteract_BP) • インタラクトイベント
• フォーカスイン・アウトイベント
• クリックイベント
• 名前の表示
• 名前の削除
• テキストの表示
• テキストの削除
• テキストの設定
• 自殺の設定
親クラス(InteractObjBase_BP) • インタフェース継承
• インターフェース実装
• オブジェクトのビルボード
派生クラス(InteractTextActor_BP, etc…) • インターフェース実装
• 親クラス継承
• クラスごとのイベント実装
21のクラス図
<<interface>>
インタラクトインターフェース
+フォーカスイン・アウト()
+クリック()
+ インタラクト()
+インタラクトイベント()
+名前の表示()
+名前の削除()
+テキストの表示()
+テキストの削除()
+テキストの設定()
+自殺の設定()
インタラクトオブジェクト基底クラス
+インタラクト対象の名前
+インタラクト時に表示するテキスト
+自殺できるかどうか
- オブジェクトのビルボード()
インタラクトアクタークラス
- インタラクトカウンタ()
スタートクラス
- アクターズクラスの有効化()
ドアクラス
- ドア解放()
エンディングクラス
- エンディング()
21のクラス図
インタラクトアクタークラス
- インタラクトカウンタ()
21ではこのクラスのBP(InteractTextActor_BP)を複製して
「インタラクト対象の名前」と「インタラクト時に表示するテキスト」
だけを書き換えている
21のクラス図
インタラクトオブジェクト基底クラス
+インタラクト対象の名前
+インタラクト時に表示するテキスト
+自殺できるかどうか
- オブジェクトのビルボード()
クラスの変数を「パブリック」指定したものだけが「詳細>デフォルト」枠に表示される。
21では基底クラスの変数を「パブリック」指定している
インターフェースと抽象クラスの復習
※「21」では抽象クラスは作っていません
項目 インターフェース 抽象クラス
関係 「インターフェース」と「実装クラス」 「抽象クラス」と「派生クラス」
実装 強制(実装しないとエラー) 強制(実装しないとエラー)
関数実装 不可 可能
アクセス修飾子 public public, protected
概要
「端末」の「電話」や「カメラ」関数定義
- 実装対象の「最低限持つべき機能(型)」
「端末」インターフェースを継承した関数に
加えて独自の関数定義
- 実装対象の「拡張(派生)機能(クラス)」
(個人的な)
階層イメージ
パターン例
・インターフェース -> 抽象クラス(インターフェース機能実装、派生定義) -> 派生機能実装
・インターフェース -> 機能実装
・抽象クラス -> 機能実装
イメージ例
・インターフェース:電話、カメラ、CD読み込み、USB読み込み
・抽象クラス:携帯 →インターフェース継承による機能実装に加え、独自の機能定義
・派生クラス:Android, iPhone → 個別の機能実装
UE4のインターフェース
1. 未実装でもエラーは吐かない
• 単に内部で「処理されない」で終わるようになっている模様
2. 実装は「イベント」か「関数」タイプになる
• Output, Const指定されているものが関数タイプになる
3. アクターに対して関数を呼ぶ際にキャストが不必要
• クラス間の依存を低くできる
• 例えば、衝突時に呼ばれる「Event ActorBeginOverlap」で渡されるアクター情報に対して、
呼びたいインターフェース関数を呼ぶだけでよい
インターフェースを使ってみる
インターフェースを使ってみる
1. インターフェース「Ihoge_BP」を作る
←
[+関数]ボタンで関数を追加
インターフェースを使ってみる
2. 呼び出すアクター「InterfaceCall_BP」と呼び出されるアクター「InterfaceHoge_BP」を作る
「クラス設定」 >「インターフェース」の[追加▼]で、
先ほど作成したインターフェースを割り当てる
「InterfaceHoge_BP(呼び出されるアクター)」のクラス設定
インターフェースを使ってみる
3. 実装してワールドに置く。インターフェース呼び出しのノードには右上に「手紙」アイコンが付く
呼び出しには
「メッセージ」を選択
呼び出し側
呼び出され側
実行時に左上に「Call Interface」の文字が出ていれば成功!
※今回直接アクターを検索して呼び出したが、
「Event ActorBeginOverlap」等から得たアクター情報から
呼び出してもOK
イベントディスパッチャー
イベントディスパッチャー
• 複数存在するイベントを一つに結合(バインド)して一度に呼び出す仕組み
• 要はデリゲート
• 「詳細」>「インプット」から各イベントへ変数を送る設定を行うことが可能
• データフローがBPクラス内だけでなく、BPクラスとレベルBP間でも可能になる
↓普通にデリゲートって書いてある
アクター(以後イベントアクターと呼称)等を経由してアクターからレベルBPや他BPへイベントの発火ができる
1. イベントディスパッチャーを持つイベントアクターに対してレベルBPやアクターBP等がイベントをバインドする
2. イベントアクターが「イベントディスパッチャーの呼び出し」を行う
3. 呼び出されたイベントディスパッチャーに紐づけされた各BPのイベントが発火する
イベントディスパッチャー
バインド
イベント発火
バインド
イベント発火
バインド
イベント発火
イベントアクターBP
(ED持ち)
レベルBP
アクターBP
ウィジェットBP
イベントアクターBP側はこのノード
を呼び出すだけで良い
イベントディスパッチャーを使ってみる
イベントディスパッチャーを使ってみる
1. イベントアクターBP(EventActor_BP)を作成する
右クリック > 「ブループリント クラス」
を選択
親クラスは「Actor」 [+]ボタンでディスパッチャーを追加
イベントディスパッチャーを使ってみる
1. イベントアクターBP(EventActor_BP)を作成する
「イベントディスパッチャー」からD&D
もしくは検索から「呼び出す」を選択
「呼び出し」の「イベントディスパッチャー」
には「手紙」マークがついている
イベントディスパッチャーを使ってみる
2. アクターBP(DispatcherTestActor_BP)を作成する
イベントディスパッチャーを使ってみる
3. ウィジェットBP(DispatcherTestWidget_BP)を作成する
イベントディスパッチャーを使ってみる
4. レベルBPを作る
イベントディスパッチャーを使ってみる
4. レベルBPを作る
DispatcherTestWidget_BPをカメラに適用する
イベントディスパッチャーを使ってみる
5. 実行してみる
同時に「アクター」「ウィジェット」「レベル」の処理が呼ばれていれば成功!
参考
• UE4 イベント・関数・マクロ・インターフェイスの違いと使い分け
http://katze.hatenablog.jp/entry/2016/12/18/000000
• [UE4] Blueprint Interfaceを使って依存度を下げる
http://monsho.blog63.fc2.com/blog-entry-130.html
• インターフェースクラスと抽象クラスについて
http://atsushi4.hateblo.jp/entry/2014/12/16/055939
• インターフェースと抽象クラスの使い分け、活用方法
http://qiita.com/IganinTea/items/e1d35db0a14a84bda452
• UnrealEngine4リファレンス ブループリント インターフェース
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/UserGuide/Types/Interface/index.html
• UnrealEngine4リファレンス ブループリント インターフェースの実装
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/UserGuide/Types/Interface/UsingInterfaces/index.html
• UnrealEngine4リファレンス イベントディスパッチャー
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/UserGuide/EventDispatcher/index.html
• UnrealEngine4リファレンス イベントディスパッチャーの作成
https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/UserGuide/EventDispatcher/CreatingEvents/index.html

More Related Content

What's hot

UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてcom044
 
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!エピック・ゲームズ・ジャパン Epic Games Japan
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!com044
 
UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!com044
 
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解Tatsuya Iwama
 

What's hot (20)

UE4におけるレベル制作事例
UE4におけるレベル制作事例  UE4におけるレベル制作事例
UE4におけるレベル制作事例
 
Robo Recallで使われている 最新のVR開発テクニックをご紹介!
Robo Recallで使われている最新のVR開発テクニックをご紹介!Robo Recallで使われている最新のVR開発テクニックをご紹介!
Robo Recallで使われている 最新のVR開発テクニックをご紹介!
 
UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編) UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編)
 
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法Unreal Engine 4を使って地球を衛る方法
Unreal Engine 4を使って地球を衛る方法
 
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動についてUE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
UE4プログラマー勉強会 in 大阪 -エンジンの内部挙動について
 
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
カリギュラオーバードーズにおけるUE4へのデータ移植の手引きカリギュラオーバードーズにおけるUE4へのデータ移植の手引き
カリギュラオーバードーズにおけるUE4へのデータ移植の手引き
 
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
徹底解説!UE4を使ったモバイルゲーム開発におけるコンテンツアップデートの極意!
 
[UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい![UE4]自動テストでもっと楽したい!
[UE4]自動テストでもっと楽したい!
 
[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい[CEDEC2018] UE4アニメーションシステム総おさらい
[CEDEC2018] UE4アニメーションシステム総おさらい
 
UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!
 
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
最新UE4タイトルでのローカライズ事例 (UE4 Localization Deep Dive)
 
UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介UE4アセットリダクション手法紹介
UE4アセットリダクション手法紹介
 
猫でも分かるUMG
猫でも分かるUMG猫でも分かるUMG
猫でも分かるUMG
 
UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編UE4における大規模背景制作事例 最適化ワークフロー編
UE4における大規模背景制作事例 最適化ワークフロー編
 
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
UE4のモバイル開発におけるコンテンツアップデートの話 - Chunk IDとの激闘編 -
 
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
ゲームエンジンの文法【UE4】No.005 Gameplay Frameworkの理解
 
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
Unreal Engine 5 早期アクセスの注目機能総おさらい Part 2
 
UE4における大規模背景制作事例 描画特殊表現編
UE4における大規模背景制作事例 描画特殊表現編UE4における大規模背景制作事例 描画特殊表現編
UE4における大規模背景制作事例 描画特殊表現編
 
猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り猫でも分かるUE4のポストプロセスを使った演出・絵作り
猫でも分かるUE4のポストプロセスを使った演出・絵作り
 

Recently uploaded

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)UEHARA, Tetsutaro
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案sugiuralab
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfFumieNakayama
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)Hiroshi Tomioka
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineerYuki Kikuchi
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...博三 太田
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?akihisamiyanaga1
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfFumieNakayama
 

Recently uploaded (8)

デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
デジタル・フォレンジックの最新動向(2024年4月27日情洛会総会特別講演スライド)
 
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
TataPixel: 畳の異方性を利用した切り替え可能なディスプレイの提案
 
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdfクラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
クラウドネイティブなサーバー仮想化基盤 - OpenShift Virtualization.pdf
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
自分史上一番早い2024振り返り〜コロナ後、仕事は通常ペースに戻ったか〜 by IoT fullstack engineer
 
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察  ~Text-to-MusicとText-To-ImageかつImage-to-Music...
モーダル間の変換後の一致性とジャンル表を用いた解釈可能性の考察 ~Text-to-MusicとText-To-ImageかつImage-to-Music...
 
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
CTO, VPoE, テックリードなどリーダーポジションに登用したくなるのはどんな人材か?
 
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdfAWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
AWS の OpenShift サービス (ROSA) を使った OpenShift Virtualizationの始め方.pdf
 

ぷちコン作品を4日で作った話