realitykitreality-composervisionosreality-composer-pro

Can we use Reality Composer Pro for ARView?


Intuitively I think Reality Composer Pro is more pro than Reality Composer. But when I followed the sessions for Reality Composer Pro, I found that when creating a new scene in Reality Composer Pro, no anchor is specified, so I'm thinking maybe these two tools may coexist in the future and the Pro one can only be used for Vision Pro?


Solution

  • Are Reality Composer Pro and Reality Composer interchangeable?

    The short answer is no. RCP has a different type of scene's hierarchy and non-compulsory anchoring. In addition to this, RCP 2.0 for iOS 18 and visionOS 2 has a toolkit for non-linear editing of animated behaviors, a node editor for MaterialX, particle emitters and a character controllers. All this is simply not present in the regular Reality Composer 1.5 for Xcode 14.



    Now we can use RCP 2.0 scenes in iOS RealityView

    Starting with Xcode 16, you can open prototyped Reality Composer Pro 2.0 scenes not only in visionOS apps, but in iOS/macOS apps using SwiftUI's RealityView.

    @available(visionOS 1.0, macOS 15.0, iOS 18.0, *)
    @MainActor @preconcurrency 
    public struct RealityView<Content> : View where Content : View
    


    Reality Composer Pro 2.0 vs Reality Composer 1.5

    You're absolutely right about using anchors in RCP 1.0 and RCP 2.0 - the new Pro app is designed in such a way that you can place a model into a scene without any anchor. Of course, this cannot be done in a non-Pro RC, where the anchor is a fundamental part of the scene. However, the usage of an anchor in RCP is not only about a certain scenario of model's appearance in a scene, but rather about the stability of AR tracking.

    Both apps are able to coexist together in Xcode 15 (but not in Xcode 16). You can even load the content of a .rcproject file (i.e. regular Reality Composer app) into visionOS 1 RealityView. But you can't do the opposite – load .realitycomposerpro scene into iOS 17 ARView (however, you can use RCP 2.0 scenes in iOS 18 RealityView).

    // Xcode 15
    
    RealityView { content in
               
        let rcScene = try! Experience.loadScene()
        content.add(rcScene.children[0])                // one step down
    
        print(rcScene.anchoring as Any)
    }
    

    To get both apps in Xcode 15, all you have to do is to move rc.app from Xcode 14 to the Xcode 15 Applications folder (Show Package Contents contextual menu) where rcp.app is dwelling.


    enter image description here