RealityKit에서 AR 개체가 올바르게 고정 또는 크기 조정되지 않음

타일러 커츠

두 개의 개체, 갈색 암소 하나와 검은 색 암소 하나가있는 AR 장면이 있습니다. 둘 다 장면에서 약간 떨어져서 표시되어야합니다. 원래는 갈색 소 밖에 없었는데 너무 컸어 요. 내가 기억할 수없는 무언가를 변경했는데, 이제 내 장면은 소의 내부에서 촬영되어 소의 시체를 빠져 나갈 수 없습니다. 내가 할 때 움직이는 것 같습니다. 나는 문제가 [최소 경계]에 대한 양수 때문이라고 생각하지만 완전히 확실하지는 않습니다. 소의 z 축도 설정했는데, 산란시 소를 조금 더 작게 만들고 약 5-7 야드 떨어진 곳으로 만들 수 있나요?

여기에 이미지 설명 입력

  import UIKit
  import RealityKit
  import ARKit

class ViewController: UIViewController {

@IBOutlet var arView: ARView!

override func viewDidLoad() {
    super.viewDidLoad()
 
    arView.session.delegate = self
    
    showModel()
    overlayCoachingView()
    setupARView()
    
    arView.addGestureRecognizer(UITapGestureRecognizer(target: self, action: 
#selector(handleTap(recognizer:))))
    
}

func showModel(){
    
    let anchorEntity = AnchorEntity(plane: .horizontal, minimumBounds:[0.7, 0.7])
    
    let entity = try! Entity.loadModel(named: "COW_ANIMATIONS")
    entity.setParent(anchorEntity)
    
    arView.scene.addAnchor(anchorEntity)
    

}
func overlayCoachingView () {
    
    let coachingView = ARCoachingOverlayView(frame: CGRect(x: 0, y: 0, width: 
arView.frame.width, height: arView.frame.height))
    
    coachingView.session = arView.session
    coachingView.activatesAutomatically = true
    coachingView.goal = .horizontalPlane
    
    view.addSubview(coachingView)
    
}
    
    // Load the "Box" scene from the "Experience" Reality File
   // let boxAnchor = try! Experience.loadBox()
    
    // Add the box anchor to the scene
    //arView.scene.anchors.append(boxAnchor)

func setupARView(){
    arView.automaticallyConfigureSession = false
    let configuration = ARWorldTrackingConfiguration()
    configuration.planeDetection = [.horizontal, .vertical]
    configuration.environmentTexturing = .automatic
    arView.session.run(configuration)
}

//object placement

@objc
func handleTap(recognizer: UITapGestureRecognizer){
    let location = recognizer.location(in:arView)
    
    let results = arView.raycast(from: location, allowing: .estimatedPlane, alignment: .horizontal)
    
    if let firstResult = results.first {
        let anchor = ARAnchor(name: "COW_ANIMATIONS", transform: firstResult.worldTransform)
        arView.session.add(anchor: anchor)
    } else {
        print("Object placement failed - couldn't find surface.")
        
        //cow animations
        let robot = try! ModelEntity.load(named: "COW_ANIMATIONS")
        let anchor = AnchorEntity()
        anchor.children.append(robot)
        arView.scene.anchors.append(anchor)

        robot.playAnimation(robot.availableAnimations[0].repeat(duration: .infinity),
                                                      transitionDuration: 0.5,
                                                            startsPaused: false)
        
        //start cow animation
        let brownCow = try! ModelEntity.load(named: "COW_ANIMATIONS")
        let blackCow = try! ModelEntity.load(named: "Cow")

        brownCow.position.x = -1.0
        blackCow.position.x = 1.0

        
        brownCow.setParent(anchor)
        blackCow.setParent(anchor)
        arView.scene.anchors.append(anchor)

        let cowAnimationResource = brownCow.availableAnimations[0]
        let horseAnimationResource = blackCow.availableAnimations[0]

        brownCow.playAnimation(cowAnimationResource.repeat(duration: .infinity),
                                            transitionDuration: 1.25,
                                                  startsPaused: false)

        blackCow.playAnimation(horseAnimationResource.repeat(duration: .infinity),
                                                transitionDuration: 0.75,
                                                      startsPaused: false)
        
        //end cow animations

 
    func placeObject(named entityName: String, for anchor: ARAnchor)  {
      let entity = try! ModelEntity.loadModel(named: entityName)
    
      entity.generateCollisionShapes(recursive: true)
      arView.installGestures([.rotation, .translation], for: entity)
    
    
      let anchorEntity = AnchorEntity(anchor: anchor)
      anchorEntity.addChild(entity)
      arView.scene.addAnchor(anchorEntity)
    
    
   }
   }
extension ViewController: ARSessionDelegate {
func session( session: ARSession, didAdd anchors: [ARAnchor]) {
for anchor in anchors {
    if let anchorName = anchor.name, anchorName == "COW_ANIMATIONS" {
        placeObject(named: anchorName, for: anchor)
    }  }
}
}
앤디 페도로프

첫 번째 단계

RealityKit에서 모델이 개인 앵커로 묶인 경우 (하나의 앵커가 하나의 모델 만 보유하는 경우) 두 가지 방법으로 크기를 조정할 수 있습니다.

cowEntity.scale = [0.7, 0.7, 0.7]
// or
cowAnchor.scale = SIMD3<Float>([1, 1, 1] * 0.7)

그리고 축 (예 : Z 축)을 따라 젖소 모델을 배치하는 최소 두 가지 방법이 있습니다.

cowEntity.position = SIMD3<Float>(0, 0,-2)
// or
cowAnchor.position.z = -2.0

보시다시피 cowAnchor를 변환하면 모든 자식도이 변환을받습니다.

두번째 단계

3D 저작 앱에서 모델의 피벗 점 을 적절하게 배치해야합니다 . 현재 RealityKit에는 simdPivot 인스턴스 속성을 사용하여 SceneKit 에서 할 수있는 것처럼 피벗의 위치를 ​​수정하는 도구가 없습니다 .

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

Mac에서 글꼴 크기에 따라 Tkinter Button의 크기가 올바르게 조정되지 않음

분류에서Dev

사이드 바가있는 R / Shiny Leaflet 앱이 모바일에서 올바르게 크기가 조정되지 않음

분류에서Dev

bash가 대화 형 Docker 컨테이너 내에서 올바르게 크기 조정되지 않음

분류에서Dev

Android 툴바의 크기가 올바르게 조정되지 않음

분류에서Dev

2 RelativeLayouts가 내 이해에 따라 올바르게 크기 조정되지 않음

분류에서Dev

모달 창의 Zurb 궤도가 올바르게 크기 조정되지 않음

분류에서Dev

오버레이 크기가 올바르게 조정되지 않음 CSS

분류에서Dev

어레이 크기가 올바르게 설정되지 않음

분류에서Dev

Div가 올바르게 표시되지 않고 크기 조정 문제

분류에서Dev

자체 크기 조정 UITableView 셀이 올바르게 크기 조정되지 않음

분류에서Dev

Tableviewcell에는 앱이 실행되는 동안 올바르게 크기가 조정되지 않는 사용자 정의보기가 있습니다 (아래 그림).

분류에서Dev

크기가 조정 된 이미지가 비트 맵에 올바르게 그려지지 않음

분류에서Dev

웹킷에서 올바르게 렌더링되지 않는 백분율을 사용하여 크기가 조정 된 입력

분류에서Dev

UITableCell 높이가 올바르게 크기가 조정되지 않습니다.

분류에서Dev

동적 Java 스크립트 테이블 테두리 크기가 올바르게 조정되지 않음

분류에서Dev

동적 Java 스크립트 테이블 테두리 크기가 올바르게 조정되지 않음

분류에서Dev

CSS 그리드가 열 크기를 올바르게 조정하지 않음

분류에서Dev

숨겨진 Highcharts는 창 크기를 조정할 때까지 올바르게 크기가 조정되지 않습니다.

분류에서Dev

메서드가 올바르게 재정의되지 않음

분류에서Dev

SwiftUI에서 동일한 크기로 크기를 조정하는 SF 기호가 올바르게 보이지 않습니다.

분류에서Dev

내용에 맞게 창 크기가 조정되지 않음

분류에서Dev

크롬에서 CSS가 올바르게 표시되지 않음

분류에서Dev

JSON에서로드-크기가 조정되지 않은 개체?

분류에서Dev

이미지 요소가 Firefox 또는 Chrome에서 화면 크기에 맞게 조정되지 않습니까?

분류에서Dev

Python Selenium Webdriver는 PATH가 올바르게 지정 되어도 실행되지 않고 지침에 따라 작성된 스크립트

분류에서Dev

슬라이드 쇼가 올바르게 고정되지 않음

분류에서Dev

표 셀에 고정 된 이미지가 셀 너비에 맞게 크기가 조정되지 않음

분류에서Dev

Word 매크로 개체 변수 또는 블록 변수가 대체 실행에서 설정되지 않음

분류에서Dev

MS Access 보고서가 올바르게 집계되지 않음

Related 관련 기사

  1. 1

    Mac에서 글꼴 크기에 따라 Tkinter Button의 크기가 올바르게 조정되지 않음

  2. 2

    사이드 바가있는 R / Shiny Leaflet 앱이 모바일에서 올바르게 크기가 조정되지 않음

  3. 3

    bash가 대화 형 Docker 컨테이너 내에서 올바르게 크기 조정되지 않음

  4. 4

    Android 툴바의 크기가 올바르게 조정되지 않음

  5. 5

    2 RelativeLayouts가 내 이해에 따라 올바르게 크기 조정되지 않음

  6. 6

    모달 창의 Zurb 궤도가 올바르게 크기 조정되지 않음

  7. 7

    오버레이 크기가 올바르게 조정되지 않음 CSS

  8. 8

    어레이 크기가 올바르게 설정되지 않음

  9. 9

    Div가 올바르게 표시되지 않고 크기 조정 문제

  10. 10

    자체 크기 조정 UITableView 셀이 올바르게 크기 조정되지 않음

  11. 11

    Tableviewcell에는 앱이 실행되는 동안 올바르게 크기가 조정되지 않는 사용자 정의보기가 있습니다 (아래 그림).

  12. 12

    크기가 조정 된 이미지가 비트 맵에 올바르게 그려지지 않음

  13. 13

    웹킷에서 올바르게 렌더링되지 않는 백분율을 사용하여 크기가 조정 된 입력

  14. 14

    UITableCell 높이가 올바르게 크기가 조정되지 않습니다.

  15. 15

    동적 Java 스크립트 테이블 테두리 크기가 올바르게 조정되지 않음

  16. 16

    동적 Java 스크립트 테이블 테두리 크기가 올바르게 조정되지 않음

  17. 17

    CSS 그리드가 열 크기를 올바르게 조정하지 않음

  18. 18

    숨겨진 Highcharts는 창 크기를 조정할 때까지 올바르게 크기가 조정되지 않습니다.

  19. 19

    메서드가 올바르게 재정의되지 않음

  20. 20

    SwiftUI에서 동일한 크기로 크기를 조정하는 SF 기호가 올바르게 보이지 않습니다.

  21. 21

    내용에 맞게 창 크기가 조정되지 않음

  22. 22

    크롬에서 CSS가 올바르게 표시되지 않음

  23. 23

    JSON에서로드-크기가 조정되지 않은 개체?

  24. 24

    이미지 요소가 Firefox 또는 Chrome에서 화면 크기에 맞게 조정되지 않습니까?

  25. 25

    Python Selenium Webdriver는 PATH가 올바르게 지정 되어도 실행되지 않고 지침에 따라 작성된 스크립트

  26. 26

    슬라이드 쇼가 올바르게 고정되지 않음

  27. 27

    표 셀에 고정 된 이미지가 셀 너비에 맞게 크기가 조정되지 않음

  28. 28

    Word 매크로 개체 변수 또는 블록 변수가 대체 실행에서 설정되지 않음

  29. 29

    MS Access 보고서가 올바르게 집계되지 않음

뜨겁다태그

보관