captainbigbutt
captainbigbutt
CaptainBigButt
693 posts
After the first release of Tda Hatsune Miku Append on January 1st, 2014, I began working on MMD ports and edits for learning purposes. Here you can track progress on the current models or read my excessively long explanations about tricks I use in Source. Every little bit helps! The header image was created by Sculp in Garry's Mod.
Don't wanna be here? Send us removal request.
captainbigbutt · 7 years ago
Note
Hey there! I was wondering if you’d ever planned to make an IA TDA model for L4D2? I love all the others very much (currently have Luka, Haku, Teto, and Akita) in my game, but I was just wondering if you’d ever release any other Vocaloid mods! (Maybe even Hagane Miku for Ellis? Just a thought!!)
        I’m not entirely sure to be honest. I actually started on both ONE and IA in early 2015 but scrapped both of them for reasons I don’t recall.
Tumblr media Tumblr media
        I even had icons made for ONE but I never really finished anything. Anything I ported to Left 4 Dead 2 was first porting to GMod but IA already exists for GMod. I always just did this for one, I don’t really like overriding other peoples’ works.
Tumblr media
4 notes · View notes
captainbigbutt · 7 years ago
Note
I wouldnt say it was unecessarily long, it was fun to read all that/kinda scary since I'd maybe like to learn how to port models myself, and I have a gig or two of compressed MMD models to work with. At the very least, I'm glad you enjoyed doing all of that stuff and I'm definitely going to use this post to look at in the future, and your lack of desire to port more models is understandable :)
        It’s not quite the monster you may think it is, but it’s certainly not as easy as some may think it is either. It mostly depends on your eye for art. The very first playermodel I ported didn’t even work and was scrapped. Someone essentially held my hand and showed me how to rig in Milkshape 3D and after sitting on it for most of the day it wouldn’t so much as compile. After joining the aforementioned server I was able to finally port one of my first playermodels which was Tron Anonymous from the game Tron Evolution. It took a lot of messing with, was built from crudely assembled QC files, had incorrectly assigned textures, had a poor rig, and so on. I tried to at least remain conscious of these issues and fixed it over time. This is what the model looks like today.
Tumblr media
        What you see was done before the workshop existed and someone else already uploaded their own port. I’m very happy with the way the materials turned out, but they didn’t start out that way, they happened after tinkering with them. I recompiled and re-uploaded the model to the server several times over. Even now I’d much prefer to rebuild the model from scratch if I were to ever take a look at it again. The materials are just about the only thing the model has going for it and that’s because when I went back and redid them I had an in-game render of the model in its original engine next to it while I tweaked values. It took me so long because there wasn’t a whole lot of documentation, tutorials, and so on when I started. Even now if I were to start all over I’d be largely in the dark because I’m one of the few people who doesn’t use Blender which is also why VRChat took me a while to figure out.
        With all that said, there’s a reason I don’t mind teaching people even now, but I can only teach people so much when they use a different modeling program. I certainly did have to sit back and figure out why on earth the model was broken for the 5th time but the majority of it was just checking out of reality and going to work for several hours. Every time a complicated issue was tackled I knew how to deal with it in the future. As long as you’re willing to put the effort in and go in with a good attitude it can be far more fun than it is menacing.
2 notes · View notes
captainbigbutt · 7 years ago
Note
Oh to clarify, I meant the official Gumi v2/v3 models. Like her append model is different than her V2 model where she has the goggles, orange skirt and top, her v3 is the green top and orange skirt that kind of stuff. I love seeing your ports and I understand about not doing it. I dont even know where to look to commission someone to do it.
Tumblr media
        I know. When I refer to my own models, the v1 models were simply how they worked at the time. I ported Miku for a community I was doing development for in 2013 and at the time the quality was pretty good compared to the average model. It had jigglebones, lightwarps, and so on. The model (middle) was the result and I posted it on January 1, 2014 to the steam workshop. I’d been doing models for several years prior but this was my first workshop release. The amount of downloads shot up and development on the server slowly resumed for a little while after. I decided to try porting another model which would be interchangeable with Miku using the store we built by just changing the head, hair, and skin variant. Sever development stopped again so I ended up releasing a separate port of Neru and later Teto. People were very happy with the models since there were hardly any anime models at the time that looked very good. In fact this is the first Miku model I ported:
