Static 3D Object Meta Asset

Please refer to the 3D Static Object Asset for specific requirements of the Audio Meta Asset Framework before uploading an asset.

1. Find or Create the model file that you want to upload.

You can use any 3d modelling software and 3d model object file that is supported by Unity. For testing purposes, please you can find free 3d assets at Sketchfab.
A more complex model with high definition textures will be a larger file and will cost more to upload to Arweave. This also increases download time. Please check out to determine Arweave upload costs per megabyte or gigabyte.

2. Create a Unity project and install the Rawrshak Tools SDK

Please refer to this tutorial on how to install the Rawrshak Tools SDK.

3. Move the asset into the Unity project

Move the folder containing the asset information including the model and necessary textures into the project

4. Select the model and drag into the scene. Click the model in the scene and make sure the Transform is set correctly.

Make sure that the Transform is set to the following at the start:
Position: (0,0,0)
Rotation: (0,0,0)
Scale: (1,1,1)

5. Correct the orientation

Make sure that the front of the asset is pointing towards the Z direction. The Z-direction is the Blue Arrow in the scene.
In this case, we flipped the Y axis 180 degrees.
Oriented the asset

6. Select the desired Bounding Box and place it in the scene.

Go to Assets\Rawrshak\Tools\Static3dObjectVerfier\Prefabs and select the desired bounding box. In this case, we're going to select Horizontal-Z shape bounding box. Drag that into the scene hierarchy to preserve the position.
Make sure to drag the prefab into the Hierarchy Tab, not the Scene tab. This preserves the position.
Make sure that the Position of the bounding box matches the initial Position of the prefab by selecting the prefab and comparing its position with the bounding box in the scene. In the example's case, it's position is at (0, 0.5, 0).
Drag Desired bounding box into the hierarchy, into the scene.

7. Add a Collider to the model

The box collider will be used by the bounding box to determine if the model is within the Asset Framework.
Select the largest mesh in the model hierarchy. Select 'Add Component' and search for a Collider component. In this case, we're using a simple box collider.
Add a Box Collider

7.B. You may need to adjust the Collider if it doesn't fit the mesh correctly.

Adjust the Box Collider if necessary

8. Select the Bounding Box object and set the Target Object to the object that has the box collider. Click "Load Target Object"

Set the Target Object in the Object Bounds script in the Horizontal Z bounding box object

9. Re-scale and re-position the object until the object fits into the bounding box (Bounding Box is white)

Model intersects with the bounding box.
Model is firmly inside the bounding box, the bounding box will turn green.

10. Create a new Empty Game Object to be the parent of the prefab

Create Empty object
Make sure the position of the new empty object is set to (0,0,0)

11. Move the model game object into the parent

Move the batmobile model into the Batmobile-parent object

12. Drag and drop the parent object into the Project Folder in order to create a prefab

Create a Prefab

13. Set the prefab's asset bundle name

Set Asset Bundle Name

14. Open the Asset Bundles Menu, select the Platform Targets, and click Generate Asset Bundles

Go to the menu and select: Rawrshak -> Asset Bundles
Select StandaloneWindows and WebGL, and click the Generate Asset Bundle

15. View the Asset Bundle Information

Click the asset bundle and view the information

16. Upload it to Arweave

Please check out this tutorial in order to upload to Arweave.

17. Connect to the Rawrshak Dapp and navigate your way to the Content Contract page

Create New Asset

18. Fill in the information about the Asset

Pinata API Key & Secret
This is needed for the metadata to be uploaded to IPFS. Please see the Pinata tutorial to set this up.
Name of the meta asset
Description of the meta asset
Image src that will show up on Dapps and other front-ends
An array of tags categorizing the asset
Max Supply
The maximum instances for this asset that can ever be minted. If left at 0, it will automatically be converted to UINT256_MAX.
Royalty Receiver Address
The ethereum address that royalty fees will be sent to. If this is set to the Zero Address, the asset royalty will fall back to the default Content Contract royalty.
Royalty Rate
The percent royalty the developer will receive when this asset is traded in a marketplace that supports royalty fees.
The Main type of meta asset. In this case, it should be set to Image
The subtype of the meta asset. Please refer to the Image Assets page to get more info on which subtype to select. Defaults to square.
Notifies game developers and users of explicit content. Please mark this correctly.
Static 3D Object Asset Data
This 'name' is reserved for the name of the prefab that will be loaded by the game based on the Asset Names in the Asset bundle Menu.
Engine that this file is packaged for. Currently only supports Unity.
The platform refers to the operating system that the game will be running on. Values include android, ios, windows, and webgl.
Render Pipeline
Render Pipeline refers to the specific rendering pipeline that is set for a game engine. Values on this include brp (built-in render pipeline), urp (universal render pipeline), or hdrp (high-definition render pipeline). For now, we only support the built-in render pipeline so please set it to BRP.
Fidelity refers to the asset's quality, ease of download, and ease of loading. Values include low, medium, and high. Definition for Low, Medium, and High Fidelity is to be determined. For now, please set it to Low.
Shape refers to which type of default asset this object is expecting to replace.Values include small, medium, large, horizontalx, horizontaly, and horizontalz.
3d Static object file URI
Uri to the asset package stored in a decentralized database.
The Static 3D Object Meta Asset Framework has some requirements for each type and subtype. If your asset doesn't comply with the framework requirements, it may be unloadable by games.
Games expect the asset to follow the framework in order for them to load it.
To get the prefab name for Name section of the Static 3D Object Asset Data, you must open the Asset Bundle Menu, select the bundle name to view the information, and find the correct Asset name.
In this example, it's not "batmobile", instead it's "assets/batmobile-parent.prefab"
Use the Prefab name for the Name section

19. Fill in the Asset Information from the static 3d object information above.

Fill in 3D static object information

20. Click Create Asset and wait for the Metadata to propagate

Click Create Asset
Wait for Json to propagate

21. Wait for the transaction to process and Verify

Verify for the asset to show up in the contract
If you're running into problems or find any issues, please join our discord and reach out. We'll help answer questions and fix issues as fast as we can.