4 tips for building in modern Second Life

The PRIM is a lie. 3D content is not made up of cubes, it is instead more commonly made up of points and lines, Verts and edges. But for democratising the ability to create 3d content Linden Lab created a system where users could simply create cubes and link them together and it was a brilliant invention.

Linden Lab could not have predicted just how many ways Second Life users would use their PRIMATIVE invention to create astonishing things, and there lies the problem with Second Life’s ongoing struggle with performance. We build and build and build in many different ways in our virtual world with no real clues into how some things are a strain on performance. So i’m going to share some of the rules i try to stick to when building things in Second Life. These are practices i’ve picked up from my own experiments and from advice given by other creators.

 

1. Don’t use Sculpts because they are big fibbers

Sculpts are often used because they can produce very elaborate and large mesh like shapes at only 1 land impact. mainly used for large parts of landscapes or trees. You know when you have arrived in a Sculpty region when everything first appears as big grey blobs that take forever to load. Sculpts are evil and use up more computing resources than they lead you to think. If you want to use Sculpts then keep it to a minimum.

 

2. Don’t distort your prims.

Prims are still a great tool for quickly creating structures. I often use them with my mesh builds for creating wooden structures and supports for more detailed mesh. I also use them a lot for creating invisible simple physics. But Prims have a dark side and can quickly become nasty if you start to split them, make holes in them and twist them (tampering and slanting is fine). Some people find when they link a distorted Prim with mesh they see the land impact shoot up by 100, thats not a bug, thats the mesh recalculating how much resources that prim is actually taking up. An undistorted Prim is a much happier Prim.

primdistort

slicing the prim can have huge ramifications for things like physics

 

3. Only use Blended Alphas Textures when you really need to.

Did you know there are two types of Transparent textures that can be set on the surface of an object? ‘Blended’ and ‘Masking’. In the old days we only had the choice of ‘Blending’ transparent Textures. This often lead to transparency flipping where the computer could not make its mind up which texture should be in front of the other, often seen in trees. A lot of processing power goes into working out how the background looks through a blending transparent texture. Places with big forests and fields of grass covered in blended Alpha textures tend to be more laggy because of this. With the introduction of Materials Linden Lab added ‘Masking’ Alphas. This allows you to create a hard cut out  of your transparent texture that has a clear line for the computer to calculate greatly reducing the resources needed to display them. So take note of your transparent textures and always set to MASKING alpha when you can, your visitors and friends with love you for doing so.

grass

Left: Masked Grass – Right Blended Grass Most people choose blended alphas for trees and grass because it looks better, but at the cost of performance for those who are supposed to enjoy it?

 

4. Don’t use scripts that change the state of something every single second.

Each time an object has to change something it has to send a message to the SL servers so it can tell everyone else that change has occurred. At least thats my understanding of it. So if we script something to do something like say constantly change colour, each colour change has to be reported to the servers and distributed to everyone who can see that object change. Lag and rubber banding can occur if to much info has to be sent to everyone. Because of this belief, i try to create stuff that does not send updates unless it really needs to and refrain from creating things that constantly change state. That includes, colour morphing, Texture Side/face flipping (alpha swapping) and animating Prims.

 

These are my own practices which may or may not be correct but they work for me, at least i think they do 😛 If you have any tips you would like to share or if you want to correct me, fill up the comments 🙂

Adding Substance – Icarus Mk5 Pt2

Recently Linden Lab announced Sansar would support Substances. Substances are kind of the next generation of textures. In the old days you would slap a texture on a 3D model to give it colour and detail. But now we have substances which add colour and detail but also shiny surfaces, bumps and even light all in one.

A Substance breaks down into channels which can consists of Base colour, Normals/Bumps, Metalic/Specular, Hight, Emissions and more. I don’t need to go into details, all you need to know is a substance is a highly advanced form of texturing that can make it easier to get great results.

database-cover-pc_0

Messing with Substance
For the Icarus Mk5 i decided to experiment with a trial of allegorithmic’s Substance Painter software to see what kind of results i could get. In many ways Substance Painter is a cross between Photoshop and Blender. I watched a few Tutorial Videos and after one day i eventually managed to produce something i was happy with. The key to using Substance Painter for me is mastering the masking of layers. I especially liked how you can add stains to fabric using particle bursts for fun results.

substance1

Substance2

Anyways, you might be wondering why I’m doing this since Second Life does not use Substances. Well Second Life’s Materials feature does use three out of the of the five channels that create a substance – Base colour, Specular and Normals.

materials

So while i upload my Airship to the Online 3Dmodel network SketchFab which already supports Substances and PBR (Physically Based Rendering), i also import to Second Life minus two material channels rendered in Windlight or what ever LL call their rendering engine.

I thought maybe the results may give a glimpse at what the difference might be between content created in SL and that possible in Project Sansar?

comparasson