Tumblr media
(September 6, 2013)
        Working on the append models was partly to see what the custom store system we were building could handle. Development went into limbo again so I moved on and by then I was kind of just doing it while I tested some things early on.
        I kept getting complaints about the stretched torso but at the time there wasn’t much I could do about it so I brushed them off. After I had a few append models and ported a couple to L4D2 at a friend’s request, I decided to look into what ways I could improve the model. The first thing that really bothered me was jigglebones getting stuck backward after quick rotations.
Tumblr media Tumblr media
(March 16, 2014)
        This was an engine issue and as it turned out there was a fix in later branches of the engine. Garry had left the GMod to a couple of other developers while he moved onto Rust. One of them, Kilburn, was very nice and ended up implementing the fix for me so we no longer have to deal with this on any model. After that I went back and manually remade the hair meshes for Haku and Luka both. Here’s some pictures I took of the process.
Tumblr media Tumblr media Tumblr media
(April 3, 2014 -- the old mesh is on the left in the picture above with the remade one on the right)
Tumblr media
(April 10, 2014 -- the new bangs are on the left -- sorry about the difference in scale but the picture was taken 4 years ago so I can’t redo it)
        Around this time is also when I made the first Gumi and Rin experimental models. Neither looked all that great and were later scrapped.
Tumblr media Tumblr media
(April 1, 2014)
        The hair looked awful and I wasn’t entirely sure what to do about it. She was actually the original planned fourth for the Left 4 Dead squad before Luka and Haku were used as fill-ins.
Tumblr media
(April 23, 2014 -- the original Rin append, scrapped)
        Materials were next. I couldn’t figure out what to do with the spheremaps since I had no idea what they even were at the time. Several years later I ended up using them in the shader I built for Unity / VRChat.
Tumblr media
(April 23, 2014 -- this is where I learned that the Tda models were actually built to have a flat lightwarp on the face)
Tumblr media
(April 28, 2014 -- this was taken before I started on proportions so you may notice her shoulders are still stretched)
        Speaking of proportions, I finally decided to look into them. I’d been getting complaints over the last few months but I could only explain them away as how it had to work in Source. The standard method at the time was to force the model to fit the bones. Doing it this way would at least give you more control over how it was stretched out whereas rigging the skeleton to it would result in an even stranger looking appearance. I didn’t think it could be done but I had two ideas after doing a lot of digging. I was either going to find a way using poseparameters or see how animation blending worked. The first testing for it began in June and I started looking into helper bones as well. Here’s several of the screenshots I took during the experimentation phase:
Tumblr media Tumblr media
        The results were certainly bizarre -- but they worked. That alone meant a lot. I also happened to be working on classic miku around this time so I used her for testing how hands had changed after spending a few days fixing some problems with ragdolls that proportion adjustments brought along.
Tumblr media
        I posted this picture some time in July of 2014 here on Tumblr. All of these hands are in the same closed-hand pose. Rigging hands is pretty easy but it was a very delicate task when you had to handle it the old way. The hands on the left were how they looked with the very first rig. The center was after spending a lot of time manually trying to tweak things into place. I was very happy with the improvement at the time. The image on the right is how the hands looked after using the proportions method for the very first time.
        All of that just to get the models where they are today and I had a blast doing it.
