ResonitePackage: Difference between revisions

From Resonite Wiki
No edit summary
No edit summary
Line 29: Line 29:
All assets will be included explicitly, as a file within the package.
All assets will be included explicitly, as a file within the package.


== Variants ==
=== Variants ===


You can also optionally, export a ResonitePackage with all [[Asset_Variant|asset variants]]. This will result in a larger file size though.
You can also optionally, export a ResonitePackage with all [[Asset_Variant|asset variants]]. This will result in a larger file size though.
== Permissions ==
As exporting a ResonitePackage is treated the same as exporting any other file. Any regular export restrictions in the permissions system will still work for ResonitePackages. This includes restricting certain roles from exporting and [[Component:SimpleAvatarProtection]] blocking export for objects you do not own.
=== Simple Avatar Protection handling ===
ResonitePackages have some custom handling for [[Component:SimpleAvatarProtection]].
On '''import''':
# Resonite will notify each copy of [[Component:SimpleAvatarProtection]] found within the package that it is part of a package import.
# If the <code>ReassignUserOnPackageImport</code> property on the [[Component:SimpleAvatarProtection]] is set to <code>true</code>
## The User assigned to the [[Component:SimpleAvatarProtection]] will be set to the user who imported the package.
# If the <code>ReassignUserOnPackageImport</code> property on the [[Component:SimpleAvatarProtection]] is set to <code>false</code>
## The User assignment will be left alone.
It is recommended to review the <code>ReassignUserOnPackageImport</code> property on any important assets to make sure it is set correctly.


== Naming ==
== Naming ==

Revision as of 07:41, 9 June 2024

Information on this page refer to an unreleased Resonite feature. Its functionality is subject to change before release. Keep an eye on change logs.

ResonitePackage is an upcoming package format allowing users to share and import pre-setup avatars and objects easily[1].

Goals

The goals of the ResonitePackage format are to:

  • Allow creators to share creations outside of Resonite
    • For example an avatar creator adding a ResonitePackage version of their avatar

Non-Goals

  • Compatibility with Unity/Unitypackage
    • Unitypackage is a proprietary format, that we cannot support/emulate
    • Therefore Unity will not support ResonitePackage.
  • Compatibility with other VR Platforms
    • ResonitePackage files will not be suppoted by other VR Platforms

Contents

ResonitePackages will include everything needed to re-create an object inside Resonite when re-imported. Including:

  • All Assets
    • Images
    • Sounds
    • Meshes
    • Videos
  • Slot Hierarchies
    • Including Bones
    • Including all components
    • ProtoFlux

All assets will be included explicitly, as a file within the package.

Variants

You can also optionally, export a ResonitePackage with all asset variants. This will result in a larger file size though.

Permissions

As exporting a ResonitePackage is treated the same as exporting any other file. Any regular export restrictions in the permissions system will still work for ResonitePackages. This includes restricting certain roles from exporting and Component:SimpleAvatarProtection blocking export for objects you do not own.

Simple Avatar Protection handling

ResonitePackages have some custom handling for Component:SimpleAvatarProtection.

On import:

  1. Resonite will notify each copy of Component:SimpleAvatarProtection found within the package that it is part of a package import.
  2. If the ReassignUserOnPackageImport property on the Component:SimpleAvatarProtection is set to true
    1. The User assigned to the Component:SimpleAvatarProtection will be set to the user who imported the package.
  3. If the ReassignUserOnPackageImport property on the Component:SimpleAvatarProtection is set to false
    1. The User assignment will be left alone.

It is recommended to review the ReassignUserOnPackageImport property on any important assets to make sure it is set correctly.

Naming

The name was chosen as it was the most explicit (following in the steps of the Unity engine having the UnityPackage format), and as a way to advertise the platform[2][3].

Sources