Comparing the Airship rendered in Second Life (left) minus two channels, and in Sketch Fab (right) with all five substance Channels & PBR.

 

You can check out the fully Substanced Mk5 on my SketchFab account embedded below.

Icurus Mk5
by lokieliot
on Sketchfab

Virtual Steampunk Airships – Icarus Mk5 Pt1

Forget Sansar or High Fidelity, there is still way to much stuff i want to do in Second Life, new clothes, new buildings, new experiences. It’s hard to decide which one i should start on next but this week i began work on a new version of my Icarus Steampunk Airship.

Icarus Class Airship MK3 taking the Goonies on a flight over i cliff top town.

Icarus Mk5
To my Goony friends in SL the Icarus Airship is to me what the Batmobile is to Batman, the Tardis to the Doctor and the Delorean to Marty McFly. Countless adventures have been had boarding the ship.

The first iteration of the Icarus Airship was built back in 2006 loosely based on the film Star Dust. Using some hover vehicle scripts i found in a freebie box i have slowly over the years, refined, improved and figured out how the scripts work.

original

In 2011 i made the jump from Sculpts to Mesh creating the Mk4 using very limited new modelling skills. I didn’t even use Blender at the time i used some modelling software called Silo.

Since then i’ve got quite a bit better at 3D modelling and Second Life has added material channels for more detailed content, so it was about time i updated the Icarus Airship. I also hope to add cannons for the first time allowing the ship to be used in my Battle Balloon game.

IcurusMK4

The Mk4 is currently 36 Landimpact. Would be nice to keep the Mk5 around that size but with more detail.

Everything about this version should be better than the Mk4 from modelling, to texturing, its physics and scripting. There was a lot of stuff i did not quite understand when i made the Mk4 such as how to keep Land Impact low.

Mk5_1

A key to quickly modelling can be the Mirroring Modifier. It reflects one side of the object meaning half the work is done. It also applies to UV unwrapping, so if you unwrap one side then the texture will be reflected on the other side also when finished.

Mk5_2

Mk5_3

MK5_4

Adding a lot more detail to this version as i would like it to sit happily next to the Battle Balloons and not look less quality.

MK5_5

 

Part 2: Adding Substance – Icarus Mk5 Pt2

Exploring the future of my Avatars Shape – part 5

It has been nearly three months now since my last update on my Mesh Avatar, so where are we?

The Pixar Magic

Well first of all i explored having a more stylised avatar that was more characteristic of Pixar or Disney. This started off with some very cool results in blender and creating blend shapes for facial expressions was great fun. But SL can not transfer blend shapes to mesh avatars so i had to decide which fixed expression to use. I tried smiling, toothy grins, determined eyebrows but in the end settled on a sort of vacant whimsical faint smile.  Recently though i read that Linden Lab are actually looking into ways to allow creators to upload expressions with mesh avatars. Wether this will be for SL1 or ‘The New Thing’ only time will tell.

Another thing that took a while to get right was eye size and chin shape. It does not really matter how the model looks, but when you stand with a group of friends in their old default avatars there is a sense of being an alien and i felt ugly. in the end i had reduced the eyes to what i believed to be an acceptable size that did not freak people out.

PixarStyleLoki

First experiments with creating a pixar/disney style head had rather large eyes but showed the sort of expressions possible perhaps with HyFy.

 

 

animeavatar

 

web_54419c03f8a1ec20a8000001

Even without expressions the bigger eyes sometimes do a great job of conveying emotion.

I now really like this anime style avatar as I think it has real fun character and looks pretty dam kool. Im tempted to wear it as my full-time avatar, but I’m too loyal to the old face of Loki 🙂 For High Fidelity though i’m definitely going to be using the Anime model along with the blend shapes to see if i can create a fun expressionate avatar. He’ll be like a dark haired HyFy mirrorverse Loki with black hair and toothy grin.

 

Letting others join the fun.

With the Full anime avatar finished it’s now time to move onto making it possible for others to use these avatars. It’s not a simple task of just giving people the avatar though, as others will want options to make their avatar unique and i need to supply them with those options as easy as possible.

Some ideas i had back when i first set out to make a mesh avatar have changed, either because they are too hard for me to do, or too complex to expect others to do.  I’ve also tried to think of different ways to make things possible. In the end i settled on a system i call the ‘SKNpod’.

SKNpod

 

The Good News

On release all my mesh avatars will be completely free for everyone to pick up and use. There will be four Mesh Avatars in total; Teenboy, Teengirl, Kid and Anime. There will be a free mannequin blender file from which creators can make their own clothes for the mesh avatars.

Each avatar has a built in menu accessible from the ankle. This will bring up options to change the visibility of your avatar under clothes you wear. You can also choose to have hands gripped or relaxed. You also have advanced options to reset your avatar or SYNC it with the SKNpod.

Although the avatars are free, in order to change skins and skin tones users will have to purchase the SKNpod and SKNpaks. With the pod you will be able to change your avatars Skin tone and also replace your avatars Skins with SKNpaks that i will be creating. If you are about to go out and play in the mud, you can step on the SKNpod, drop the dirty SKNpak on the small fold out table, click it and POW, your skin is now dirty. (sort of the opposite to having a bath)

The Avatars skin appears wet automatically if you go under water and slowly dries out in the sun. You can also overide and reset the wet feature for swimming pools.

meshykid_Tone

When you stand on the SKNpod, the camera pans round and the front flips down with a colour palette, simply select the colour then click the coloured square to transfer to your avatar. HULK SMASH! PUNY GOD!

 

meshykid_SKNpack

You will be able to collect SKNpaks for different occasions. All you do is place the SKNpak on the flip down table while you are stood on the SKNpod then click the SKNpak to transfer the new Skin to be worn.

 

menu

Clicking a secret point on your avatars ankle will bring up a menu of options to better fine tune your avatars look.

The Bad News

Seeing as this is a totally rebuilt from the ground up avatar it unfortunately will not be compatible with clothes created for the old SL default avatar. The Joint Rigs of the armature is different meaning you will have to settle for what i and others make for this avatar shape.  Sometimes you might find trousers and shorts that work, but its rare.

You can’t simply wear the meshy kid avatar with your default avatars kid sized shape. You will find it shrinks below what you currently are. You will need to record your avatars facial settings by number and create a new avatar shape from scratch to use with the mesh.

There is a viewer bug. When you take off or swap the joint rigged mesh avatar, it will bork your avatar and the only way to fix it is to relog. This is a problem that effects all joint rigged avatars apparently, so Linden Lab are working on a fix. They almost did fix it too in the latest maintenance viewer, so hopefully it won’t be long before this is no longer an issue. But i can tell you its added 10 times more work for me since overtime i upload the mesh avatar i have to then relog.

 

Creating for the old school crowd.

Now that I’ve been using this mesh avatar for the past three months i can’t take it off. If i do take it off i see my horrible old  blobby wrists, block feet, sloped shoulders, chunky arms. The Default avatar simply was not designed to be shrunk into kid size. But now i’ve created a  way to work around it. Creating clothes for this new mesh avatar is a breeze since i don’t have to shrink and smooth out the bumps, and the results are always better than anything I’ve done before. Plus armed with a better understanding of LSL scripting i’m able to add fun features to clothes.

clothes

Clicking the V4 T-shirt’s back will allow you the option to have with or without Longsleeve shirt under short sleeve shirt.

But i still have to think about my friends who don’t feel right in a mesh avatar after all i’m first to admit that my Mesh Avatar shapes will not suit everyone. So i have to continue offering my clothes designs for the old default avatars alongside the new mesh avatars and thats the next part of the project. I’m in the process of figuring out the easiest ways to create a piece of clothing for my mesh avatar which is already super easy, and making the same piece of clothing for old lumpy default avatars which in comparison is very very hard.

messmesh

Being an oldschool kid in SL can get seriously Meshy.

Originally this last part of the process was just an afterthought, but after a few unsuccessful tests I’ve now decided i really need to sit down and think it through. I have a few ideas. It just seems ironic that after setting out to replace the old avatar with a new better one, I’m back where i started in a way.

Getting Wet Behind The Ears

So amongst the excitement of Experience Tools and Skill Games announcements, something else happened this week. LSL Materials Parameters.

These are basically new commands for scripters to control the normal and specular mapping of an object. This is great for creators as material mapping, especially specular mapping has allowed for some very cool effects

You can make objects look more metallic and other objects wet or damp. In New Babbage i used specular mapping to make cobbled sidewalks look wet and have puddles. Windows reflect light like proper glass.

What adding LSL scripting control to materials allows is the ability to script the normal & specular map for certain changeable scenarios.

My first experiment with the new LSL Parameters was to create clothing that appears to get wet when you enter water. Some people had tried this before by simply changing the texture but now we can change the actual specular shine of the object for a proper wet look.

I didn’t stop at just clothes though. Since I’ve been working on a replacement MESH avatar body, i had a go at making the whole body look wet.

stages

Stage one: DRY… Stage 2: WET!… Stage 3: Drying out…

 

The results were very promising. When you enter water the clothes and body become wet and when you leave the water the clothes and body gradually become dry again. The script itself is as low on server checking as possible, the last thing i wanted was to add scripts that cause lag. I’ve yet to consider wether to make all my future clothing ‘wet’ enabled or just the summer range.

 
Of course you need to have advanced Lighting Model enabled in your viewer before you can see all these kool extra effects, and a year after Materials first appeared many still are unaware of this feature. Some simply don’t have it switched on due to having old computer equipment while others turn it off because shadows grind everything to a halt unaware you can switch shadows off. I have a pretty up to date mac hardware and shadows kill my experience. Shadows should have it’s own separated tab so it does not scare people away from switching on advanced lighting.