Tumblr media Tumblr media
You might recognize the image above, but it’s not the same one posted before (compare the shoulders)
        After releasing the information I had on proportions along with the source files for Miku append proportions became a pretty standard thing and anime models filled the workshop. It was very cool to see what people were able to do now that they had the opportunity to make them look good, but there’s also so many slapped together and thrown onto the workshop carelessly that it also hurts at the same time.
        I’m sorry for writing such a long post which was mostly unnecessary but it’s fun to remember all of the neat stuff I was able to learn. Even now I miss having new stuff to look forward to experimenting with. In any case when I refer to v1 models I mostly refer to the models before the material and proportion fixes. The v2 models were released separately due to compatibility issues and contained the fixes mentioned above. The v3 models had QC files rebuilt from scratch but beyond that I didn’t have a lot more I could do with the models. I considered features I could use with lua but was never able to find a programmer. I had some features partially working on my own such as custom limping animations with low health, adjusted facial expressions also based on health, idle flinches like stretching or scratching, and a handful of others. Most of these didn’t work fully and had compatibility issues so the code-based addon went into limbo since several years had passed and I still never found a programmer. The robot models were to have custom voices based on the environment, interactions, and were to even be able to have conversations with each other. Some of it was even already working but I didn’t know enough coding to get the more complex parts working, especially without breaking other things.
        Through all this time many models were scrapped and Gumi is one of them. The append models were largely for testing purposes very early on and plans to do classic variants of Teto, Haku, and Luka all existed. I moved on from GMod when I’d run out of things I could put time and effort into learning or coming up with. That and after releasing the proportions and lightwarps stuff, so many models were being tossed onto the workshop that me porting a model would likely mean I’d be overriding one someone else already ported, even if I started on it already. I worked on Black Rock Shooter on and off over the course of a couple of years trying to find how I could make her look good in the engine while also trying to find a good way to handle the cape. Eventually I’d spent so much time on it that someone I taught proportions to had slapped it together and had it on the workshop before me. There wasn’t much I could do, after all I’d had the model in a WiP state for probably about 2 years. It certainly hurt though. Most people honestly don’t even notice the difference in quality so just about anybody who puts anime models on the workshop could probably get the model done at the very least.
        Perhaps I’ll return to porting for GMod if I ever find an interesting server to play on again, but at present porting for a game I don’t even play doesn’t serve much of a purpose. I think that’s enough ranting for now.
3 notes · View notes
captainbigbutt · 7 years ago
Note
Hey, I'm wondering what the model that you've been posting for the shader test is from?
        They come from a Chinese moba and I don’t recall the name right now. You’re more than welcome to ask me again on Steam and I can check when I have time. The characters are all based off of historical figures. The two models I used while building the shader were based on Napoleon and Stalin.
0 notes
captainbigbutt · 7 years ago
Note
oi mate think youll ever do a port of Gumi v2 or v3?
       I don’t use Tumblr much at this time. If you want to contact me it’d be better to add me on Steam where I accept just about all friend requests.
       With that said, back when I had the v1 models and before I came up with the proportions workaround I had indeed s tarted on a Gumi model but it didn’t look that great and I ended up moving on to the v2 upgrade instead and never finished it. If I were to port her now I’d restart from scratch but I’m not actively working on anything for GMod. I’m considering assembling my OC in Unity for VRChat but since I don’t play that as much anymore either I haven’t quite bothered yet.
       At present the v3 system is mostly just further clean-ups to the QC ad additional splitting on the model and source files modularity. In other words not much that would affect how it actually works in-game. It also consists of a lot of unfinished code that I started on but never finished since I’m not really a programmer myself and I never could find one.I still wouldn’t mind seeing it in action some day but right now it’s largely just an idea.
       With all that said, I’ve played GMod for over 10 years starting with GMod 9 when it was free and considered a mod rather than a standalone game worth $10. I did modeling for a large portion of that time, probably also stretching over 10 years if not at least to 10 years. I had a blast learning stuff but I don’t have any fun servers I know of that I actively play on and I don’t have that much more I can learn when it just comes to working on models for GMod and I’ve already released most of my processes (such as the proportions system) to the public. After 2014 when I started doing workshop stuff it was really just for the learning experience and fun. I didn’t really port characters just to port them until I had a variety of characters, I preferred adding to the existing model(s) until they were about as good as I could make it without going overboard. I’m probably not the person who will be porting Gumi, you might be better off asking around until you find a someone who’s actually active and willing to port her. Unfortunately I don’t think that I will be that someone.
