Creating 3D objects for the Metaverse
Building things in the metaverse
“We live in a wonderful world that is full of beauty, charm and adventure. There is no end to the adventures we can have if only we seek them with our eyes open.” – Jawaharlal Nehru
In this post I will explore my creation of the "Travel the World" 3D object I just created. I got the idea for a neat little object to put in my Oncyber gallery while out on a walk.
"What if I had a low poly planet with some rotating text and some airplanes flying around"
This idea captures the love of traveling and may look like a futuristic ad for some travel company in the metaverse.
So I got to work.
First, I needed some simple assets to play with in Blender. Part of me wanted to build them, but I wanted to see IF I could create something 3D and get it as an NFT to show up in my gallery [LINK], not whether or not I can create low poly objects as there are a ton of tutorials on YouTube for that.
I went to poly.pizza and searched for the planet Earth and an airplane. Oddly
Poly by Google had both assets.
Airplane by Poly by Google CC-BY via Poly Pizza
Earth by Poly by Google CC-BY via Poly Pizza
The airplane needed some work as I didn't see the point of having the landing gear down while in flight around the tiny planet [air drag and gas milage or something]. I brought it into Blender and remove the landing gear, and filling in the holes [
f key FTW].
Next, I went searching for a travel feeling font that was pretty bold as thin font do not extrude to well or show up nice in the render. I found the font named Chango on Google font and it looked pretty close to what I had in my head.
I used the trick from Ducky3D in my last post to create a text ring and then animate it with an empty [aka a single vertex]. What the text ring is parented to the empty you can animate it easily by rotating on the Z axis 360 degrees. I then put that in another empty to rotate the object into a nice place on the tiny planet.
The Earth rotation animation was set up the same way. Just import the GLB file, scale down, add an empty, and animate on the Z 360 degrees.
I had a lot of trouble with the airplane as I was animating it the same way as the text, but I found that did not work on export to GLB.
I ended up scrapping that and going with a simple empty and then moving the airplane in 3D space according to the tiny planet. This gave me the ability to export the objects location data properly.
The next thing I learned about animating and exporting to GLB is that there are layers and an NLA stack you have to contend with. If you do not "Push Down" or name the NLA layers the same you get all sorts of wonkiness in the final GLB export. I can see how this is useful for 3D games, but was frustrating to work with in Opensea's UI.
I ended up using the site for BabylonJS to troubleshoot as it showed the NLA layers I was creating with out knowing. LINK
Once I had all the animation done I setup a bunch of lighting and rendered it with the Eevee renderer. That was pretty awesome as it was super fast and meant that in most rendering engines it 'should' show up pretty close to the way I intended. I tested with Godot Engine and it looked pretty good!
The Animation Video
If you have any questions or comments, please feel free to reach out to me on Mastodon.