第2回関西UE4勉強会 
2014/11/1 
おかず@pafuhana1213 
スライド公開してます 
1 
http://www.slideshare.net/pafuhana/ 
unreal-engine4ue4-2014111
 Twitter やってます 
 おかず@pafuhana1213 
 ブログやってます 
 ぼっちプログラマのメモ 
 UE4 やってます 
 UE4歴:約6ヶ月 
 OculusRift やってます 
 社畜プログラマやってます 
2
 ○nityちゃんが走るゲーム 
 第1回UE4ぷちコン 
 製作期間:約1週間 
 360度シューティングゲーム 
 第2回UE4ぷちコン 
 製作期間:約3週間 
 UE4でMMDしてみた 
 アニメーションリターゲット 
3
 株式会社ヒストリアさん主導の 
UE4を用いたゲームコンテスト 
 動画を投稿するだけ! 
 景品が豪華! 
 次は年末らしい… 
4 
http://historia.co.jp/ 
ue4petitcon
 ○nityちゃんが走るゲーム 
 第1回UE4ぷちコン 
 製作期間:約1週間 
 360度シューティングゲーム 
 第2回UE4ぷちコン 
 製作期間:約3週間 
大賞受賞!YATTA! 
 UE4でMMDしてみた 
 アニメーションリターゲット 
5
時間がなくても 
『見た目のリッチ』な 
ゲーム作れる! 
UE4でゲーム作ろうよ! 
6
 これさえ覚えればゲーム作れる! 
 キャラクターの動かし方 
 コリジョン(当たり判定) 
 ゲームのルールづくり 
 いろいろ 
 ゲームの見た目をリッチに! 
 マテリアル, エフェクト 
 ポストプロセス 
7
間違ってたら、ゴメンナサイ! 
 間違いの指摘、疑問などありましたら、 
“#UE4Study”でツイートすると反応あるかも… 
8 
本スライド作成時の 
UE4のバージョンは【4.5】です 
最新版では本スライドで紹介 
している機能・手法は使えない 
可能性があります 
その点、ご了承お願いします
テンプレートの中から選ぶ! 
以上! 
9
アリガトウゴザイマス! 
( ‘д‘⊂彡☆))Д´) パーン 
UE4のテンプレ、充実しすぎ! 
10
 Characterクラスで用意されている 
コンポーネント 
ThirdPersonテンプレの 
MyCharacterブループリント 
キャラクターを親クラスに 
11
12
 Add Movement Input 
 単位方向ベクトル×大きさ(入力量) 
13
14
 簡単!ジャンプもあるよ! 
 豊富なプロパティ! 
 移動速度・加速度 
 空中・水中での制御 
 向きの自動設定フラグ 
 その他いろいろ… 
 コリジョンの考慮 
 Animation BPとの連携 
迷ったらとりあえずコレ 
15
 移動・回転命令を直接実行 
 CharacterMovementを介さずに 
16
17
 CharacterMovementの利点を全無視 
 用途:動く床(StaticMesh)のような簡単なBP 
 UE4 5分で作れてしまう動く床の作り方 
18
19
位置・向きのパラメータを上書き 
20
可変フレームレート 
対応 
21
ハイパー行列計算タイム 
 あまりオススメはできない… 
22
 (Simple) Move to~ 
 Navmeshによる経路探索用 
 UE4のNavmeshを使ってみる 
 Add~ 
 Characterに紐付けたコンポーネントの操作 
23
Sceneコンポーネントで 
階層構造 
24
これで動けるようになったぞ! 
25
 コリジョンを使えば色んなゲームを作れる! 
 衝突判定→ ダメージ判定・ギミック起動 
 エリア内への侵入を検出 
26
27
 Characterのカプセル型だけでは不都合なとき 
 「衝突したのは横から?上?下?」の判定など 
 少し離れた箇所にコリジョン置きたい(バリアなど) 
28
ルゥちゃんかわいい 
29
 Block 
 衝突検出 
 Overlap 
 重複検出 
 Ignore 
 無視 
https://docs.unrealengine.com/latest/JPN/ 
Engine/Physics/Collision/index.html 30
Block Overlap Ignore 
球壁結果イベント 
Block Block A Hit 
Block Overlap B Overlap 
Block Ignore C Ignore 
Overlap Block B Overlap 
Overlap Overlap B Overlap 
Overlap Ignore C Ignore 
Ignore C Ignore 
A B C
 『衝突した』という判定が欲しいか、欲しくないか 
 欲しい▶ Block 欲しくない▶ Overlap 
 主に何が影響するのか? 
 めりこみの問題 
 当たり判定後の移動 
