Now that HFC Cashouts are in effect, it’s a good time to take any static 3D models you have made and upload them to the marketplace. I plan to in the future cover scripted articles, avatars, and wearables.
In this tutorial, I will take a mushroom model that I have created for Second Life and list it on the High Fidelity marketplace for free. These steps should be accurate as of October 1, 2018.
Using High Fidelity in Desktop Mode is suggested for this tutorial.
You should have a model that you wish to import that has one or more texture associated with it.
This tutorial assumes that you have some experience with Blender, since we will be using it to ensure that our materials are set up correctly. It does not matter what your model has been created in (Maya, Google Blocks, etc) as long as you are able to import it into Blender.
You should also have a High Fidelity account and have some experience using the High Fidelity interface. The interface can be found here.
Additionally, having your own sandbox set up is helpful in order to have a place to work on your content.
Alternatively, we can use the Maker domain, which is a free build domain.
Setting up Textures and Materials in Blender
First, open your file in Blender. If it came from another program, you may need to use File > Import to bring it in from a supported file format. This mushroom was originally a .dae file, exported for use with Second Life.
Ensure that you are using Blender Render, and that you’re in the Default View. If your screen looks like the screenshot below, you should be ready to start.
We want to make sure that we’re viewing our model in material viewport mode, so that we are able to see the texture and material changes that we are making. The viewport mode button is on the bottom-left of the screen, next to the Object Mode drop-down box.
Putting the viewport shading in Material mode can cause the model to look quite dark. Optionally, you can add better lighting, such as a Hemi light. To add a Hemi light, press Shift+A, then navigate to the Lamp menu and select Hemi.
After the Hemi light is added, right click on your object again so that it has an orange outline and is selected.
On the right side toolbar, select the Material button, a red ball with what looks like a checker-box in it. If you do not already have any materials on your object, create a new one by hitting the “+ New” button.
Blender likes to give materials a grey, off-white color. Hit the colored box under the diffuse button and make sure the color is set to solid white, since we will be applying a colored texture to the object. Also, set the intensity of the object to 1.000.
Now, we can move onto the Texture tab. Press the “+ New” button so that a new texture slot is created with a blank, black texture.
In the “Image” menu of the texture tab, select “Open” and select the texture made for the object. The preview should show a tiled version of your object, and your viewport should show a textured version of your object.
If you have multiple materials, you may have to go back to the materials tab, select a different material, and repeat this process until your model is fully textured.
If your texture is showing properly on your object, we are ready to export. Go to File > Export > FBX.
We need to ensure that in the bottom-right of the screen that Path Mode is set to Copy. Click the ‘tray’ icon so that a paper is shown inside of it. You may need to open the left-side menu wider to see the text that says “Path Mode” and move the scroll bar down.
Once you have this set, you can save the file as an .fbx in your preferred directory.
OPTIONAL STEP: In Object mode, hit Ctrl+A with your model selected to open the ‘Apply’ menu. Apply ‘Location’, then hit the key binding again to apply ‘Rotation and Scale’. Although it may not appear to do much in Blender, this helps an imported item appear right where you place it, and can help with rotation and scaling issues.
Uploading your file to High Fidelity Marketplace for Hosting
First, navigate to https://highfidelity.com/marketplace and ensure that you are logged in via the top-right corner of the page. Then, hit the New Item button.
Give your item a descriptive title and short description, and choose a category. For most items, the Quantity and License should remain as they are, and the attributions empty unless you are using a model from an outside source (think of it like giving credits). A listing image is not required at this point in the process. Here is an example of how my free mushroom looks. When you are done, hit “save and continue”.
NOTE: If you do not see a “Save Draft” button, disable any ad-blocking extensions added to your browser.
After the listing has been saved, scroll down to the Assets section and upload your FBX(s).
When the uploaded files are selected, you will receive a URL for the hosted file from marketplace. Copy this URL; this is how we will bring our item in to High Fidelity to test it.
NOTE: Drafts created will only remain editable for 30 days; it is recommended that you publish your drafts before that time.
Bringing your freshly exported FBX into High Fidelity
First, open the create menu, which has an icon that looks like an overlapping wrench and pencil.
If the Create icon is greyed out, you are likely in a domain where you do not have create permissions. Make sure that you are in Maker or your personal Sandbox domain.
After uploading the file to the marketplace, Click on the “Model” button on the create menu and enter the URL of your uploaded item. Your file name must end in ‘.fbx’ in order for it to work correctly. If you don’t know what physics to select, choose “Exact”.
If you are able to see your model in-world, then your upload was successful and you are able to move on to the next step. If you see a green square, then your upload was not successful or your URL was incorrect.
NOTE: Because of High Fidelity’s aggressive content caching, it is suggested that you upload a file with a different URL for each revision to the file that you make instead of replacing the file.
If you must replace the file instead of uploading a new version, put a # at the end of the URL in the ‘model’ section of the create menu. An example of such URL would be “http://example.com/shroom.fbx#”. You can put whatever you wish at the end of the URL to note the revision number, such as “shroom.fbx#1” or “shroom.fbx#final”. Each time you make a new revision, you will want to change the content after the #.
Exporting a JSON for Marketplace Upload
Once you have brought in your model, and verified that it looks correct in-world, it’s time to tweak the size and rotation of the model, then export it that information as a JSON.
One of the most common issues when bringing in a file exported from Blender is the size of the object being too large.
With the Create Menu open, click on your item in order to make the move (arrow), size (cube), and rotation (circle) axes appear. Tweak these until the item is the desired size and rotation.
If you want to resize or rotate an item to an exact measurement, we need to navigate to the Properties tab of the create menu. There are a lot of properties that we can edit here, but the rotation and size properties are in a section labeled “spatial”.
Here, you can set an exact rotation, size, or even reset the dimensions to default if you mess up.
Next, stroll up to the “Collision” section of the properties menu.
One important step is to disable the “grabbable” property for your object. Leaving an object grabbable will allow other users to either click or laser onto your object and move it around in space. It also makes it very easy to accidentally click on and rotate your object after you have your dimensions set, so we will disable grabbable to ensure that the rotation value you set stays as it is.
Make sure you uncheck the grabbable property before moving on.
While you still have your item selected, navigate to the Entity List window (This window may be underneath your Create Tools window). If your object is selected in-world, it should be highlighted in blue on the Entity List. You may need to scroll down the list in order to see your model’s name. Then, click the Export Selection button, which will export your item properties as a JSON. Name your JSON file something similar to your model; for example, I named mine “shroom.json”.
At this point, I suggest taking a screenshot of your item for your marketplace listing, since an image is required. I suggest taking the image against a clean background with not many other objects, and ensure that the image is at least 1472 x 828 and in 16:9 resolution. An image render from Blender is also acceptable, but a screenshot will give your customer a better idea of what they will be seeing in-world.
Once you have a good image of your item, you no longer need it in-world, and you can delete it if you so wish.
Next, we need to tweak and then upload our JSON file before we can submit our item.
Editing the JSON file (Optional)
For a static object, double-check the
modelURL property to ensure that it correctly links to the URL given to you via the Marketplace upload.
You may also want to check your size or rotation values, or check that your object is set to not be grabbable by setting the grabbable property to false.
You can either change these properties in the Create menu, and then re-exporting the JSON, or by editing them in your editing application of choice and then saving the file.
You can test your exported JSON by going to Edit > Import JSON (for a local file) or Import JSON from URL (for a file uploaded to Marketplace).
Uploading your JSON and Finishing Your Listing
Next, upload your JSON file. Make sure that your JSON is set as the Root File by ticking the circle.
Once you check the box that you agree to the terms and conditions, and then ‘Submit for Review’, you should be brought to the My Items page.
Once your item is reviewed, you will be able to view it through the Market app in High Fidelity or from the Marketplace page on the High Fidelity website.
If you have any questions, or find that anything is inaccurate, please feel free to drop a comment below. For extra support, you can also head to the Help domain if you have any difficulties submitting an item to the marketplace.