Lattice Cage prototype on VRChat!
Since I already spent the time to make metalness/roughness maps for the Lattice Cage, I figured I would dust my c# skills a little bit and try to port it to VRChat.
If you ignore… most of the TouchBound features really, I did a pretty good job in just two days.
I’m not quite ready for a release on Booth.pm, but I’ve put out a little demonstration world you can visit (with a VRChat account obviously), the world should work fine whether you use desktop or VR mode.
Be warned that being inside a cage will prevent you from escaping with the respawn function or from unlocking it, that is by design.
The locks are a little iffy-looking, but I mostly focused on the code and animation side of things. That’s something I still need to work on.
Lattice Cage update to version 8!
A Lattice Cage update in 2024? It is more likely than you think.
Initially this was going to be a quick little patch to add Heavy-Duty Padlock support to the Lattice Cage, since I’ve added these to the Prison Cell there was no reason not to.
It ended up being a bit more of an in-depth update as I had to slightly modify the locking mechanism to accommodate for a much larger lock, I doubled up the locking bar and extended the part that is attached to the door, no texture change.
After that was done, I figured I would also throw a PBR compatible material set and new lossless normal maps. If you are not using a PBR viewer, fear not, it will look exactly the same as it did before.
You can get the update by wearing the “update box” at the KDC Main Store. I thoroughly tested this release but do message me if you encounter any bug.
Animation! sound?
Full disclosure, I was sick as a dog yesterday (Monday part 2 I guess), I tried to make up for the time lost today.
I finally tracked down a timing bug that caused the auto-recharge to fire unreliably, so that’s one less thing to worry about.
I came up with a clean and crisp sound for the electric arcing, combined with the particle effect & animation, I think it works well enough.
Animation wise, I just started really. The medium-height hit feel serviceable, but I’m not 100% sold on it.
I’d have posted a video, but I can’t record sound with it for some reason.
Anyway, until next update~
Some stun prod code progress
I have “most” of the code that I need for the stun prod written at this point, even made a somewhat decent looking particle system! Now I just need to make those all important assets: animations & sounds.
The bugs have been “fun” to bang my head against, especially the one where all my script timing was completely off due to “yet to be made” animations missing.
I’m still not 100% satisfied with the way it handles when hitting “Doodle & Strikes” surfaces, it is kind of slow, but I don’t think there is anything I can do about that.
There isn’t much more to say for today, I’d show pictures, but there isn’t a good way to showcase this right now.
Low productivity week
I’ve been doing very poorly this week, motivation has been hard to come by.
I did start writing the stun prod scripts but still haven’t gotten around to making the sound effects and animations for it.
I have a somewhat decent particle system and a bare-bones outline of how striking works with it.
It is a little different from the riding/spade crop, in the sense that it is not going to have an “armed” strike pose like these two, instead it will have a short “strike” animation that triggers as soon as you press down the attack key, and it will either strike the person in front of you, or be somewhat “brandished” so that the prongs crackle in the air.
The charge meter depletes as you hold the attack key pressed.
So far, the reload sequence autoplays after 5 seconds of inactivity so long as you do not have a full charge. It is currently non-interruptible (I could change that).
If the battery is fully drained, attacking will trigger reload immediately.
Fallback stun prod textures
I decided that I was going to make fallback “material” textures for the stun prod after all, and it took me way too long to rework my rendering and materials to accommodate for it (PBR texture rendering is unaffected by lighting, the old material system is).
I’ve also added a little charging socket on the handle pommel, and yes, that’s the one typically used on old radios :D. This is only part of the texture, but I could make it a little modeled detail too…
Another one of those days I wish I had more to show, but this is all I’ve got.
Stun prod LODs and normal map issues
I’ve finished the LOD models for the stun prod project, that gives us a “final” triangle budget of:
- High: 3134
- Medium: 1516
- Low: 608
- Lowest: 128
Which I think is fairly decent, the “lowest” could probably go even lower if I steal a few more polygons here and there, but I’ll only do that if I end up with an LI that I feel is unacceptable. I still want to maintain a pretty good general silhouette of the object.
I ended up doing a ton of work on my PBR/ORM workflow to speed things up, and I now have a cool little node setup to export ORM textures in a single stage, fast & convenient!
I wasted a bunch of time trying to figure out why my renders in blender look a lot glossier than my texture tests in SL and initially thought it was a color space issue, in the end I just dialed down the roughness scale in SL and that was good enough.
There is an issue with the normal map and I cannot find a good way to fix it at the moment, I get some banding effect, which I assume is due to some limitations of 8bit RGB normal map encoding as they do not occur if I render my normal maps in 16 or even 32bits. I can’t use 16/32 bit images in SL obviously, and I haven’t found a good way to work with those that doesn’t make the banding re-appear as soon as I crunch them back down to 8bit.
Three options there:
- Tweak the high-poly in such a way that the banding either disappears, or becomes less visible.
- Paint over the offending area manually in Krita, if I can see them at all.
- Live with it.
I’m going to try to remember to use larger images in posts from now on :3
The sick little busy bee
As usual, my stomach disagrees with my cravings and after struggling half of Monday with cramps, things resolved themselves with an empty stomach around 4am…
I’m sticking with “some” yogurt today.
Work wise, I have some very “minor” visual updates to the stun prod. I ended up ditching the solution I had used for the decals because it turns out that those do not come out properly when baking occlusion or normals. The floating decals were a pain in the ass in general, and I ended up re-drawing them in Krita (which I’m still learning how to use) as a simple shader mask.
I also got almost all the rendering glitches sorted. I need 3 separate renders per texture, which then have to be composed together in Krita (albedo, occlusion, metalness, roughness, normal). You could probably save time by baking the ORM texture as single step… and I might end up doing that before I get sick of fiddling with my material settings.
The stun prod mesh is about 3000 triangles and uses a single PBR material in 1024×512. The last picture of the stun prod is taken within SL… It feels a lot less glossy for some reason?
I’m pondering about replacing the electrodes by something a bit more sci-fi and aggressive than the typical “blunt needle” shape, what do you guys think?
Lastly, I’ve also included a picture of some VR avatar work I’ve been doing this weekend, just… because?
First stun prod PBR attempt!
Finally, PBR rendering for my stun prod! Getting my hands dirty with the new ORM texture maps. I had to do a lot of messing around in Blender to get metallic and albedo maps baked (nothing I couldn’t handle).
The texture bake is really quick and dirty, and I’ll separate a few parts to get a cleaner set of textures.
I probably should add some discrete wear here and there, and maybe some slightly uneven shine on the black plastic?
Auto exposure makes it a little hard to take “bright” screenshots, but I’ll figure it out eventually.
Stunprod project unwrapping
I have done the bulk of the unwrapping on the stunprod today as well as some face normal cleanup (I just cannot get over how good models tend to look after I’ve done this) especially around those 45° bevels I have everywhere.
A lot of parts are going to share textures, and I’ve purposely gone for a relatively “flat” kind of unwrap to ensure that I can keep texture distortion around labels minimal.
One of the “doors” on the front I cannot mirror or even reuse because of where I’ve placed the little round LED, so I’m wondering if I should add some unique markings on those for the front and the back side of the stun prod, or if I should tweak the model to make it share texture too.
Yesterday I had some trouble putting my head into “work” mode, so here is some cool sci-fi door for the prison “map” project instead.