The RFOX VALT is created using Unity. Follow these steps to start creating your environment in the VALT:
Step 1. Download Unity
- Download and install Unity Hub here. After installing you can select the free personal license to move forward.
- Create Unity Account to be able to access the necessary features of Unity Hub.
- There will be a popup after installing the Unity Hub asking you to install the latest Unity Editor. If this pops up, press skip installation.
- Install the Unity version 2021.3.2f1 with Unity Hub. You can only use versions that are higher than .2f1. NOTE you cannot use any other year versions.
It is recommended that you use version 2021.3.2f1 to avoid any errors to occur in your Unity Project.
- If prompted to download modules, untick everything. These modules aren’t needed for the designs of your Districts.
Unity OS Compatibility
Below is the table of the minimum requirements for the Operating Systems of your devices.
|Operating system version
|Windows 7 (SP1+), Windows 10 and Windows 11, 64-bit versions only.
High Sierra 10.13+ (Intel editor)
|Ubuntu 20.04, Ubuntu 18.04, and CentOS 7
Step 2: Download RFOX VALT Unity SDK unitypackage
The RFOX VALT Unity SDK is a unitypackage file. This file is the base template where you can edit your districts.
Please click here to download the latest version of the RFOX VALT Unity SDK.
Step 3: Create Unity Project
Before you start designing your Districts you must first create a Unity project. Follow the following steps below.
- On the projects tab, click New Project in the upper right corner of the screen.
- Check your Unity version and choose 2021.3.2f1.
- Now make sure to use the 3D template found in “All Templates”. Then name your project, and put the project folder in your desired location.
- Once done press "Create project".
The project creation may take a while depending on your computer. After it loads the Unity Editor will now be open.
- If you are new to Unity, you can check out the unity guide here. https://docs.unity3d.com/560/Documentation/Manual/UnityOverview.html
- LEARN UNITY - The Most BASIC TUTORIAL I'll Ever Make - Youtube
After creating the project, Unity will open in a default blank Scene called New Scene. This is located inside the system-generated Scenes folder. You can just ignore this or even delete this folder.
A window will prompt you to install the latest versions of Unity. You must ignore this update so click “Skip new version” or close this window.
Step 4: Setting Up Universal Render Pipeline
Before we import the unitypackage, let's first install the prerequisite packages for the VALT. The VALT uses the Universal Render Pipeline, a prebuilt Scriptable Render Pipeline made by Unity. This helps artist-friendly workflows that can help you easily create optimized graphics.
To install the Universal Render Pipeline follow the steps below:
- On the upper left corner of the screen, click Window and Package Manager.
- A Package Manager window will pop out. Press the Packages in the upper left corner and click Unity Registry on the drop-down.
- Now Type in Universal RP on the text box in the upper right corner and the packages should update and let you see the Universal RP. Click on it and press install on the lower right corner of the screen.
After that, you would have successfully installed URP in your Unity Project.
Note that Unity automatically opens the latest version of URP no matter what version of Unity and has no auto-update. So keep in mind to try to check for the latest updates of URP. There is no specific requirement for the URP version but as much as possible try to use the latest ones.
Step 5: Import RFOX VALT Unity SDK unitypackage
Now, we must import the SDK unitypackage. Follow the step-by-step process below to import the RFOX VALT Unity SDK.
- Simply go to the top left corner of your screen and press Assets -> Import Package -> Custom Package.
- A new pop-out window should appear. Select your downloaded RFOX VALT Unity SDK unitypackage.
- Another window will open showing the contents of the Unity Project file. Make sure everything is checked and click import.
New files should now appear in your asset folders.
Step 6: Navigating Unity
- Look for the project folder and navigate through the assets of unity.
- Double-click the Template4 Unity file located in RFOX VALT Metaverse District Template -> Scenes -> Template4 file. This would open up the Unity Scene that you can design.
Step 7: Troubleshooting
When opening the scene, if the textures are pink that means the URP still isn’t set up properly.
Follow the steps below to fix the pink textures.
- Click your asset folder and right-click anywhere on the empty field.
- Once you press right-click a contextual menu will show.
- Go to Create, Rendering, and click URP Asset (with Universal Renderer).
- Next on the upper left corner of the screen click Edit and Project Settings.
- The project settings window will open up. Click the graphics on the left and click the selection circle Below the Scriptable Render Pipeline Settings.
- Another Window will pop out and double-click the New Universal Pipeline Asset you just created.
- Another Window will pop out showing that changing the render pipeline might take a significant amount of time. Press Continue and wait for the scene to load.
- Now all textures should be back to normal.
Now you are ready to design your Districts.
Step 8: VALT GameObjects
Once you have opened the scene you can see the hierarchy window containing the GameObjects you can edit. DO NOT DELETE OR DUPLICATE these GameObjects. This would only serve as references on how they would be placed in the scene. You can move these objects around concerning additional 3D models that you will be adding to the scene. The objects and their uses will be discussed in this section.
This is the district exit location (whole green box). In the VALT the player must step into this location to leave the district. You can move this around or even scale up its size as you see fit.
This is the invisible position where players that enter your district will be teleported onto. You will only be able to see its location through the axis guide when you double-click the game object. It must be placed just atop the floor reference, but never below.
Here we have 20 NFTViewerDummies that you can move around and decorate into. They will display whatever NFT pictures or videos the District owner chooses to display via the District management portal. When moving the dummies, make sure you click the NFTViewerDummy(#) Parent so you will be able to move its child GameObjects as well.
Moving/Rotate/Scale the NFT Parent
Make sure to click the NFTViewerDummy(#) parent when moving the NFT. You can move, rotate, or scale this at your discretion.
Do not move or edit any GameObjects under the NFTViewerDummies (child objects). Moving the child objects will cause the denial of your submission. Make sure to move only the NFTViewerDummies as discussed above.
Note: Sample gif of moving child GameObjects.
The only part the user will be able to see when in the VALT is the middle most of the NFTViewerDummy. The other two (NFT details and Buy Web View) can only be seen after interacting with the NFT. This is the parent holder for the NFTDisplay where the image of your NFT will be placed. DO NOT place your NFT image here, it will be placed dynamically either through the VALT Web District Management Portal or the VALT App by the owner of the district.
This is placed on the right of the NFT. Shows the descriptions of the NFT like Name, Price, Currency, Collection, Blockchain, and Description. Cannot be seen in the VALT in default and will only appear once the NFT is interacted with. DO NOT edit this game object. The details are either fixed by the metadata of the NFT or can be adjusted via the VALT Web District Management Portal or the VALT App by the owner of the district.
Step 9: Environment
The Environment parent is the reference for the Districts scene’s boundaries and lighting. You are free to edit, move and remove these objects. At the moment there are no limitations on how big your district can be, as long as the performance is acceptable for the primary platforms of the VALT.
Personalize to your own taste
You are free to add your own assets to personalize your own Districts.
It is also fine to delete and replace any of the current environment. Your own creativity is your limit!
To simplify, baked lighting adds realistic shadows to your scene. This is usually put for non-moving objects, thus being baked to the scene.
RFOX VALT uses an external Baking tool called Bakery and you can buy and download them here. https://assetstore.unity.com/packages/tools/level-design/bakery-gpu-lightmapper-122218
To check out the details of how to use the Bakery, and how to use them in more detail here. https://geom.io/bakery/wiki/index.php?title=Bakery_-_GPU_Lightmapper
Below are the steps on using Bakery.
- After installing Bakery, set your light sources, click add component and add Bakery Direct Light. Below are the directional lights, and area light settings used by VALT.
- To bake the lights, click Bakery -> Render Lightmap
- The bakery window will appear and click on render.
Step 10: Guides
Summary of Rules
- You must not add or edit any scripts
- Do not use any copyrighted materials
- Do not move the Root GameObjects (NFTs, Environment)
- Do not move the child GameObjects of NFTViewerDummies
- Make a 3D Model folder for your 3D Models
- Make a Texture Folder for your textures
- The textures limit size is 1024x1024 Pixels
For a more detailed version of this see the read me file in Unity or below.
A blank template is available for you if you want to start fresh in designing your District.
It is located at the Asset folder -> Scenes -> OldDistrictInterior.
This template uses the same game objects as the ones explained above (in Step 8) but with minimal environmental objects. The floor and walls here only serve as a reference but you can change it to fit the size of your district. Note that there isn’t an actual floor yet and you must add your floor to your scene.
A readme file in the Client -> Scene -> Template Folder will show the Rules for this RFOX VALT Unity SDK. Make sure to read the contents carefully as any rules that are not followed will be denied of their submission.
What is written in read me will also be shown below.
START of README text file
This template package contains a preset scene with primitives that indicate the basic elements inside a district. These are designated as "Dummies" since they are not functional and serve only to indicate how they are placed in the scene. You can move them around and place them concerning the district interior's 3D model you will be adding to the scene.
When creating your district interior, observe the following:
- The number of NFTViewerDummy, DistrictExitDummy, and SpawnPoint GameObjects is strictly predetermined. Do not delete or duplicate them. You are free to move them around as you please, however.
- When moving around NFTViewerDummy and 3D environment objects, make sure to move only the GameObjects themselves (which are the child GameObjects) rather than the "NFTs" and "Environment" root GameObjects. Make sure the root game object transforms stay at position (0, 0, 0).
- There is no district interior boundary, and the 50x50x50 meters (where 1 meter is 1 Unity unit) of the current floor is just a placeholder. See the FloorReference and Boundary GameObjects in the DistrictInterior scene for reference. You may remove them as you see fit. Just make sure to replace the floor with your own when you do.
- Textures should not be larger than 1024x1024 px.
- You are not allowed to create your scripts.
- Place all your 3D models inside a "3D Models" folder and textures inside the Textures folder, respectively. You can keep lightmaps generated by Unity as is wherever Unity places them.
The FPSController folder contains a simple FPS player prefab you can use to inspect your scene in Play Mode. This is to give you an idea of how your game looks approximately when in the game.
After you are satisfied with designing your district, select the Template folder (which contains the template scene you modified), hit right-click on it, then choose "Select Dependencies". This will select all that you need to include inside the package to be exported. Once you do, hit right-click on the selected files/folders and choose Export Package.
END of README text file
It's best to read up on Unity Guidelines to optimize your Districts in the VR/Oculus play. Here are some links we recommend you read.
Quick Controls guide
Here you will access the tools to be used to control the scene camera and tools to move, rotate, and scale GameObjects.
Quick Controls Shortcut Keys
Middle Mouse/ Q + Left Click - Pan the Camera
Alt+Left Click - Rotate the camera (the eye icon will replace the hand icon when you hold alt)
W - Move Tool - an axis with arrows will appear that will let you move the object on its x,y, and z-axis.
E - Rotate Tool - circular axis will appear that will let you rotate the object on its x, y, and z-axis
R- Scale Tool - an axis with cubes edges will appear that will let you scale the object on its x,y, and z-axis.
T- Rect Tool - is used to move, resize, and rotate UI elements.
Y - Transform Tool - the combination of the move, rotate, and scale tools.
Remember to manage your assets by putting your assets such as art assets, 3D models, and prefabs to their respective folders. A base folder is present for you to organize. It is also recommended to follow the base rule of asset management below.
Art folder contains:
- General 2D related assets
Model folder contains folders for:
- 3D related models
Prefab folder contains:
- Unity prefabs
For more information on unity prefabs. You can read about it here. https://learn.unity.com/tutorial/prefabs-e#5f49e5bcedbc2a280d7cf66f
Use the FPS viewer to check the scene from a first-person perspective. Simply click the FPSController folder from the Assets folder and drag and drop the FPSPlayer prefab into the scene and press play. The FPS Controller uses a standard WASD movement and Space for jumping.
There will be a provided copyright file that you must fill up for any licenses that need attribution. Any other copyrighted materials that aren’t allowed to be used must not be put in your district. Please be advised.
Now you have understood the basics you can start designing your districts. You can add any 3D models, floors, walls, ceilings, sky boxes, lighting materials, and much more. But just take note of the limitations then let your creativity flow.
Step 11: Export as unitypackage
After you are done with the design of your Districts. Export the scene as a unity package from the following steps below.
- Go to Assets from the top right of the screen and press Export Package.
- An Exporting Package window will pop out. Make sure everything is checked and press export.
- Another pop-out window will appear. Pick the location of your unity project, input the name and press save.
Step 12: Submission and go-live Process
After you're done with designing your District scene, we must upload the unitypackage file to the RFOX VALT portal. Follow the following steps below:
- Open this link to any browser. https://portal.rfoxvalt.com.
- You will be directed to the RFOX VALT portal website. Login to your account.
- After logging in, press continue.
- Your profile page will open. Press create beside my profile on the top left corner of the screen.
- The create page will open. For this step, you must answer the prerequisite questions. For question 1, tick yes after reading the documentation and RFOX VALT Unity SDK (which is what you’re currently reading). For questions 2 and 3 write down the description of your unitypackage and the feedback respectively. Click continue when you’re done on the bottom right of the screen. Note that you will not be able to press continue when you don’t answer questions 2 and 3.
- Now you can upload your unitypackage here. Press the upload file and pick your unitypackage file on the left part of the screen. Then on the right, write down the asset name, your email, and your Discord ID. After that, read the terms and conditions and click the check box. Press submit when done.
- A success pop-up will show briefly at the upper right of the screen. This shows that the upload was a success. Scroll down to view your submissions.
- All of your submissions will be shown here. You can see the descriptions and status of your submissions. You can delete your submitted asset on the actions column and press the trash icon.
Now you’re done! For now, you have to wait until the review is finished. The status will update to “Approved”, or “Rejected” once the review is done. If your project is accepted, the status will update to “Deployed” and your district will be placed in the VALT and will be accessible from within your account after a few working days.
If you own a district NFT, you will be able to activate your district as an interior template via the district owner management portal.
If you don’t own a district, but your space is of high quality, we will exhibit your interior in Qua5ar as one of the first creator spaces for a limited period of time.
Eventually you will be able to mint your space and sell it to interested district owners.
If your project is denied, your district has violated one or more rules when designing your district. A reason will be sent to you via email for your review and once the relevant corrections have been made you can submit your district design again.