Open5
RealityKit
RealityKitの基本
データ構造は基本的にすべてEntity
と考えて良い。
Entity
は親子関係を持ちツリー構造を作れる。
このEntity
をARView
のScene
プロパティに追加することで関連付ける。
様々なEntity
派生クラスがあり、AnchorEntity
は固定する位置を表現し、ModelEntity
は物理オブジェクトとして親のAnchorEntity
の位置に表示される。
平面
let plane = ModelEntity(mesh: .generatePlane(width: 1.0, height: 1.0))
var material = SimpleMaterial()
material.color = try! .init(tint: white, texture: .init(.load(named: "textureName")))
plane.model?.materials = [material]
とすればテクスチャが適用された平面が作れる
追記:
透過PNGでは透過部分が黒くなる
しかしtintのアルファ値を1より少し小さくすると透過になるらしい
また、FaceCullingはSimpleMaterialにはなさそう。
CustomMaterialにはあるようだ
CustomMaterialの作り方は
ModelEntity
平面の例のようにModelEntity
のイニシャライザの第一引数にMeshResource
のインスタンスを渡すことで形状が作られる。
文字をメッシュ化したものが欲しければMeshResource.generateText
が使える。
衝突判定用の形状を指定したければShapeResource
を、物理演算をしたければ重さを指定するイニシャライザもある。
Material
メッシュの色や質感を指定するもの
SimpleMaterial
UnlitMaterial
CustomMaterialなど多くのMaterialがある
VideoMaterialなんていうのもある
Transform
移動回転スケーリングを表現する