32 
Overlapの時 
Blockの時 
用途に応じて 
使い分けましょう
 Block 
 Hit 
 Overlap 
 Actor Begin 
Overlap 
 Actor End 
Overlap 
33 
チェック付けないと 
イベント発生しないので注意!
34 
 Block :衝突毎 
 Overlap:重複開始・終了時
 Blockの場合 
 ダメージ壁 
 衝突毎に判定くるから… 
 Overlapの場合 
 範囲内の敵に 
ダメージを与え続けたい 
 開始・終了時しかイベント来ない… 
35
 毎フレームHitイベントが発生する可能性… 
 ダメージ処理のインターバルを用意すればいい 
36 
Hitイベント発生 
過ぎた! 
前回のダメージ処理から 
○○秒過ぎた? 
おわり 
まだっす 
ダメージ処理 
インターバルの 
リセット
 Get Real Time Seconds:ゲーム開始からの経過時間(秒単位, Float型) 
 Hit Time:前回のダメージ処理を行った時の経過時間(変数, Float型) 
 ブランチ: 
37
 範囲内に対象がいることを知りたい 
 Overlap開始・終了時に 
範囲内にいる情報をON・OFFする 
 範囲内にいたら、毎フレーム攻撃する 
OFF ON! ON OFF! OFF 
38
 IsOverlap:範囲内にいる情報(変数, bool型) 
 OverlapActors:OverlapしたActorの保存(配列, Actor型)
 コリジョンって結構ややこしい… 
 なぜか判定が発生したり、しなかったり… 
 怪しいと思ったら、各設定の確認+ 
Print Stringやブレークポイントで確認 
40
再開 
41
 Apply Damage 
 当たった相手(Other)にダメージを与える 
 BaseDamage:与えるダメージ量(初期値:0) 
42
 Any Damageイベント 
 Damage:受けたダメージ量 
 体力用変数(Life float型)を用意・管理 
43
 Point Damage :ダメージ位置情報を付加 
 Radial Damage :範囲ダメージ 
44
 Point Damage 
 弱点・部位破壊 
 ふっ飛ばし 
 Radial Damage 
 爆弾・爆発 
 回復魔法 
 DamageType 
45
 Hitした相手(Other)にダメージ与える! 
 Otherが味方でも…? 
46 
誰かに当たった 
あなたは誰 
? 
味方でした 
敵でした 
テヘペロ 
攻撃
 GetDiplayName 
 相手の名前で判定 
 Cast~ 
 クラス継承関係で判定 
 Actor Has Tag 
 タグで判定 
 保存していたActorと比較 
 アセット直選択と比較 
タグ判定がオススメ! 
47
 複数のタグを設定することも! 
48
 移動できます 
 当たり判定取れます 
 相手に攻撃できます 
49 
ゲーム作れそう…
50
時間はタイマー変数 
(Float型)で 
管理するのが一般的 
…たぶん 
51
52
 Teleportノードを使用 
53
54
 これさえ覚えればゲーム作れる! 
 キャラクターの動かし方 
 コリジョン(当たり判定) 
 ゲームのルールづくり 
 いろいろ 
 ゲームの見た目をリッチに! 
 マテリアル, エフェクト 
 ポストプロセス 
55
 マネージャ的なBPを自作 
 サクッと作りたいなら… 
 管理が大変…存在を忘れたり… 
 Level BP 
 各ステージ・オブジェクトへの 
依存度が高いもの 
 制限時間の設定 
 ステージ特有のオブジェクト 
 Gamemode BP 
 ゲーム全体・各ステージで共通するもの 
 ゲームオーバー処理など 
 他のBPからアクセス可能56
 各BPが持つパラメータは 
レベル遷移時にリセットされる… 
 リザルトでスコア出したいのに… 
57 
 Game Instance 
 パラメータがリセットされない! 
 どのBPからもアクセスできる! 
 乱用注意! 
http://unrealengine.hatenablog.com/ 
entry/2014/08/28/203638
 UE4 レベルを跨いで値を保持する 
GameInstanceについて 
 http://unrealengine.hatenablog.com/entry/201 
4/08/28/203638 
いや、たぶん残り時間少ないですし 
記事分かりやすいですし 
まあ、その、手抜きでごめんなさい 
58
 3回見つかったら、ゲームオーバー処理 