1 note · View note
captainbigbutt · 7 years ago
Note
What modeling program do you use (like Blender, Maya, Unity)? Alright thanks for answering, taking the time to read this, and for your great models in steam games :D
        I used a handful of programs I suppose (except Unity, it’s not a modeling program, but I’ve used it for other stuff). For the actual model building and/or editing that I assume you mean I use 3ds max. I use version 2012 because after 2012 many of the source plugins were no longer being made (as well as a few other plugins) and wallworm had several issues. I’ve never really had a need to look into upgrading either. 
        In case you’re wanting to know what else, I use blender for importing pmx files which I export as fbx right to max. I’ve then got Photoshop for editing textures and sublime text for some uses when it comes to any of the light coding or programming I’ve done.
       For Source I also use VTFEdit, SFM for the modelviewer, and sometimes other miscellaneous tools. I use GUIStudioMdl for generating defined bones but I stick with regular studiomdl and a batch script for regular compiles. I rarely decompile models but if I ever need to I use crowbar. I basically stick with vanilla tools where I can and use gmad.exe and gmpublish.exe run through command prompt for uploading. I’m sure I’m missing some other tools on the list but that should sum it up mostly.
       For VRChat in Unity it was more or less the same. Blender for imports, 3ds max for everything else model-related, Photoshop for texture creation or editing, and Unity for the actual modem assembly.
       I’ve also got MMD, PMXEditor, and run on a Japanese locale for assistance when pulling MMD models. It lets me test them in MMD to see how they’re assembled before eventually rebuilding them in whichever engine. PMXEditor lets me isolate parts of the model if necessary (I really only do this for the head) as well as seeing what materials and textures go where, why they’re separate, and so on. Doing this is why I was able to just about nail the materials almost perfectly in 2014 when I overhauled materials. Many people don’t seem to know that the faces on a lot of models such as the Tda models were built to use a flat lightwarp.
       I think that more or less sums it up but again I may be missing a few minor things. If you have any further questions the ideally add me on Steam.
1 note · View note
captainbigbutt · 7 years ago
Text
Tumblr media Tumblr media
        I made this in PAC3 (GMod) last month for a roleplay server I’d intended on playing, though that never happened. It’s the doll I pieced together 2 or 3 years ago that I scrapped due to the dress’s complexity and the likely hood I’d be unable to rig it without it looking awful. That said I was having trouble with envmaps since materials don’t always work too well in PAC3 when you assign properties manually. More than that the map it was used on (second picture) had no cubemaps since it was built for a day/night system which meant the material couldn’t use reflections and would be black instead.
        I ended up using the spycloak shader on it which was used on the metal frame the gloves. It actually created a really cool effect that was a bit like fudged real-time pseudo-reflections. In other words it’ll work on any map and have full real-time movements but it’s not technically rendering outward reflections or you’d see the sky. Here’s an early test that used traditional reflections with cubemaps.
Tumblr media
        Again, this would be black if used on the server’s target map so I couldn’t use it but you can see the difference in that you really only see the sky. The cloak effect requires a solid color material since it overrides everything below it and actually has a bit more of a refract tone to it (which can probably be further tweaked) and is about the closest you’ll get to “real-time reflections” in source. when used on playermodels. Perfect? No. Neat? I’d say so.
6 notes · View notes
captainbigbutt · 7 years ago
Photo
Tumblr media
        After a break from the shader for about 2 weeks I tried poking my head into the shader again to see what I could get. The answer was a few days of experimenting on and off again with next to no progress. I spoke with someone else who was making a shader as well and and apparently he was using code from the FLT shader which I'd already tried early on. I plugged it back in and revised the code (several lines kept causing errors despite being a direct copy of previously working code). Several unnecessary lines were removed and it's now very simplified, yet it works nonetheless. It needs some tweaking, but I'd certainly prefer it working than not. Even using Unity's finalGI system doesn't seem to account for lightmaps. I'll have to do some more testing but I'd certainly prefer some progress over nil results.
        I'll also need to revisit what I said previously about making the shader modular. Turns out it's not necessarily easier on the rendering, but it can be. Source did it and I'm sure I can do it, but it may only be necessary if the shader is complex enough. I suppose I'll have to do a side-by-side comparison to find out what actually works.
