导图社区 UE官方AR案例分析:HandheldAR
这是一篇关于UE官方AR案例分析:HandheldAR思维导图,虚幻引擎的某个官方案例分析,本文对UE官方AR案例中的手持式AR设备进行分析,探讨其在游戏领域的应用和前景。
这是一篇关于UE官方项目CropoutSample的思维导图,主要内容包括:Core文件,Interactable,Villagers,Plugin。
社区模板帮助中心,点此进入>>
项目时间管理6大步骤
项目管理的五个步骤
电商部人员工作结构
暮尚正常运转导图
产品经理如何做好项目管理
车队管理
创业者10条创业经
创业十大思维误区
管培生课程作业
商业模型
HandheldAR
UI
BP_MainMenu
BP_StartMenu

分发事件:StartSession
基本上每一个分发事件,都对应一个按钮实现
函数
BP_OptionMenu
分发事件:CloseOptions、ToggleHudEvent、ToggleSnapEvent、SwitchUIEvent
BP_InfoMenu
分发事件:CloseInfoMenu
BP_BottomMenu
分发事件:ResetPressed、ScreenshotPressed、OptionsPressed、ShowInfoPressed
继承BP_StylizedUI,使用了UI_CapsuleButton、UI_ToggleButton
初始化
1、UI样式初始化(多到头痛)
2、注册地面是否生成事件,如果地面生成,则更换显示界面,显示教程(只能触发一次)
3、注册地面是否被选择,如果选择,无论显示还是隐藏,都会切换对应的UI界面
Tick
1、如果开始了StartSession,则开始扫描环境
2、扫描环境,扫描时,每2s询问一次是否已经生成了扫描地形,如果生成了,则标志扫描结束
BP_StylizedUI
分发事件:SwitchStyle
存储数据表格:DT_Style
关于UI样式的数据表格,有3种:Light、Dark、Game
自定义多个供调用的函数:SetToggleButtonStyleArray、SetCapsuleStyleArray、SetImageColorArray、SetMaterialColorArray、SetTextStyleArray、GetStyleData、CallSwitchStyle、FindIconFromType
GameFrame
BP_ARPawn
Tick事件
1、手势识别,并根据不同识别,触发不同交互
2、如果扫描没有结束,尝试获取相机深度图,并保存到变量CameraDepthTexture
3、如果扫描完毕,并且没有选中地面,则每1s跟新一次地面信息
4、跟新光照信息
OneFingerGestureRecognition
是否是单手指按下,是的话,进入物体移动模式
TwoFingersGestureRecognition
是否是双手指按下,是的话,进入物体旋转或者缩放模式,判断条件由双指距离判断
ResetRecognisedGesture
GetFingersDistance
GetFingersDirection
GetTouchLocation
获得第一个手指的位置
AnyTouchReceived
有手指按下返回true,否则false
WorldHitTest
手指按下的位置发射射线,返回碰撞到的物品
CreatePlaneCandidate
创建AR地面
UpdatePlaneCandidate
更新AR地面,没1秒跟新一次,更新时,重新获取建立的地面信息,并创建AR地面
ResetPlacement
GetPlaneColor
GetScreenCenterPosition
FeedLightEstimate
获得评估的环境灯光信息,并引用的场景中的灯光上以及天空光照上
分发事件
BPPlaneIsSelected
ARObjectSpawned
输入事件
触屏事件
检查手指是否选中的地面
单指按下事件
通过设置BP_Placeable中的OneFingerPressed变量,控制其逻辑是否执行
双指按下事件
同上类似
BP_ARGameMode(空)
BP_ARPlayerController(空)
ENUM_GestureType
Translation
Rotation
Scale
Placeable
BP_InteractionHUD
平移、旋转、缩放物体时浮现在物体旁边的UI
BP_Placeable(核心)
处理、实现被交互模型的交互逻辑
组件
UpdateInteraction
如果玩家在交互,则每一帧调用,主要实现更新UI文本,比如位置信息、旋转信息
SetInteractionIcon
根据当前的交互方式,更新交互图标:移动、旋转、缩放
GetRotationText
GetLocationText
GetScaleText
InitArrow
每次开始交互时调用,初始化箭头,位移交互时,会出现箭头
UpdateArrow
每一帧调用,更新箭头信息
SetPlaceablePosition
每一帧调用,更新交互模型的位置
SetPlaceableRotation
每一帧调用,更新交互模型的旋转
SetPlaceableScale
每一帧调用,更新交互模型的缩放
SnapValues
数字对齐,输入三维坐标,以及网格大小,返回对齐修正后的三维坐标。用于实现物体位移时的吸附功能
SetVisuals
每次开始交互时调用,初始化UI,因为不同的交互方式,需要显示不同的UI
ResetVisuals
隐藏模型交互的相关UI以及地面
AssignProductAsset
提取BP_ProductAssetRef中的数据,并应用
BP_Plane
交互时的地面
Show
Hide
SwitchToMaterialTranslate
切换地面材质到位移交互模式
InitializePlane
根据是否有深度图,进行不同的初始化,主要是是否使用扫描材质
SetScale
设置地面的大小
GetPlatformScanMaterial
根据Android或者Ios,返回不同的扫描材质
BP_ProductAssetRef
被交互模型的真实引用,就是数据,没有编写函数
配置文件:D_ARSessionConfig