59
 他のBPにイベントを通知(処理をお願いする) 
 ゲームルールを管理するBPに 
処理をまとめることができる 
GameOverになった! 
ゲームオーバー時の 
処理、皆よろしくー! 
60
 色んな箇所に同じ処理を書く必要がある 
 見落としや作成ミスなどの問題 
 単純にめんどくさい 
 対象となる処理を変更する場合 
↑で作成した全ての箇所で変更作業する必要がある 
61 
ライフ0 
時間切れ 
ゲームオーバー 
処理 
ゲームオーバー 
処理 
ライフ0 
時間切れ 
ゲームオーバー 
処理
UE4 ブループリントで 
イベントディスパッチャーを使う 
 http://unrealengine.hatenablog.com/entr 
y/2014/10/20/223445 
・・・ゴメンナサイ 
62
 DeltaSeconds(前フレームからの経過時間)を利用 
(Tickイベント、またはGetWorldDeletaSecond) 
63
 UI表示は2種類の機能があります 
 HUD BP 
 BPで表示内容を設定・管理 
 実装簡単・調整超面倒 
 UMG(Unreal Motion Graphics) 
 開発途中(2014/11/1現在) 
 ロジックとデザインの分離 
64 
https://docs.unrealengine.com/latest/JPN/ 
Engine/UMG/UserGuide/index.html
 [UE4] HUD入門 
 http://historia.co.jp/archives/555 
65 
はい
 MyCharacterが持つパラメータを 
参照・表示する場合 
 文字列の結合処理も 
66
 GameInstanceが持つパラメータを表示 
67
 データ型の変換(プログラミング用語) 
 親クラスから子クラスへの移動 
68 
キャスト 
親クラスの選択 
BPシステム
 Play Sound at Location 
 アセット直設定 
 設定項目 
 再生位置・音量・ 
再生速度・開始時間 
 フェードイン・アウト 
などの特殊効果は不可能 
…たぶん 
69
 Audio Component 
 特殊効果を使用可能 
70
 Attenuation(減衰)プロパティ 
 SEにオススメ 
https://docs.unrealengine.com/latest/JPN/ 
Engine/Audio/SoundActors/index.html 
71
 これさえ覚えればゲーム作れる! 
 キャラクターの動かし方 
 コリジョン(当たり判定) 
 ゲームのルールづくり 
 いろいろ 
 ゲームの見た目をリッチに! 
 マテリアル, エフェクト 
 ポストプロセス 
72
 シーン内のアセットは使い放題! 
 他プロジェクトへのアセットの移動も簡単! 
 http://historia.co.jp/ 
archives/275 
 勿論、勉強にもなります 
73
 Spawn Emitter at Location 
 サウンドとは異なり、実行後に設定変更可能 
74
 ゲーム画面に対してのフィルター処理 
75 
セルルック表現が今熱い!(一部で) 
•ポストプロセスマテリアルを使用 
https://docs.unrealengine.com/latest/JPN/Engine/Rendering/PostProc 
essEffects/PostProcessMaterials/index.html 
•Epicの中の人(@junyashさん)のサンプル 
https://twitter.com/junyash/status/523059646282493953
 Matineeデモ 
76 
Before After
 UE4 Document@com04 
 http://com04.sakura.ne.jp/unreal/wiki/index.php?%A5%DD%A5%B9%A5%C8%A 
5%D7%A5%ED%A5%BB%A5%B9- 
%A5%DE%A5%C6%A5%EA%A5%A2%A5%EB-Toon% 
A5%B7%A5%A7%A1%BC%A5%C9 
77
 カメラレンズの「ボケ」を再現 
 見た目がグッと良くなるのでオススメ 
 やり過ぎ注意 
78 
https://docs.unrealengine.com/latest/ 
JPN/Engine/Rendering/ 
PostProcessEffects 
/DepthOfField/index.html
 AA 
 ブルーム 
 レンズフレア 
 自動露光 
 色収差 
 ビネット効果 
 その他いろいろ 
79
80
 UE4の各機能を使えば、 
見た目のリッチなゲームをサクッと作れます 
 BluePrintの学習は必須 
 従来のプログラミング言語に比べれば、かなり簡単! 
 皆でUE4コミュニティを盛り上げていきましょう! 
 UE4 公式フォーラム 
 UnrealEngineユーザ助け合い所 
 Twitter #UE4, #UE4Study 
81
ご清聴頂き 
ありがとう 
ございました! 
82

猫でもわかるUnreal Engine4