2 notes · View notes
captainbigbutt · 7 years ago
Photo
Tumblr media
I have absolutely no idea what Tumblr is doing but it won't let me reply to your message for some reason. I think it's trying to force me to paste an image instead. In any case I've used 3ds max for about 10 years and I currently use 2012. I'd like to transition to Maya at some point and I never really cared for Blender other than it's plugins. I use Unity for model assembly and shader creation in VRChat but it's not a modeling program.
3 notes · View notes
captainbigbutt · 7 years ago
Text
Tumblr media
        It seems I’ve hit a wall. I spent a lot of time trying to figure out Global Illumination tables so I could try using that in the shader, but even that doesn’t work the way I need it to.
Tumblr media Tumblr media
        It still has problems on the avatar testing map which means it’ll have problems on other maps using baked lighting instead of real-time or mixed. I did other experiments with diffuse as well, trying to see what I could do with that.
Tumblr media
Colored light attenuation based on the toontex.
Tumblr media
Standard toon shadows
Tumblr media
Mixed
        It seems I need to use GI for indirect illumination and diffuse for direct and combine them. If I use diffuse only then it can looks perfect on both maps with baked or real-time lighting. Once I lerp or clamp shadows based on the toontex it becomes a problem though because the darkest the shadows can get are now based on the toon color which likely isn’t black. I don’t recall if I mentioned this before but I now understand why source’s lightwarps mysteriously don’t work in low level lighting and I’d wager this is why. I can’t think of a way to handle this or do something similar. I’m quite happy I made it this far considering I have next to no coding knowledge and no shader knowledge with my brain being built for art. Nevertheless since I can’t find much help this might be where I have to stop if any further ideas that pop up are also failures.
3 notes · View notes
captainbigbutt · 7 years ago
Text
Modular Shader
Tumblr media
      I started re-writing the shader from scratch since it had become a large mess. I’m very pleased with how the new diffuse map behaves but as soon as I add lightwarps I have trouble in some areas, especially on the avatar testing map which seems to have very poor lighting set-up and leaves me needing to account for things I didn’t even consider. I’ve got some ideas but capping the shadows from black to the toonwarp color isn’t the way to do it since it means the shadows can only get so dark rather than being able to go fully black when there’s no lighting at all. This has also taught me why lightwarps in source seem to vanish in low level lighting -- originally I was disappointed but I now see it’s to prevent models from being too bright despite having no lighting cast on them.
       Another thing I’m now considering is making the shader modular. I’d like to see how it affects performance. An example would be the shader starting off with a basic diffuse and you having to check a box that says “use toonwarp” or “use albedo” in various areas. It might be a minor nuisance but it could allow me to build a nice optimized shader with several features rather than scrapping features or splitting the shader and having a dozen different variants so you can use specific features and customize the shader usage to your liking while only needing a single shader (or two). I should note that this is actually how Source shaders work as well and why you typically only need a single shader for models (VertexlitGeneric) while needing to enable certain features ($phong 1, $rimlight 1, $lightwarp 1). On one hand you may need to put some extra effort into checking the features you want to use every time you start on a material but on the other hand you’d have the potential for better performance and you might just be able to edit several materials at a time by selecting them all rather than having to individually select materials using the same shader variant (selecting a material with the CBBT standard opaque shader and another with the standard opaque with outline would mean you can’t edit them both at the same time). Share with me what you think in the survey I’ll link below and leave me more specific thoughts in a reply if you so desire.
       The survey:
https://www.surveymonkey.com/r/MBFNKWC
1 note · View note
captainbigbutt · 7 years ago
Text
        Naturally as soon as I made the previous post about slowing down on work I’m mysteriously struck with the urge to work again. Dopamine is a fickle chemical. I’ve taken about [literally] 50 screenshots today alone of various experiments on the shader, so I’ll narrow it down.
        I built a small map for testing the shader spent a lot of time playing around with lighting attenuation to get some proper shadows on the models. 
