Help us understand the problem. What is going on with this article?

[UE4]HandheldARテンプレートを読んでみる

はじめに

プロジェクト作成時にHandheldAR(日本語だと携帯AR)を選択したものを読んでいきます。
1.PNG
デプロイするまではクイックスタートに従いました。
https://docs.unrealengine.com/ja/Platforms/AR/HandheldAR/ARQuickStart/index.html

この記事で使用したプロジェクトを下記にアップロードしています
https://github.com/tamfoi/advent-calendar-2019

コンテンツ一覧

パス 概要
HandheldARBP\D_ARSessionConfig ARモード時の設定ファイル
HandheldARBP\Blueprints\GameFramework\BP_ARGameMode PawnとControllerを設定している以外は特になし
HandheldARBP\Blueprints\GameFramework\BP_ARPawn UI制御や画面がタッチされたときにオブジェクトを出す処理など
HandheldARBP\Blueprints\GameFramework\BP_ARPlayerController 特に実装なし
HandheldARBP\Blueprints\Placeable\BP_Placeable 画面をタッチされたときに出現するオブジェクト
HandheldARBP\Blueprints\Placeable\M_ContactShadow BP_Placeableのオブジェクトの陰部分のマテリアル
HandheldARBP\Blueprints\Placeable\T_ContactShadow M_ContactShadowに設定されているテクスチャ
HandheldARBP\Blueprints\UI\BP_DebugMenu デバック表示の有無やARの有効無効の切り替え処理など
HandheldARBP\Blueprints\UI\BP_MainMenu 起動直後に表示されるUI
HandheldARBP\Maps\HandheldARBlankMap デフォルトマップ。レベルBPには特に実装なし
HandheldARBP\Materials\M_BackgroundFade 未使用

下記4つを見ていけば良さそうです

  • HandheldARBP\Blueprints\GameFramework\BP_ARPawn
    • 以下BP_ARPawnと呼称します
  • HandheldARBP\Blueprints\Placeable\BP_Placeable
    • 以下BP_Placeableと呼称します
  • HandheldARBP\Blueprints\UI\BP_MainMenu
    • 以下BP_MainMenuと呼称します
  • HandheldARBP\Blueprints\UI\BP_DebugMenu
    • 以下BP_DebugMenuと呼称します

BP_ARPawn

BeginPlay

UMGの設定処理が入っています。ZOrderでスタート画面のほうが上にくるようになっているのがポイントです
image.png

InputTouch

画面をタップしたときの処理です。最初は普通のライントレースを飛ばして既に配置したオブジェクトがないかチェックしています。オブジェクトがなかった場合にはAR機能で認識した床かどうかをチェックして真ならば新しいオブジェクトをそこに生成するという感じです。
image.png

BP_Placeable

コンストラクションスクリプト

3種類のメッシュをランダムで設定する処理です
2.PNG

イベントグラフ

スポーン時の演出処理です。
3.PNG

BP_MainMenu

表示されるUI

Screenshot_20191208-184849.png

Start ARボタンタップ時の処理

ARモードに切り替えて自身を削除してカメラ映像やメニューを見えるようにします。
image.png

BP_DebugMenu

表示されるUI

Button

デバック系の情報の表示非表示の切り替えなどができるボタン
Screenshot_20191208-182753-2.png

Light Info

環境光などの情報(デバックログなのでUIではないかもですが)
Screenshot_20191208-182753-1.png

Event Construct

BP_Pawnで設定されているタップしたときの処理結果に応じて渡されてくるオブジェクトをLast Hit Objectの部分に表示するEventをディスパッチャーに登録しています
image.png

Event Tick

各デバックフラグがオンのときに毎フレーム更新する処理が入っています
image.png

Button

各ボタンをタップしたときにデバック表示の切り替えやARモードのON/OFFなどを切り替える処理が入っています
image.png

おわりに

HandheldAR以外にもGoogleが出しているサンプルがあるのでそちらも確認すると良さそうです(エンジンのビルドからする必要があるみたいです)
https://developers.google.com/ar/develop/unreal/quickstart

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした