USCSS Conrad 8 : More building and lighting

Despite the lack of updates the work continues on the Conrad. Over the past few days I’ve been polishing off a lot of the scripts and builds that were just roughed in. Now all the doors work, trigger the correct lights; the cargo lift is functioning and the ambient sound effects system is coming along nicely.

The sound in particular is very important to the atmosphere. Despite my familiarity with the build I’ve actually got properly creeped out a couple of times doing a walkthrough with the lights out and the sounds on.

I’ve fleshed out the starting point of the experience at last. You begin in a docking tube extended from the USCSS Montero, a salvage ship, to an exterior airlock of the Conrad.

w1

First view into the Conrad

First view into the Conrad

I’ve also added a lot more detail to the airlock corridor – texture work to add a patina of dirt and a lot of extra normal map detail to stop the walls looking boring and flat.

w3

There’s also been a fair bit of work on props for the interior, the largest being an escape pod system:

Room for everyone

Room for everyone

Hmm...looks like someone may have got out

Hmm…looks like someone may have got out

Unfortunately as things go on it looks like I may have to abandon some of the things I’d planned for this build. I need to get it into an LI of less than 700 and I’m nearly hitting half that already without even really beginning on the lower deck yet. I’ll have to see what I can save with a bit of cunning linking here and there and maybe the odd rebuild of a prop or two.

I’ve had a fair bit of success in hitting my LI targets for the props – I’ve gone over a few times, but on the whole things have worked out about as well as I could expect.

There’s still experimental work going on and I’m still finding more efficient ways to get the effects I want.

 

Notes on lighting

As I’ve mentioned before a big part of the idea behind this build was to see how far I could push SL’s Advanced Lighting Model to get atmospheric effects. It’s a powerful system, despite a number of flaws and peculiarities, that I just haven’t seen used all that much around the grid. There’s not much call for it when you’re making clothing either 😉

I’m mostly making use of projector lights – if you haven’t tried them yourself or seen them elsewhere they act like a slide projector, shining an image into the scene.

For maximum effect they need to have something to project, of course. To get projection textures I’ve been making realistic physical copies of actual lights in Lightwave, creating models with emissive filaments, reflectors and lenses, then capturing their light as a baked texture. I’ve found that a lot of the time the best effects come from introducing some imperfections into the model – a misaligned filament, imperfect lens or smudged reflector.

These textures only need to be low-rez most of the time but the subtle texturing really seems to add something to the scene. It certainly introduces a lot of lovely soft edged shadows into the build, so I can’t complain.

I’m including a few of the textures I’ve been using in this post for you to have a play around with. I’m releasing these under a CC Attribution NonCommercial ShareAlike 4.0 International license at least until the Conrad build is complete. Have a play for now and wait for the free components I’ll be releasing when it’s all done.

Luminous tube cluster

Luminous tube cluster

Point filament torch with imperfect lens

Point filament torch with imperfect lens

Linear filament with faceted reflector and perfect lens

Linear filament with faceted hemispherical reflector and perfect lens

Linear filament off-centre in faceted hemispeherical reflector with imperfect lens

Linear filament off-centre in faceted hemispeherical reflector with imperfect lens

 

Advertisements

USCSS Conrad 7 : Computer interfaces

The Conrad is a bit more than just a backdrop build; there’s a story here that I want to tell. The general idea is that you can explore the Conrad, enjoy the ambiance and discover the fate of her crew through interacting with the environment.

I’m sure anyone who has played any games in recent years is familiar with the idea of finding books, logs, or other information scattered about the world. Each game presents it in a different way. This is the mechanism that I’ve settled on for telling the story of the Conrad – SL doesn’t really give me a lot of choice there, but I guess if it’s good enough for Skyrim and Deus Ex it’s good enough for me!

The question is: How can I present it in SL in a way that both works to tell the story and doesn’t break the immersion in the scene?

I’ve tried several different options. The simplest for presenting some text to the user is for an object to give them a notecard, but that really seemed to take me out of the scene. “Hey, here’s a glaringly obvious SL mechanic!” Notecards are also very plain. I can embed pictures, but only as a clickable link. There’s no bold or italic and no control over the font at all. I definitely want richer text than notecards can offer.

Next I went down the route of using web media on a prim. On the face of it this was ideal, but this too came with some problems. First is that I know a lot of people either disable this feature entirely or set it not to auto-play. Sure, I could front-load the experience with instructions to turn this setting or that setting on, but I want to keep that to a minimum. The second problem is that you always get that floating media toolbar over it, something that again breaks the immersion.

What I’ve settled on so far is to use a prim, texture and script based system to present computer screens in the build with interactive elements:

Conrad PC_001

The screen in the picture above has an LI of 4 and contains two interactive windows displaying transcripts of voice logs along with other data. The documents are images, so I can construct any degree of “richness” for them in Illustrator – there are limitations on resolution, of course, so there’s only so much I can get in there but it’s accommodated everything I’ve written so far well enough.

The windows themselves are interactive in that you can scroll up and down the documents they contain using either the up/down arrows on the scroll bar, the top/bottom buttons or by just clicking on the body of the document and dragging it up or down.

The scrolling is accomplished by using llDetectedTouchUV to track mouse clicks and drags and then llOffsetTexture to shift the content. There’s a little mathematical fiddling in the script to preserve the correct aspect ratio of the content no matter the shape of the window prim.

It’s not perfect but it checks a lot of boxes on my wishlist, particularly:

  • Rich text – no limitations; I can do anything I like in an image.
  • Immersive – no floating toolbars, no SL mechanics, no nothing; you just reach into the scene, touch things and the things react.

The downsides are that the size of the document is going to be limited by the maximum resolution of SL textures. There’s only so much information I can fit into that space but my experiments confirm that it should be sufficient.

I intend to use this technique in several places – there will be a combination of text sources, on desktop computers, PDAs and other devices scattered around the Conrad. The build is designed to lead you on a particular path through it but knowing what a contrary and awkward kind of person the average SL user is (but I love you all, really 😉 ) I’m trying to keep the narrative coherent enough that you can piece it together even if you totally ignore the sequence cues.

 

USCSS Conrad 6 : Facehuggers 101

My last post showed that one of the props I’ve built for the USCSS Conrad build was a Facehugger. I guess that means the cat’s out of the bag about the whole thing being an Alien tribute.

Making the Facehugger was a little out of my comfort zone but ended up being a lot less trouble than I expected for such a complex organic shape. In this post I’m going to run through the steps I took to create the mesh and textures. A lot of this is going to be specific to the tools I use, like Lightwave, but I’m going to talk in general terms as much as possible so that it’s applicable to whatever tools you’re using (hint: not Lightwave – I think I’m the only one left using it for SL!).

Building the Mesh
The Facehugger has a symmetrical structure; on each side there are four digitals (or “legs”, if you’re not a synthetic – I’m looking at you, Ash), a breathing sac and half of the tail. That gives us six things per side, so I began with a short twelve sided cylinder. I pulled the vertices at the back out to give it a more elliptical shape, and wider faces to serve as the roots of the breathing sacs.

The first four polygons on each side I extended out into the legs. At this point I’m just roughing things out so I just extended the edges using Lightwave’s bevel tool which allows you to extend out a polygon along its normal and scale the result at the same time. Three applications got me legs with two very basic knuckles on each.

I similarly beveled out the extended polys behind the legs to form the breathing sacs. Another bevel on the top rounded out the back of the creature a little.

Mesh 01

Now that I had the shape of the creature roughed out I started working with it as a subdivision surface. Hitting Tab in Lightwave toggles between mesh and subdiv, so I was switching back and forth, refining the mesh to create a more detailed subdiv surface.

I added more detail on the bottom of the creature, beveling it into a hollow then scaling the vertices inward and beveling again to create the hollow proboscis.

Mesh 02

This looked like it was going in the right direction so I extended the tail, finalising the overall shape of the thing.

Mesh 03

 

Next up it was time to refine the detail of the Facehugger. This involved a lot of switching in and out of subdiv mode, dragging vertices around and scratching my head while looking at reference material.

The biggest change was the rebuild of the legs. They needed to have knuckles rather than just be straight. Everything after the end of the first poly was amputated and rebuilt with boxy joints that would pull the subdiv surface out into the knuckles I needed. This left the base mesh looking a little lumpy,

Mesh 04

but it worked a treat for the subdiv surface.

Mesh 05

At this point I was happy enough with the basic shape of the subdiv surface so I froze it into a mesh (Ctrl+D, in case you were wondering how Lightwave rolls) and looked to the UV maps.

There’s just no good way to unwrap a mesh this convoluted. You can break the thing up into dozens of UV islands that make efficient use of the map space at the expense of making the thing practically impossible to work with. In the end I elected to split the mesh into top and bottom halves, unwrap each separately and then plonk them down next to each other. This ends up with a fair amount of dead unused space on the UV map but it’s a map you can work with in 2D painting packages quite easily. Everything’s swings and roundabouts.

Mesh 06

So, now things need more detail. Time to break out Zbrush!

I exported the UV mapped mesh as a Wavefront OBJ file (I know Lightwave has GoZ now, but it just doesn’t work in a useful way) and imported it into Zbrush as a new tool. There’s not a lot interesting to say about the Zbrush process – if you know Zbrush then you can imagine it all already. If you don’t, well, nothing I can say will make it clear.

I moved from mouse to the Wacom tablet and added detail to the model in Zbrush, ending up with a super-high poly model with ribbed flesh, extended knuckles and all kinds of lightly nauseating detail around the proboscis on the underside. I could probably have accomplished the same results in Sculptris but I was feeling crash-averse that day and opted for Zbrush.

Mesh 07

Texturing
I exported the high poly model from Zbrush and used that with the original mesh to create a normal map in xNormal. Both models were in Wavefront OBJ format which xNormal likes well enough. A little fiddling with the settings got me a clean normal map.

Texture 00

 

I fed this normal map to Knald and it obligingly generated me height, concavity, convexity and ambient occlusion maps from it.

Texture 01

There’s a lot of useful information in these different maps – layering them together in a 2D package like GIMP with different blend modes can create some interesting effects. I played with this for a while until I got something I was happy with, then painted in more detail like the red, fleshy underside around the proboscis. This comprised several layers: colour, highlights, blue veins, red veins, more highlights. I added some more colour with a textured brush over the top of everything to produce a diffuse map for the model that, I think, worked pretty well. I wasn’t too precise with things since a little randomness enhances the overall organic feel of the model, I think.

Texture 02

I also used a similar process to create a specular map that gave some low shine over the creature’s body and a slippery gloss around the fleshy underside.

The final stage was to use Lightwave to arrange the low poly model in several different poses as required for the overall build – curled up and dead, flat out and dead (and more, perhaps not so dead 😉 ).

xFinal01

 

Uploaded to SL this looks just as good as I’d hoped when I began the build. The land impact is relatively high at seven, but with a shape this complex I was never going to get away with much less while preserving the silhouette – the Conrad build has a heavy emphasis on lighting and shadows so the silhouette of the model was quite important to me.

USCSS Conrad, part 4

Work on building the Conrad continues. The past day or two has mostly been spent making small props to flesh out the build. Little things like plates, knives, forks and mugs for the lounge area can be surprisingly time consuming.

Of all the things I’ve built I think making a low poly fork that still looks good has been one of the most challenging, and it’s just a tiny detail in the scene. Possibly the only thing worse is a pair of scissors.

I’m releasing a small freebie with this post: A normal map for a poster. When used on a flat prim it gives a hint of some residual folds on the surface. Makes an otherwise flat poster a little more interesting.

Poster Normals

Poster Normals

Poster normals in action

Poster normals in action

In honour of Linden Lab’s new ToS for SL I’m releasing this texture under the special “Kat’s ‘Go Mad'” license. You’re free to use it for any purpose, anywhere, any time so long as you wear underpants on your head while working with it and mention the word “Wubble” in the attribution.

Medbay has grown but there’s still a lot of work to do there to flesh the place out and make it look lived in. Multiple medical units look great when placed next to each other, casting light from their screens onto each other.

Medbay Expanded

So, still having fun with this build. 500Mb of disk space, 332 files, 143 LI and counting…

USCSS Conrad, part 3

I’ve been working on the props for the Conrad‘s medical bay for the past day or so. My life has been full of not only subdivision surfaces but wipe-clean ones as well.

The result of this is a few bits and pieces, the inevitable cryo-sleep pods and the high-tech medical bay’s treatment beds with their integrated CT scanners.

Inevitable, I tell you

Inevitable, I tell you

I’m trying to keep the number of textures to a minimum for most of the build, relying on materials properties that are re-used all over the place. This works well enough on the surgically clean upper decks of the Conrad but the lower decks are going to have to use more, I think. I apologise to your graphics card in advance.

They look good enough when placed in the scene with the right lighting, I think, so we’ll see. Everything’s a balancing act in SL.

Conrad_Medbay

 

The main lounge is shaping up nicely. I’ve made some chairs and tables that I’ve carelessly forgotten to take pictures of, but trust me when I say they’re awesome. Totally.

I’ve finished the lighting rig for it and I think it’s created a nice blend of impenetrable darkness and muted soft lighting that is suitably mysterious. There’s still work to be done fleshing out the props in the room – this project is giving me a new appreciation of the people who create the environments for games; there’re a million little things that need to be done.

Conrad_Lounge

 

More on the USCSS Conrad

Work on the USCSS Conrad proceeds apace. If I had some kind of plan for this I’m sure I’d be able to update you with a series of tightly focussed posts that home unerringly in on a final product. I don’t have a plan, though, so I just built a load of random things and shoved them onto the grid.

 

Nauseating Alien Column:

This morning I got tired of the clean lines of the Conrad itself and decided to branch out into some alien stuff. There’s going to be a fair bit of this but I started with a fairly simple floor-to-ceiling column of glistening goo. Starting with a twelve foot shaft of gleaming mucus is a plan that has served me well in the past so I saw no reason to change now.

Really alien. Also slightly nauseating.

Really alien. Also slightly nauseating.

This started as a simple outline model in Lightwave that I then imported into Zbrush. A little work with the Wacom tablet produced a high poly model (around 800k polys) and a lightly modified version of the low poly model. I baked out the normals from the high poly and ran them through Knald to get an Ambient Occlusion and Convexity maps.

I took these maps and layered them over a dark green background in GIMP. A few copies of the ambient occlusion map added some depth to the surface in multiply blend mode. The convexity map went over the top in screen blend mode to highlight the convex veins in a lighter colour. It produced a diffuse texture that seems very effective when combined with the normal map and a high specular shine. I’ll likely be using this kind of cycle to produce other bits of alien architecture.

The low poly model went back into Lightwave for further decimation using the brutally effective qemLOSS3 plugin and then was uploaded to the grid for a final LI of 3, which isn’t too bad for the size I’m making them.

 

Casualties:

Next up were a couple of casualties, preserved under Aleph’s excellent antibacterial sheets.

Fresh as a daisy and only slightly dead

Fresh as a daisy and only slightly dead

These were a fairly quick build. I used Poser (I’m still using the copy of Poser 4 that I bought in, I think, late 2000. It’s a miracle it still works) to make a couple of posed figures. I fiddled with them a little in Lightwave (what’s a little dismemberment and decapitation between friends?) and then dropped a simulated cloth across them both.

Another quick cycle through low and high poly models got me some grid-ready meshes and normal maps. A few minutes in Illustrator made the diffuse texture – those Aleph guys sure like to brand everything. They’re not subtle like Weyland-Yutani.

 

Projecting Screen:

The Conrad is going to be dark. Very dark. It’s my plan that the final version will require users to wear a small HUD that uses RLV to control their Windlight environment settings (the SL experience tools may also be able to do this but since they’re not available it’s gonna have to be RLV). While building I wear a simple version of this HUD that I can turn on and off with a click in order to test the experience. With the HUD active there is no ambient light at all and only things lit directly by in-world lights show up. This incredibly dark environment lets subtle lighting effects really show up very well.

A lot of the effort in this build is going into lighting – I need to get something that will let me record video of SL proprly so I can post something that shows the scripted lighting effects I’ve got in place already. I’ll probably talk about these in a later post once I’ve expanded them a bit more.

One of the lighting effects I want to use is having active display screens project their light into the scene. This is pretty simple to do with projector lights but nothing’s ever quite as straightforward as it seems.

Conrad ScreenProjector

The pic above shows part of the main lounge area of the Conrad with the light from a status monitor illuminating the walls and a door. The screen is showing a simple image of ship’s status (long story short: not good) but also projecting that image into the scene.

To get this effect I drew a stark black and white image for the monitor to display in Illustrator:

Decal Ship Status-01

I’m sure it’ll buff out

To make this image into something useful I needed to run it through a few GIMP filters and then flip it horizontally. In SL we have some very nice fine control over images applied as textures (we can scale them, flip them, tile them etc) but we have none of that flexibility for light projector images, so we have to build the image for use as a projector and then use the texture options to make it look right as a texture.

Upload Decal Ship Status

As you can see the final image is a bit glowy and a little pixelated and mirrored left-to-right. If used as a light projector image it will be “right” for being the projected light of the original unflipped image. It’s also squashed into a square format for uploading to SL, but that’s really incidental to the real work.

This image can be used directly as a light projector image. To use it as the texture on a mesh you need to change the horizontal scale to -1.0, flipping it back to the right way round. Set the surface to full-bright, add a little glow and you get a really cool effect that casts subtle and correct light into the scene.

 

So, that’s the state of the USCSS Conrad as it stands now. Land Impact 52 and growing…