Tumblr media
        I’m still not completely certain what to do with it yet. I either leave it black and it looks terrible in the daylight or give some nice ambient color which results in her still being partially lit in dark areas. Transparent shaders needed some additional tweaks for lighting to render properly on them. They seem to be okay now but I’ll need to test for clipping later. Outlines still either glow in the dark or are completely black since I haven’t quite finished it yet but I’ll come back to it after some sleep, I’ve been working on the shader for 22 hours straight now.
        After experimenting with shadows some more I scrapped most of the previous code for lighting and just wrote a simple lambertian diffuse set-up and plugged the toon ramp into it which was the original goal anyway. I added some settings to it for fun so you can control the opacity of the toonwarp as well as the lambertian wrap. I can’t see partially transparent toonwarps being common but it’ll let you ‘disable’ it while allowing you to have standard lambertian lighting with al of the other fancy tools like outlines or spheremaps. Controlling the wrap is basically lambert vs halflambert vs unlit much like source although you can use any percentage you want to blend it to your liking.
Tumblr media
Toon Wrap
Tumblr media
Lambertian diffuse
Tumblr media
Half lambert
        Spheremaps are also affected by lighting now so in a standard white room they’ll have their original appearance but they won’t look absolutely terrible in a dark room.
Tumblr media
Above you can see the spheremaps fade into the shadows at her lumbar. 
        I need to run some tests in-game. If everything checks out then there’s not much left to do. Normals and cubemaps are optional and beyond that I just need to tweak shadows and the outlines. I’ll see how it looks in-game before I head off.
1 note · View note
captainbigbutt · 7 years ago
Photo
Tumblr media
        Here’s an older screenshot experimenting with a toonwarps to create the effect some artists use when shading their 2d images. I’d guess they outline it first and leave it in but the shading method is often mixed.
        With that said I’ve noticed a lot of issues with lighting that should be a simple fix and I’m now less concerned with cubemaps or realtime reflections unless control over the reflected colors is manageable. I’ve slowed down on the shader drastically lately though. Moving from source to unity was euphoric with limitations vanishing and having additional control you wouldn’t have in something like Garry’s Mod or Left 4 Dead. That said VRChat is still very early in development and it’s not all that enjoyable for someone playing in desktop mode, especially without a working mic. I really don’t want to scrap it; perhaps I’ll come back to it when I have a headset that isn’t falling apart and it has some fun activities on it.
2 notes · View notes
captainbigbutt · 7 years ago
Photo
Tumblr media
        Did a small stress test on the shader. I plugged some labels in. On the far left side is the profiler ran with everything set to the unity standard shader. The far right is the toon shader. In between that is just a misinterpreted profile from the render being captured during the reset back to toon.
        As of right now the toon shader is actually less expensive than using the standard unity shader since in technicality it has less features which still leaves room for plugging in normal maps and [standard] reflections.
1 note · View note
captainbigbutt · 7 years ago
Photo
Tumblr media
Decided to take another look at the animation files I built what’s now 3 years ago. Could use some work but I got the code working again to restore limping animations.
5 notes · View notes
captainbigbutt · 7 years ago
Text
I’ve moved Napoleon to the shader for testing and since carried out some minor fixes. Here’s how she looks now:
Tumblr media
Below is the most important layers that make up the final render.
Albedo (unlit):
Tumblr media
Toon:
Tumblr media
Spheremap:
Tumblr media
Final:
Tumblr media
4 notes · View notes
captainbigbutt · 7 years ago
Text
I never really took the time to look at the emissive mask. It works wonderfully and due to the way it’s handled I can support detail overlays next while just recycling the same code. After that I’ll consider doing normal maps and detail normal maps among other things.
Tumblr media
No emissive overlay
Tumblr media
Lights on
Tumblr media
Emissive overlays on
3 notes · View notes