Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

脱Unity!?UE4でVR開発のここが変わった

752 views

Published on

慣れ親しんだUnityでのVRゲーム開発から心機一転、初めてとなるUE4を用いたVRゲーム移植で得たノウハウをご紹介します。
Unity開発者がUE4で開発する際に気を付けるべきポイントや、UE4の機能を使用した開発フローの最適化、エンジニア・デザイナーそれぞれの視点で見た2つのエンジンの違いを体験談を基にご説明します。

【講演動画】
https://youtu.be/b4y3ie360I4

Published in: Engineering
  • Be the first to comment

脱Unity!?UE4でVR開発のここが変わった

  1. 1. #ue4fest 脱Unity!? UE4でVR開発のここが変わった 株式会社コロプラ  
  2. 2. #ue4fest はじめまして
  3. 3. #ue4fest です
  4. 4. #ue4fest コロプラといえば
  5. 5. #ue4fest VR
  6. 6. #ue4fest 2014年から様々なVRゲームを作ってきました
  7. 7. #ue4fest 2014年から様々なVRゲームを作ってきました。
  8. 8. #ue4fest 絵柄もポップなゲームが多い
  9. 9. #ue4fest 綺麗なグラフィックの VRゲームを作りたい!!!!
  10. 10. #ue4fest 「Unreal Engine」というエンジンは グラフィックが綺麗らしい VRゲームで使っている会社も多いらしい
  11. 11. #ue4fest 使ってみよう
  12. 12. #ue4fest 本⽇話すこと • Unityからの移植テスト • 背景制作 • アニメーション実装 • VR向けの最適化 • C++ vs Blueprint • まとめ
  13. 13. #ue4fest ⾃⼰紹介 エンジニア 加⽥ 健志(カダ タケシ) 2015年コロプラ⼊社 サウンドや通信周りを担当することが多い 主な開発タイトル 「TITAN SLAYER」 「Dig 4 Destruction」 「VR Tennis Online」など
  14. 14. #ue4fest Unityからの移植テスト 第⼀章
  15. 15. #ue4fest 今回の移植対象
  16. 16. #ue4fest TITAN SLAYERの紹介 •  2017年4⽉リリース (Steam/Oculus/Vive Port) •  ⼀⼈称アクションゲーム •  Unity 5.5.0f3 •  剣・銃・⼸を使って 巨⼤なモンスターを倒す •  体を⽬いっぱい使って戦う
  17. 17. #ue4fest お客様の声 かんぜんにスクワットなので、 翌⽇太もも筋⾁痛になります。 回避は慣れないと⼤きく動くため、 リアルに体⼒を使います。 夢中で戦ってたら太もも が筋⾁痛になりました。
  18. 18. #ue4fest 移植開始 最初の⽅針 • Stage1のみ移植 • アセットの差し替えは最⼩限に • いろいろなUE4の機能を使ってみる ⽬的 • グラフィックの向上
  19. 19. #ue4fest
  20. 20. #ue4fest さあはじめよう
  21. 21. #ue4fest 開発環境 CPU Intel Core i7 GPU NVIDIA GTX1060 メモリ 32GB/64GB ストレージ SSD VRヘッドセット Oculus Rift CV1 + Oculus Touch HTC Vive +ライトマップ分散ビルド環境を構築 ※複数のPCでビルドできますでしょうか? https://answers.unrealengine.com/questions/48568/index.html
  22. 22. #ue4fest まずは サンプルプロジェクトを⾒てみる
  23. 23. #ue4fest UE4はVRのサンプルが豊富 • MODING(MOD作成中) • ROBO RECALL • VR FUNHOUSE
  24. 24. #ue4fest UE4はVRのサンプルが豊富 • Learn(ラーニング) • Showdown VR Demo
  25. 25. #ue4fest UE4のVRサンプルを⾒てみる • New Project -> Virtual Reality
  26. 26. #ue4fest レベルを開く • Content/VirtualRealityBP/Maps/MotionControllerMap
  27. 27. #ue4fest レベルを開く • Content/VirtualRealityBP/Maps/MotionControllerMap
  28. 28. #ue4fest VRモードでプレイ • VR Previewを選択
  29. 29. #ue4fest VRモードでプレイ テレポート移動機能 ものつかみ機能
  30. 30. #ue4fest ほかにもサンプルが豊富 • エフェクト • ライティング • マテリアル • ⽔表現 • シーケンサー
  31. 31. #ue4fest 約1か⽉後 
  32. 32. #ue4fest あれ? • グラフィック上がった?
  33. 33. #ue4fest 背景制作 第⼆章
  34. 34. #ue4fest ⾃⼰紹介 デザイナー ⻄村 博司(ニシムラ ヒロシ) 2015年コロプラ⼊社 背景アーティスト 前職でUE4に触れる機会があり今回は サポートとして参加 主な開発タイトル 「Dig 4 Destruction」 「Fly to KUMA」など
  35. 35. #ue4fest 「背景」は作り直し! クオリティ⾯で予想と違った! ▶近景にある背景モデルに質感がなくボケている ▶背景モデルはマージされ編集がやりづらい
  36. 36. #ue4fest どうやって改善していくか ▶アンリアルは初めて ▶アンリアルの機能を使い背景作業を⾏いたい ▶アーティストでも簡単にクオリティを上げたい
  37. 37. #ue4fest 背景制作スタート
  38. 38. #ue4fest 編集しやすい環境作り 問題点 ▶マージされた背景モデルでは編集が出来ない Unreal機能 ▶BSPツールを使いレベルデザインを作成ステージ⼟台を作る ▶モジュラーアセットに作り直してステージ構築
  39. 39. #ue4fest BSPツール(ジオメトリブラシ) ▶レベル作成に使われる基本的なツール
  40. 40. #ue4fest BSPツールでゲームプロトタイプ ▶配置後でも編集が可能 ▶埋めたり削ったりして形状を作成 ▶凝りすぎない程度にレベルを作成
  41. 41. #ue4fest こんな感じで作成しました
  42. 42. #ue4fest ステージの⾻組みが出来た ▶イテレーションが早くゲームプロトタイプを検証 ▶アーティスト作業が不要
  43. 43. #ue4fest モジュラーアセットへ変更 ▶︎マージされた背景モデルは編集がやりづらい
  44. 44. #ue4fest モジュラーアセットとは ▶使い回しを前提にパーツ分けしたアセット ▶利便性を考えピボット位置やサイズのルールは決める
  45. 45. #ue4fest モジュラーアセット作成⼯程 ▶BSPで作成したレベルを元にパーツをリスト化 ▶要素がわかる程度のダミーアセットを作成 BSP(ジオメトリブラシ) ダミーアセット 本アセット
  46. 46. #ue4fest モジュラーアセット完成
  47. 47. #ue4fest ステージ構築がやりやすい ▶少ないアセットの組み合わせでステージを作成 ▶スナップ移動を使い効率よく配置 パーツを    合わせて      組み⽴てる
  48. 48. #ue4fest 質感のクオリティアップ 問題点 ▶近景にある背景モデルの質感がなくボケている Unreal機能 ▶マテリアルエディタを使ってディテールテクスチャを使⽤
  49. 49. #ue4fest ディテールテクスチャとは ディテールテクスチャ使⽤使っていないマテリアル
  50. 50. #ue4fest マテリルエディタを使う ▶ノードベースで作れるマテリアル 例:単純なマテリアル 例:複雑なマテリアル
  51. 51. #ue4fest ディテールテクスチャの作成 ▶パレットから「DetailTexturing」ノードを加えて作成
  52. 52. #ue4fest ディテールテクスチャの⽐較 Before After
  53. 53. #ue4fest 質感のクオリティアップ ▶簡単なマテリアルならアーティストでも作れる ▶ポイントを絞り⽬的にあったマテリアルを作成
  54. 54. #ue4fest 背景完成
  55. 55. #ue4fest
  56. 56. #ue4fest 背景制作まとめ ▶BSPを使ってステージの⾻組みを作成 ▶モジュラーアセットで柔軟な背景構築 ▶マテリアルを作成してクオリティアップ アンリアルエンジンを使って解決!
  57. 57. #ue4fest おまけ:VRエディタを使ってみた ▶実験的に実装されている「VRエディタ」が⾯⽩そう
  58. 58. #ue4fest セッティング ▶エディタ設定「Enable VR Mode Auto-Entry」にチェック ▶ゴーグルを被るだけでVRエディタが起動
  59. 59. #ue4fest レイアウト ▶「コンテンツブラウザ」よりアセットを配置 ▶︎「複製」も簡単
  60. 60. #ue4fest ワールドスケール ▶シーン全体のスケールを変更
  61. 61. #ue4fest 移動⽅法 ▶テレポート ▶⼿動
  62. 62. #ue4fest ゲームプレイ ▶編集後そのままゲームをチェック
  63. 63. #ue4fest VRエディタまとめ ▶編集内容を絞れば直感的に作業が⾏える ▶レベルエディタとVRエディタを使い分ける VR空間で作る 背景制作は楽しい体験!
  64. 64. #ue4fest アニメーション実装 第三章
  65. 65. #ue4fest ⾃⼰紹介 エンジニア 佐々⽊ 尚⼈ (ササキ ナオト) 2016年に新卒としてコロプラに⼊社 TITAN SLAYERの開発を担当 主な担当範囲は 「描画周りの実装」と「ボスキャラ実装」
  66. 66. #ue4fest アニメーションについて話す理由 Unityと⽐べて最も差異が ⼤きかったため
  67. 67. #ue4fest 話の流れ アニメーション機能の説明 アニメーションの設計の⽐較 Unreal Engineでの実装例 まとめ
  68. 68. #ue4fest 最初の話 アニメーション機能の説明 アニメーションの設計の⽐較 Unreal Engineでの実装例 まとめ
  69. 69. #ue4fest Animator もうちょっと遷移がごちゃついた図  ステートと遷移のルールに基づいてアニメーションを再⽣する
  70. 70. #ue4fest Animation Blueprint  Animation BlueprintもUnityと同等の機能を備えている
  71. 71. #ue4fest Animation Blueprint  アニメーションイベントの受け取りや変数の制御も  Animation Blueprint内で⾏うことができる
  72. 72. #ue4fest AnimatorAnimation Blueprint ≠ アニメーション機能をざっくり⽐較すると…
  73. 73. #ue4fest アニメーション機能をざっくり⽐較すると… Animation Blueprint Animator + Animator管理⽤ スクリプト ≒
  74. 74. #ue4fest 次に話すこと アニメーション機能の説明 アニメーションの設計の⽐較 Unreal Engineでの実装例 まとめ
  75. 75. #ue4fest 完成イメージ図 完成した時のてつおモーションがどんな感じになるかのgif 待機→攻撃→ダメージ→待機→攻撃→待機
  76. 76. #ue4fest 敵キャラアニメーションで実現したいこと 思考 攻撃 ダメージ アニメーション 終了 ダメージイベント アニメーション 終了 攻撃イベント
  77. 77. #ue4fest Unityアニメーションの設計 思考 攻撃 ダメージ アニメーション 終了 ダメージイベント アニメーション 終了 攻撃イベント 全てのステート
  78. 78. #ue4fest Unrealアニメーションの設計 ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  79. 79. #ue4fest 話の流れ アニメーション機能の説明 アニメーションの作り⽅の⽐較 Unreal Engineでの実装例 まとめ
  80. 80. #ue4fest ステートマシン ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  81. 81. #ue4fest ステート編集 ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  82. 82. #ue4fest ステート内部 ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  83. 83. #ue4fest 【Tips】ポーズ拡張
  84. 84. #ue4fest 【Tips】ポーズ拡張
  85. 85. #ue4fest ステートマシン ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  86. 86. #ue4fest ステートマシン ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  87. 87. #ue4fest ステート ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  88. 88. #ue4fest サブステートマシン  あ ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  89. 89. #ue4fest 制御⽤変数
  90. 90. #ue4fest 制御⽤変数
  91. 91. #ue4fest 【Tips】Enumでのタイプ分け
  92. 92. #ue4fest 【Tips】Enumでのタイプ分け
  93. 93. #ue4fest 【Tips】Enumでのタイプ分け
  94. 94. #ue4fest 遷移(思考→攻撃) ダメージ サブステートマシン 思考 攻撃 思考&攻撃
  95. 95. #ue4fest ダメージ サブステートマシン 思考 攻撃 思考&攻撃 遷移(思考→攻撃)
  96. 96. #ue4fest ダメージ サブステートマシン 思考 攻撃 思考&攻撃 遷移(思考→攻撃)
  97. 97. #ue4fest ダメージ サブステートマシン 思考 攻撃 思考&攻撃 遷移(攻撃→思考)
  98. 98. #ue4fest ダメージ サブステートマシン 思考 攻撃 思考&攻撃 アニメーションの残時間 0.05秒以下 遷移(攻撃→思考)
  99. 99. #ue4fest 【Tips】遷移条件を場合分け
  100. 100. #ue4fest 話の流れ アニメーション機能の説明 アニメーションの設計の⽐較 Unreal Engineでの実装例 まとめ
  101. 101. #ue4fest まとめ • UnityとUnrealでは使い⽅のクセが⼤幅に違う • UnrealのAnimationは⾼機能 移植の際は設計レベルでの⾒直しを!
  102. 102. #ue4fest VR向けの最適化 第四章
  103. 103. #ue4fest VR最適化って何だろう? 処理負荷軽減 プレイヤー 没⼊感向上
  104. 104. #ue4fest 処理負荷軽減 • PC VRは90FPS厳守 • フレームレートの低下 → 酔いを誘発 • 問題が顕在化するのは開発終盤 パフォーマンスを最初から考慮した開発が⼤事
  105. 105. #ue4fest UE4×処理負荷軽減 • Forward Shading • カプセルシャドウ
  106. 106. #ue4fest Forward Shading • UE4の標準はDeferred Shading • 処理負荷軽減のためForward Shadingに変更 • レンダリングパフォーマンスが20〜30%アップ
  107. 107. #ue4fest Forward Shading Deferred Shading とは • Forward Shading • 古典的な描画⽅法 • ライトが増えれば負荷が増える • Deferred Shading • 近年主流の描画⽅法 • ライトが増えても負荷が増えない • G Buffer
  108. 108. #ue4fest Forward Shading Project Settings > Engine > Rendering にある「Forward Shading」にチェックを⼊れて プロジェクトを開きなおす
  109. 109. #ue4fest Forward Shading ※Forward Shadingでは⼀部の機能が制限される ※UE4公式 VR でフォワード レンダリングを使⽤する https://docs.unrealengine.com/latest/JPN/Engine/Performance/ForwardRenderer/index.html
  110. 110. #ue4fest カプセルシャドウ 簡易的な影に切り替える ROBO RECALLでも使⽤ 通常のシャドウ カプセルシャドウ
  111. 111. #ue4fest カプセルシャドウの設定⽅法 Skeletal Mesh Editorを開く Lightingの「Shadow Physics Asset」に Physics Assetを設定 Physicsに設定されているものと同じでOK カプセルシャドウ⽤の別Physics Assetを 作成して影をカスタマイズ可能
  112. 112. #ue4fest カプセルシャドウの設定⽅法 Skeletal Mesh Componentの詳細  →Lighting  ・Capsule Direct Shadow  ・Capsule Indirect Shadow  にチェック ※Lightingの項⽬は初期状態では畳まれている UE4公式 カプセル シャドウの概要https://docs.unrealengine.com/latest/JPN/Engine/Rendering/ LightingAndShadows/CapsuleShadows/Overview/index.html
  113. 113. #ue4fest 処理負荷軽減の結果 100体のキャラクターを出して検証 GPU処理時間[ms] Deferred Sharding 22.29ms Forward Sharding 19.10ms Forward Sharding + カプセルシャドウ 11.00ms ⼤量のオブジェクトを表⽰する場合 Forward Sharding & カプセルシャドウの設定は有効
  114. 114. #ue4fest プレイヤー没⼊感向上 • キャラクターモデル • VR内の⼿ • サウンド
  115. 115. #ue4fest VR⽤キャラクターモデルの作り⽅ 近くに⾒えるものにコストを割く 「巨⼈と戦う」 → 顔よりも⼿先や⾜が近く⾒えやすい • 近づきやすい部分にポリゴン数を割く • ⾃分の⼿や武器もリッチに • ボーン数は少なめに プレイヤーの⽬線イメージ
  116. 116. #ue4fest VR内の⼿ 手モデルの表示位置を正確にしたい • モーションコントローラの位置に  コントローラモデルを表示する • 実際の手の位置を比較 • Oculus Touch/Vive両方 ※Engine Content/VREditor/Devices にコントローラモデル
  117. 117. #ue4fest サウンド • 聴覚から没⼊感を⾼める • ⽴体⾳響→⾳源⽅向を⽰す • 2Dサウンド→迫⼒を出す • 環境⾳→その場にいる感 • BGM→盛り上げる • UE4の便利なSound Cue
  118. 118. #ue4fest Sound Cue • Sound Cue ≠ オーディオファイル • オーディオ再⽣⽅法の制御 • ランダム再⽣ • In – Loop再⽣ • ピッチ変更再⽣ • オーディオエフェクトの制御 • 減衰 • リバーブ
  119. 119. #ue4fest Sound Cue ランダム再⽣
  120. 120. #ue4fest アニメーション×Sound フレームを指定して エフェクトやサウンドを制御できる
  121. 121. #ue4fest アニメーション×Sound ⾜⾳が近づいてきている ⾜⾳もランダムに再⽣されている
  122. 122. #ue4fest 最適化まとめ • VRは処理負荷がシビア • 開発序盤からフレームレートを意識した開発 • UE4の機能を使って負荷削減 • プレイヤーの没⼊感を削がないつくり • 近くに⾒えるものにコストを割く • ⼿の挙動は慎重に調整 • サウンドにもこだわる
  123. 123. #ue4fest C++ vs Blueprint 第五章
  124. 124. #ue4fest UEを使うときにエンジニアが最初に気になること C++で書くべきか Blueprintで書くべきか
  125. 125. #ue4fest
  126. 126. #ue4fest なるほど、わからん
  127. 127. #ue4fest しかし、UE4のチュートリアルは ほぼブループリントで作られている
  128. 128. #ue4fest うまく使い分けて仲良くなろう
  129. 129. #ue4fest C++ vs Blueprint ブループリント C++ 書き⽅ ノード コード 扱いやすさ 易しい 難しい コンパイル速度 速い 遅い 差分⽐較 難しい 易しい 処理速度 遅い 速い ナレッジ数 多い 少ない
  130. 130. #ue4fest C++ vs Blueprint 扱いやすさ • C++では簡単にNULLを踏んでEditorごと落ちる • ポインタを扱うときには注意が必要
  131. 131. #ue4fest コンパイル速度 • ブループリントは変更部分だけのコンパイル • C++はコンパイル前に全ファイルのヘッダ解析を⾏う C++ vs Blueprint Blueprint C++
  132. 132. #ue4fest C++ vs Blueprint 差分⽐較 • ブループリントでも差分が⾒られるが⽬Grep
  133. 133. #ue4fest C++ vs Blueprint 差分⽐較 • ブループリントでも差分が⾒られるが⽬Grep デバッグプリントがなくなっている
  134. 134. #ue4fest C++ vs Blueprint 処理速度 ベクトル演算を10万回⾏うコードをC++とBlueprintで⽐較 処理時間 C++ 1mse以下 Blueprint 313msec
  135. 135. #ue4fest Blueprint ⇒ C++ ⾃動変換 • Project Settings->Packaging->Blurprints->Blueprint Nativization MethodをInclusiveに変更 • ビルド時にブループリントをC++に変換 • 処理速度が313msecから3msec ブループリントのネイティブ化 https://docs.unrealengine.com/latest/JPN/Engine/Blueprints/TechnicalGuide/NativizingBlueprints/index.html
  136. 136. #ue4fest 結局どう使い分けるか?
  137. 137. #ue4fest •  基礎となる部分はC++で実装 •  C++を継承したブループリントをゲームに使⽤ •  安定した部分からC++に移⾏ AActor AEnemyBase BP_OrcBase BP_OrcA BP_OrcB C++ ブループリント 基本⽅針
  138. 138. #ue4fest なぜこのような⽅針になったか •  C++のコンパイルが遅い →テスト実装はブループリント  安定してからC++化 •  ブループリントの実⾏速度が遅い →複雑な計算はC++へ  →複雑な計算ノードは他⼈が⾒てもわかりづらい •  ブループリントで定義した変数・構造体はC++からはアクセスできない →極⼒C++で宣⾔  C++を継承していないBPをC++に書き換えるのは⼤変
  139. 139. #ue4fest BlueprintのC++への移植 • ブループリントの関数をC++で使うとき • ノードを右クリックし 「Goto Definition」 • C++での定義ファイルが表示
  140. 140. #ue4fest C++まとめ • C++を使うには少しコツがいる • モックやテストはブループリントで⾏い 本番実装でC++へ • 基底クラスだけはC++で作っておく →C++の実装は空でもいい • ブループリントのC++変換機能も有効活⽤
  141. 141. #ue4fest まとめ 第六章
  142. 142. #ue4fest ⽐較解説 • キャラクターの質感アップ • より恐怖を感じるように
  143. 143. #ue4fest ⽐較解説 • キャラクターの質感アップ • ⾦属もいい感じに
  144. 144. #ue4fest ⽐較解説 • エフェクト表現がグーンとアップ
  145. 145. #ue4fest ⽐較解説 • エフェクト表現がグーンとアップ
  146. 146. #ue4fest まとめ 移植を通して分かったUE4の強み •  最初から⽤意されている機能が豊富 •  VRプレビュー •  BSP など •  エンジニアの⼿を借りずに実装可能 •  アニメーション •  Sound Cue など •  ブループリント •  エンジンの機能を使いやすくまとめられている
  147. 147. #ue4fest 使おう
  148. 148. #ue4fest ご清聴ありがとうございました
  149. 149. #ue4fest 付録
  150. 150. #ue4fest マテリアル • 違うところ • Unity「コード」≠ Unreal「ノード」 • 機能的に⼤きな違いはない •  Unity「シェーダー」 = Unreal「マテリアル」 •  Unity「マテリアル」 = Unreal「マテリアルインスタンス」
  151. 151. #ue4fest マテリアル • Unityでもノードベースでシェーダーを作れる
  152. 152. #ue4fest ポストエフェクト • 違うところ • Unity「カメラに付ける」≠ Unreal「レベルに配置する」 • 機能的に⼤きな違いはない •  ⽤意されているポストエフェクト •  独⾃のポストエフェクトの追加
  153. 153. #ue4fest はまったこと OnEnterThinking boolにセットするだけ Unrealプレビュー 「1フレームで同時に遷移できる最⼤数」 を”1”にしておく 1フレームで遷移できる数がデフォルトで3になっている
  154. 154. #ue4fest はまったこと 思考 攻撃 攻撃アニメーション終了Enterイベントで フラグのリセット IsAttacking == true Is Attacking true 同時遷移数 0
  155. 155. #ue4fest はまったこと 思考 攻撃 攻撃アニメーション終了Enterイベントで フラグのリセット IsAttacking == true Is Attacking true 同時遷移数 1
  156. 156. #ue4fest はまったこと 思考 攻撃 攻撃アニメーション終了 Enterイベントで フラグのリセット IsAttacking == true Is Attacking true 同時遷移数 1
  157. 157. #ue4fest はまったこと 思考 攻撃 攻撃アニメーション終了 Enterイベントで フラグのリセット IsAttacking == true Is Attacking true 同時遷移数 1
  158. 158. #ue4fest はまったこと 思考 攻撃 攻撃アニメーション終了Enterイベントで フラグのリセット IsAttacking == true State Enterのイベントが 呼ばれない! Is Attacking true 同時遷移数 2
  159. 159. 銃の⼿の話 • 銃をちゃんと持たせたい (めり込ませたくない) • ノックバックさせたい • 各武器専用の手モデルを作成 • 握った瞬間に差し替え • 通常の手は非表示に • アニメーションは銃に仕込む
  160. 160. 銃の⼿の話 モーションコントローラ 銃モデル 手モデル 子付け 子付け 親子関係 銃を握る 手を銃用のモデルに差し替え 親子関係を変更 銃発射時は銃がアニメーション 手が自動的に追従
  161. 161. 銃の⼿の話 • 銃の引き金と人差し指 Transform(Modify)Boneノードを使っ て直接操作 • コントローラのトリガーの値を使う
  162. 162. #ue4fest 簡単なC++の使い⽅ 新規プロジェクトを作成する ときにC++タブを選択し プロジェクトを作る
  163. 163. #ue4fest 簡単なC++の使い⽅ Content BrowserのAdd New→ New C++ Classを選択 Choose Parent ClassではActorを指定 ※ActorとはUnityでいうGameObjectクラス
  164. 164. #ue4fest 簡単なC++の使い⽅ 宣⾔と実装を書く ブループリントから呼び出したい関数 にはUFUNCTION属性 変数にはUPROPERTY属性 ヘッダ 実装 UFUNCTIONの種類 https://docs.unrealengine.com/latest/JPN/ Engine/Blueprints/TechnicalGuide/ ExtendingBlueprints/index.html
  165. 165. #ue4fest 簡単なC++の使い⽅ • Compileボタンを押すとコンパイル • Visual Studioから直接ビルドしてもOK
  166. 166. #ue4fest 簡単なC++の使い⽅ C++クラスを継承したブループリントの作成 Content Browserからブループリントを作成 Pick Parent Classウインドウの下部から 継承したいクラスを選択
  167. 167. #ue4fest 簡単なC++の使い⽅ ⾃作関数を呼び出すことができる UPROPERTYをつけた変数は 詳細タブに表⽰
  168. 168. #ue4fest 簡単なC++の使い⽅ こんな感じでノード をつなぐと GetNumberした値が表⽰される
  169. 169. C++を使うにあたってハマった場所を羅列 •  BPに公開できる型 •  BPでも使える構造体・列挙⼦(Enum)の宣⾔
  170. 170. #ue4fest Blueprintに公開できる型 関数や変数で特定の型を使おうとする とコンパイルが通らない →int を組み合わせて回避した int32,uint8,floatあたりしか使えない Type 'uint64' is not supported by blueprint. Function: GetLongNumber Parameter ReturnValue
  171. 171. #ue4fest Blueprintでも使える構造体・列挙型 構造体 ・USTRUCTの属性 ・接頭語にF ・GENERATED_USTRUCT_BODY 列挙型 ・UENUMの属性 ・uint8型にする

×