Shop Forum More Submit  Join Login
About Deviant vasilnatalieMale/United States Group :iconmmd-battlestage: MMD-BattleStage
The this-is-Sparta! of MMDC
Recent Activity
Deviant for 7 Years
Needs Core Membership
Statistics 428 Deviations 1,812 Comments 24,654 Pageviews
×

Newest Deviations

Tattoo by vasilnatalie
Mature content
Tattoo :iconvasilnatalie:vasilnatalie 1 4
Making facials with Blender's Laplacian deform by vasilnatalie Making facials with Blender's Laplacian deform :iconvasilnatalie:vasilnatalie 10 2 Surface deform modifier for Blender by vasilnatalie Surface deform modifier for Blender :iconvasilnatalie:vasilnatalie 10 8 Face by vasilnatalie Face :iconvasilnatalie:vasilnatalie 5 2 Procedural Tartan.blend by vasilnatalie Procedural Tartan.blend :iconvasilnatalie:vasilnatalie 4 3 Mini by vasilnatalie
Mature content
Mini :iconvasilnatalie:vasilnatalie 7 1
Distraction by vasilnatalie
Mature content
Distraction :iconvasilnatalie:vasilnatalie 9 2
Law of the Clade by vasilnatalie Law of the Clade :iconvasilnatalie:vasilnatalie 16 2 Chibi Cultist by vasilnatalie Chibi Cultist :iconvasilnatalie:vasilnatalie 3 4 Facial Curves by vasilnatalie Facial Curves :iconvasilnatalie:vasilnatalie 6 2 Eyelashes by vasilnatalie
Mature content
Eyelashes :iconvasilnatalie:vasilnatalie 6 4
Hexbumps by vasilnatalie Hexbumps :iconvasilnatalie:vasilnatalie 3 8 Hat by vasilnatalie Hat :iconvasilnatalie:vasilnatalie 14 8 Cubehexsphere by vasilnatalie Cubehexsphere :iconvasilnatalie:vasilnatalie 7 2 Download Shapespace Nodes for Blender Cycles by vasilnatalie Download Shapespace Nodes for Blender Cycles :iconvasilnatalie:vasilnatalie 7 0 Shapespace by vasilnatalie Shapespace :iconvasilnatalie:vasilnatalie 1 0

Favourites

Peace and exams by apolline555 Peace and exams :iconapolline555:apolline555 17 11 myskll by Redoxygene myskll :iconredoxygene:Redoxygene 9 0 The veil by SilentLadyGTA The veil :iconsilentladygta:SilentLadyGTA 56 46 OC : 61B (Showcase) by LGMODS
Mature content
OC : 61B (Showcase) :iconlgmods:LGMODS 58 23
February 23 by KiraKoToVa February 23 :iconkirakotova:KiraKoToVa 38 2 VIERASURA : Blender Cycle Render by LGMODS VIERASURA : Blender Cycle Render :iconlgmods:LGMODS 15 7 (MMD/SF) Krystal's Power 2 by SchattenKitsune666 (MMD/SF) Krystal's Power 2 :iconschattenkitsune666:SchattenKitsune666 25 6 PMD Tutorial - making 4 way UV slider by Trackdancer PMD Tutorial - making 4 way UV slider :icontrackdancer:Trackdancer 94 30 [MMD WIP] Path to C6V3 n.15 Baking textures? by Riveda1972 [MMD WIP] Path to C6V3 n.15 Baking textures? :iconriveda1972:Riveda1972 8 15 Spirited Away Bathhouse Scene - Download by RyuuExe Spirited Away Bathhouse Scene - Download :iconryuuexe:RyuuExe 202 28 Underground Subway Scene - Download by RyuuExe Underground Subway Scene - Download :iconryuuexe:RyuuExe 123 3 Diet Monster Part Poll! by LilMissLillie Diet Monster Part Poll! :iconlilmisslillie:LilMissLillie 22 15 [MMD WIP] Path to C6V3 n.14 - First test video by Riveda1972 [MMD WIP] Path to C6V3 n.14 - First test video :iconriveda1972:Riveda1972 32 18 Waking up by COOLZONE17500 Waking up :iconcoolzone17500:COOLZONE17500 24 2 [DL] - Korsar class fast attack cruiser PMX + OBJ by Riveda1972 [DL] - Korsar class fast attack cruiser PMX + OBJ :iconriveda1972:Riveda1972 28 6 Tondemonai - Download by RyuuExe Tondemonai - Download :iconryuuexe:RyuuExe 298 12

Activity


Tattoo
Oh, been a while since I posted a picture.

Playing a little more with tattoos.  They're fun-- most fun is playing with the UV map.

Tattoos seem to have different glossy characteristics than the skin underneath, and they're slightly raised.  Have to make a gaussian-blurred version to raise them, although I suppose I could use that 5x5 convolve node thing I made.  Adding noise to the UV, poor man's blur, doesn't seem to work too hot for bump maps.

It looks like tattoos are, in CG terms, dithered, indexed color.  There aren't an infinite number of pigments, and even though you could probably mix, you don't want to be changing pigments all the time-- not like painting where you can pick your spot from a palette with every dab, I guess.  So I'm trying to do some dithering here.  I think it works.

The pigments also fade really beautifully.  I love that fade-to-green you get with old tattoos-- I have an old tattoo, didn't really fade like that.  I'm multiplying my color with a blue-green mix that works well for the dark bits, but not as great for the reds, which seem to age in a different way.  If I was really cool, I'd be using something like my tan mask to modulate the fade, but I dropped that UV map from the tattoo and never have been able to get great results out of a UV transfer.

That monster looks terrible.  I keep thinking I should work on the mat or something but then I get distracted by, say, white stockings....
Loading...
Making facials with Blender's Laplacian deform
Great way to edit models smoothly.  Does require some setup.  Good for other things too-- this is just an example application of the modifier that I think peeps might find useful.

The mesh deformers can be joined into a single object (and so a single mesh deform modifier) if you animate them with something other than a curve modifier.  A good option is an armature.  You can make an armature from your curves by turning them to strings of verts with alt-c curve to mesh, then using a skin modifier on it, and creating an armature via the skin modifier.  These armatures can be controlled via spline IK constraints if you want.  You can use the skin modified mesh as your mesh deformer if you want, but only if you write the skin modifier, because the skin modifier does not create a stable topology-- the number of verts in the mesh will change depending on position, which will break your mesh deform's bind.

For animation in Blender, you'll want to parent your curve modified objects to their respective curves, and parent the curves to the same thing that controls your head (like a head bone.)  That way, everything will move together as one.  Just be aware that local transformation doesn't really affect a mesh deform.

You may find that your inner mouth can easily clip through your outer mouth.  The best way to manage the deformation of the inner mouth is to separate it to a different object and deform it with a surface deform modifier, targeting the main head.  The way that the surface deform modifier works, this will prevent clipping until the point that your outer cheek buckles through itself (a point which you should never reach, like the doctor says, "Then don't do that.")  See www.deviantart.com/vasilnatali… for using the surface deform modifier.
Loading...
Surface deform modifier for Blender
Here I'm using Blender's surface deform modifier to fit clothes.  I think this is especially useful for MMD types, who are fitting clothes all the time, and it's not easy to do that in PMXE.  But it's also useful for Blender types, because for some reason, it seems like very few of them use the surface deform modifier.  And the surface deform modifier is awesome.  It is so easy.

I might make some more deform tuts as I figure out good applications to demonstrate them.  Everybody uses mesh deform, lattice, but few use Laplacian, which is also awesome.

Anyhow.  This is how I fit clothes now, on the occasions that I need to.  And this is how I think fitting clothes is easiest, and it could introduce some MMD types to some new Blender tools.  This is all done with 2.79, but 2.8 shouldn't really be any different (like I'd know, I've been avoiding it.)

I used to do something quite a bit more complicated, posing and writing my armature, then autoweighting my clothes, then trying to get my armature back to default.  More work, not as good.

If you're animating in Blender, surface deformed clothes aren't quite as good as carefully hand-tuned weights, but they're a hell of a lot better than either auto-weights or weight transfers.

Oh, I forgot to mention: if you're having trouble getting the surface deform to bind, the first thing to try is to put a triangulate modifier on the deformer (at the very end of the modifier stack.)
Loading...
Face
Yes, I'm still working on facial rigging.

This isn't an attractive pose, it's an evaluative pose.

There are a lot of issues that make it really hard for me to explore in the depth that I'd like.  First, it's a pain to hook curves.  It's a pain to set up a lot of bone structures that I like to use (marker bone, axis marker bone, damped track, locked track.)

What I've been running into lately is that weights are important, and autoweights aren't good enough, and I can't evaluate how well a rig is working without weights.

I think, obviously, manually weighting a complex facial rig is kind of a losing battle.  But certain loops need to be normalized.  For example, for the eye to close all the way, the edges of the eyelid have to be fully weighted to the eyelid bones (and I've got 10 eyelid bones for each eye.)  Autoweights give me weights that are too diffuse-- too much head, cheek, eyebrow on my eyelids.  If I needed to make one bone work, I'd just normalize it, lock it, then normalize all.  But with so many bones, that's way too much work for every time I make a change.

What I've been doing is making larger, non-deforming meta-groups: eye, mouth.  Then I copy and separate out these parts, copy and separate out the relevant armature bits, autoweight those parts, then copy weights from them with my meta-groups.  That's a little easier, but still a lot of trouble.  Every time something is a lot of trouble, it makes me resist experimentation.

And of course, there are issues with separate objects, which needs weights that are in agreement with the face.  I can't tell if a rig works without eyes, eyelashes, eyebrows, inside mouth.

I have learned a few things.  The brow ridge moves, but only a little; a cartoon eyebrow needs more expressiveness than the brow underlying it.  (In reality, the eyebrow stays firmly attached to the skin, but the skin itself slides over bone, something which is very difficult to implement well-- you need a skull mesh, you need to shrinkwrap to it, you need to manage your rotation by shrinkwrapping your tails to a slightly offset skull mesh....)  If you try to create the full range of expression by manipulating the brow ridge instead of the eyebrow, it can look very very funky.

I've been messing with eye placement to improve the look of my model, but the real issue that I need to address is the upper eyelid, which needs to sink back behind the eye more-- particularly next to the nose.  The upper eyelid isn't any more than a crease in an open eye.  I'm still having trouble getting this crease to look right in a variety of deforms.

A good way to prevent inside mouth clipping through your outside skin is to separate it to a different object and deform it via a surface deform modifier rather than an armature.  Surface deform modifier works just right.

A Laplacian deform is a great way to fill in areas that you don't want to bother to rig.  In the past, I've tried using armature controlled, skin-modified meshes to mesh deform Laplacian anchor verts and sometimes had interpolation problems that I thought were the Laplacian's fault; I now realize that the issue was the skin-modifier does not give a reliable number of verts and so is unsuitable for use as a mesh deformer without writing the modifier.  I may experiment more with this in the future (but the bones are a pain to set up well anyways.)

What I really need to do is to stop messing with rigging, stop messing with modelling, and start making Blender add-ons.  (Which would require a lot of learning on my part, it's not as if I'm ready to do that at this very moment.)  A lot of the things that make it too difficult to experiment to the extent I'd prefer are solvable via Python.  Curve, bone, weight issues could all be automated.
Loading...
1) Local axes.  MMD's local axes relate only to the use of the rotation rollers-- not for things like IK angle limits, which always use global axes.  You can get around this by setting up an IK bone in the global axes and then initializing it into different axes by placing an IK target someplace else, or by appending from another IK bone doing the same thing (for initializing complex local axes).  This often means transforming a model into a weird default position, such that the IK drags the model into the right position.  Initializing angle from other IK bones runs into weird bugs and requires more levels of deformation tier than you'd expect, but once it works, it stays working.

2) Stacked constraints.  Use another layer of bones-- another bone in the same location, parented in a chain.

3) Damped track.  Single most useful constraint.  Use a single bone IK chain.  A warning that applies whenever using MMD's IK bones: they fail in circumstances where Blender's IK bones don't.  In particular, they fail when forbidden to rotate in at least one axis and asked to point directly toward or away from their default position.  Increasing the loop count will minimize this issue but not eliminate it.  Give them weird defaults and initialize to custom local axes to minimize the issue.  As a general rule, whenever you use an IK bone, place it directly after the bones it modifies, and increment the deform tier of all bones that follow.  (No, you don't always have to do that, but doing it will prevent you from running into problems if you try to implement fancy stuff.)

4) Locked track.  Often used in conjunction with damped track.  Use a single bone IK chain, constrained to a single axis of motion with angle limits.  Often requires initialization of local axes as in 1) above.

5) Copy rotation.  Append.  Axis limited copy rotation is to be avoided, even in Blender, but if you insist, you can use an IK bone with axis/angle limits, possibly tracking an append bone's tail, and append from that instead.

6) Limit rotation.  Use an angle-limited IK bone to damped track the bone's tail.  Like copy rotation, angle limits are to be avoided even in Blender (occasional cases where they're okay, but you can get interpolation problems easily because of how Euler angles work.)

7) Limit distance.  Surface is easy-- use a single bone IK chain to acquire the position, then damped track and/or locked track appropriately to restore angle.  Inside is easy, use a 2-bone IK chain.  Outside, use a 2-bone chain, with the first bone longer than the second-- the difference in lengths becomes the minimum distance.  To reduce this being a problem for weird situations, make this chain very very long (like 10000 units.)

8) Floor.  Use a very long 2 bone IK chain, angle limited to remain planar (like for the typical floor case, rotation in MMD's global Y axis only.)  As with an outside limit distance, not possible for every conceivable use case, but if you make your bones 10000 units long, it's not going to be a problem.  To allow it to leave the plane but not cross the plane, allow X or Z rotation (one only, depending on orientation) in positive or negative (one only, determines side of plane they're constrained to) on the second bone in the chain.

9) Copy position/don't inherit rotation.  Track with a long 2-bone IK chain, each bone equal lengths.  Make a third bone with a -1 rotation append from the 2nd IK bone, parented to the 2nd IK bone.  IK chain can be angle/axis limited to acquire X,Y,Z position only.

10) World space vs local space.  Basically determined by parenting your IK bones to another bone (local space) vs locating them at the origin and parenting them to the world (bone -1, world space.)  There isn't much I've ever wanted done in world space-- had some MMD floors in world space, I guess.

11) Anything having to do with splines cannot be done in MMD.

12) Anything having to do with bone scaling cannot be done in MMD.  Although you can move a bone to a position exactly in the middle of two other bones (2 bone IK chain to target, then a 2 bone chain, half as long, appending rotation from that IK chain) to kind of fake stretch.  I guess, conceivably, every vertex could get its own bone, then it would be doable.  Well, except there's some bone limit that you might hit.

13) Action.  Basically can't be done.  People would like to have shapekeys driven by bones, which is at the far reaches of possible, because any shapekey is just a 3 axis translation, and you could potentially parent every vertex to a different bone, then use various appends to drive those bones.  I guess, once again, there's MMD's bone count that would limit what could be done.

14) A note about movement appends.  There's basically no way to drive translation as opposed to rotation about a center, but both cause position changes.  Movement appends can be useful for controls, but any tricks like this rely either on rotation appends or IK chains to acquire position-- sometimes both, as when you acquire position via IK chain, then append from that chain to apply that position to a different bone's space.  It doesn't really matter, just worth noting that you don't use movement appends to do any of this, and you don't need to.

This stuff could all be automated, although I pity the coder that would try.
Procedural Tartan.blend
Finally conquered this.  Well, kind of.  It's not as good as I'd hoped.  Needs some randomization, and it won't be as easy to customize as I wanted.  Overall look isn't very good.

But I'm still proud.  Left is something like anticipated use.  Right is blown up, with true displacement enabled.  All of that bump is done with math and curves, no textures, not even any procedural texture nodes.  It was a lot more confusing than I'd anticipated.

Of course, it being bump rather than mesh, it doesn't really know what to do at the discontinuities.  Those side bits are basically artifacts related to whatever level of subdivision I want.  Don't anticipate true displacement, just bump, where that won't happen (although there is the potential for maybe something weird to happen at the discontinuity from filtering, I'm not sure.)

Here, I'm drawing my bands across the tartan with those curves nodes.  I make it high where I want a band, low where I don't.

The main, complicated work is done in the (active selection) nodes group, not in anything visible.

You can download it if you want at mega.nz/#!bXAyRKoZ!1jOIFX7l9AM… .  I think I left the HDR in so it's needlessly large, but I don't really anticipate anybody downloading it anyways.  It's not good enough looking for mindless use, and it's not easy enough to understand for proof-of-concept demo work.  I barely understand it myself.
Loading...
Trying to make cloth weave bump mathematically.  Just not working for me.  Maybe my head isn't screwed on straight the last few days.  Was hoping to make a procedural tartan.
Have been working on body rigging lately.  A lot of the times, I'm remaking things I've already made before, but each time I get a little better.  I'm doing some focus-tracking for the head + eyes, in conjunction with some thorax + clavicle motion that depends on the head position, and it's looking good.  Works even with the focus placed behind the head, and I suppose it could be done in MMD with abstract IKs, although too complicated to contemplate.  It's nice to create complex, subtle animation of multiple parts of the body with single bones.  Have figured out some improved angle limit techniques (do *not* use "limit rotation" for anything except bones limited to single axes), as well as a working "rotate-to" floor constraint system.  Any time I'm away from the computer, I try to pay attention to how my body moves.  Which way is my shoulder pointing, rolling?  How does it depend on where my elbow is and on where my neck is?  Keep adjusting mesh as I go, which with my limited art knowledge is always 3 steps forward, 2 steps back.  But there are some bits that are lovely.
Hard drive failing.  Nice to have some warning to back stuff up.
Trying to prevent teeth clipping the lips, cheeks. Tough rigging problem. First attempt, move the teeth when the lips are too close, bad idea-- teeth swim, as bad as clipping. Will have to instead prevent lips, cheeks from getting too close to teeth. Really wish Blender's shrinkwrap techniques could use normals to shrinkwrap only to an unobstructed backface, so you could shrinkwrap only in one direction.  Maybe there's some way to do this that I haven't figured out yet.

Used a mesh to limit eye angles, since I had the extra armature anyways for curves; worked well, then I realized a limit distance would work too.  One of the problems with mesh based angle limits is interpolation, because if you use too low-res a mesh, bones will seem to snap as they move over edges.  Mesh control would give more control, but limit distance works okay (kind of nice to have eye tracking without worrying about eyes spinning out of their sockets when the target is out of range, and limit rotation constraints come with their own set of problems.)

Rigged up a little reverse neck-UB3 IK thingie that's working well.  Keeps the back moving in conjunction with the neck, like it does in real life, just from controlling the head.  Not super tested in bizarre angles, but so far I'm happy with the structure.  I have a separate front and back upper thorax.  Not sure how realistic that is, but the utter lack of scapula action in typical rigs isn't so realistic either.  Neck does some half-tracking of the chin to automate twist with the head, thorax just damped tracks, minimal twist.

Returned my facial animation book yesterday, it wasn't a keeper.  Not what I wanted, although it had good info on facial proportions.  Time to make another interlibrary loan request.

Tried making a dragon yesterday.  Bad proportions.  It's a fucking tube with legs, but I still can't get good proportions.  Will have to study reference images.
Quick vector math tutorial on dot product, cross product:

Dot product is a function of two vectors.  It's commutative-- that's to say, dot(a,b) = dot(b,a).  When you take the dot product of two normalized vectors, you get a number that lies in the range of -1 to 1.  Dot product is mostly cool for one particular property: if you take the dot product of two normalized vectors, the dot product represents the angle between the two vectors.  1 means the vectors are identical, -1 means the vectors are parallel but running in opposite directions, and 0 means the vectors are orthogonal.  Do you want degrees/radians?  Take the arccos of the dot product of two normalized vectors and you have the angle.  You do this all the time in 3D graphics.  You can do it in Blender nodes if you want.

The cross product is also a function of two vectors, but it is not commutative: cross(a,b) does not equal cross(b,a).  It doesn't give a number, it gives a vector.  The cross product of (a,b) is a vector running in an opposite direction to the cross product of (b,a).  The cross-product of two normalized vectors is itself a normalized vector (with one exception.)  Cross product is mostly cool for one property: it gives you a vector orthogonal to both of the vectors you feed it.  You do this all the time in 3D graphics, and you can do it in Blender nodes if you want.  (What if the vectors are parallel?  Then the cross product is the (0,0,0) zero vector.)

So if you want to find the angle between two vectors, you take the dot product.  For example, for fresnel calculations, you find the angle between the surface normal and the incoming ray.  (In  Blender, you use dot(normal, geometry/incoming).)  If you want to find the axis along which that rotation occurs, you take the cross product.

And, if you want, you can combine these to do axis-angle rotation.  Do you want to flatten out Blender normals?  You can do that-- rotate a percentage of arccos(dot(incoming, normal)) along the axis of cross(incoming, normal).  Or rotate the opposite way.  Or rotate them toward some arbitrary position determined by an empty.  Axis-angle rotation is relatively easy to implement ( en.wikipedia.org/wiki/Rodrigue… , just be aware that you do not want to use Blender's cross-product node for this, you want to roll your own cross-product) and if you want, you can just copy my nodes implementation at www.blendswap.com/blends/view/… .

Do you want cross(a,b) or cross(b,a) to find the right axis?  When you implement rotation, they'll give opposite rotation.  The order depends on whether you're using OpenGL (like Blender) or DirectX (like MMD.)  I can never keep track of which is which, so just test and make sure it rotates in the direction you want.
Law of the Clade
When I was very young, my aunt told me that swords grew, like trees, from the graves of retainers, so that when their sons came of age, the tradition could be carried on.

She was simple.  She may have believed it.

The Law of the Clade is that the law does not apply to anyone bearing the sword-- neither its judgment, nor its protection.  Does it matter if a judge kills you or a mob?  And then the law is enforced by clade-bearers.  It's an excuse to murder in the name of one's lord, that's all.  The lords say there's a need for murder and for murderers, and they would know better than I do.

Do you want to be a warrior?  Pick up a sword.  God knows there are enough laying about.  Are you lowborn?  Unskilled?  The elite, the legendary, they will die almost as quickly as you will.  Your sword will be planted in your grave by a man that never knew you, that can't know that any son will ever come to draw it from the dirt.

But then, yes, some child will pluck it from that grave, even you be barren.  They say there are as many swords as there are retainers, but the corollary, there are as many retainers as there are swords.
Loading...
Chibi Cultist
Made a five-minute throwaway model to make sure I knew how to use multiple armatures (good thing, it's a little weird the way it works) and thought he was kinda cute.
Loading...
Facial Curves
So I think I do get some better results when using curves/spline IK for facial bones than otherwise.  In general, interpolating well, easy enough to control (pictured is deformation rig, not control rig, which is mostly just a bone each for eyebrow, eye, mouth, jaw, and eyetarget, although plenty of higher detail controls exist if you want to use them).  Eyes are closing well, although not pictured, without creating weird corner-eye strain.  Does require multiple rigs.  Pain in the ass to create.  Modifying to fit other faces shouldn't be nearly as much trouble as creating it in the first place.

Still have plenty of work.  Need more eyelash control. some smart control of the fold in the eyes between the eyebrow and the eyelid, a bit of work in the cheek, good integration with the jaw (corners of lips need to move backwards as the jaw opens), internal mouth components.  May want to create some shrinkwrap meshes for the controls to keep controls within reasonable limits.

Overall, happy.  Had several false starts working on this.  Kept deciding it was too much trouble.  Each time I tried it, it stopped being quite as much trouble.


Loading...
Buckling down, working on facial rig.  Tedious, and I need to do a lot of experimentation.  I think I've got something better than the Pitchipoy (rigify) rig already, but want to do some more work.  Eyes are closing nicely, lips have proper limits, lower mouth is affected both by jaw and a "master mouth" bone, and the rig can be regenerated by posing the control rig and applying pose to both control and deformation rig.  Using a lot of curve objects, which means I need separate control and deformation rigs; I may at some point try to shrinkwrap controls to mesh objects (representing skull landmarks) which would, alas, mean I'd need two control rigs.  Working with a fresh copy of that face I made, and textures I made since aren't designed for it, so the face is ugly as sin in rendered view (and yeah, I find that I really need to see a rendered view to be able to judge a rig.)
Eyelashes
Played with eyelashes.  I've come to recognize that basically, good eyes are good eyelashes-- the entire shape of the eye is defined by the eyelash.  They've given me trouble before when rigging, because they don't really get autoweights right, but you need to see them to see if your rig is any good.  So I've been coming up with techniques to let me do them better.  What I'm doing here are just strings of verts with a skin modifier.  I've actually got two sets to give it some variety.  I'm using a really simple unrendered mesh to surface deform them to try to get their shape right rather than tweaking the actual eyelashes.

I could use a curve modifier to deform a straightened pre-skin string too.  Going to try that next.

I've got a little home-made clear coat with super-Fresnel going on here.  From the looks of it, I need to mask it some, there are places where it's not appropriate.

Have been doing a lot of deforming, working on different proportions, etc.  Will need to make a new base mesh when I'm done, probably.  Happier with my latest puffy incarnation.


Loading...
Hexbumps
Procedural bump maps created using my shape nodes.

I was trying to make a hex-based procedural skin bump and I kept making things that weren't what I wanted, but were still kind of cool.  So I made a new file and I'll just copy/paste things in, can use it when I need a new bump for a material.
Loading...
About a month ago, I bought a 43" 3K tv, hoping it would make a good monitor.  It didn't-- it had shitty color.  But I've been looking at Craigslist, and eventually found a good deal on a 47".  It's only 1080p, but it still has better color than the cheap Toshiba I bought, and it only cost me US$30.  (You kind of have to keep an eye out on Craigslist to get good deals, a lot of people don't really know how to price electronics.)

I see a lot of questions (not on DA) regarding good machines for Blender, and I think that people tend to focus on the wrong things.  They want to know what CPU, what GPU, how much memory.  But all of that is totally insignificant when compared to having good I/O: mouse, kb, monitor.  Mouse and KB are personal.  But monitors aren't so personal.  No, you can't guarantee that other people will look at your stuff on good monitors, but having a good monitor will help you see the differences between colors and it will get you more excited about what you're making.  And screen real estate is super important: you want to be able to work with a lot of things at once.  I'm using a 27" 1440p Qnix, a Korean Samsung knockoff, as my main, and it's totally affordable and I've since come to realize that I lucked out by having a big, high res monitor with great, vivid color.  (I bought it for playing video games, which have largely been replaced by doing 3D work.)

What makes a good monitor?  Size isn't as important as you think, because it's easy to bring a monitor closer to your eyes, particularly if you mount it, which you should.  Resolution is important, and it's crazy stupid that they're selling 27" 1080p monitors these days.  Max saturation-- color gamut-- is important; this is where something like an IPS panel is great, much better than the cheapest monitors you can buy, although cheapies can often be fine.  Contrast ratio, max brightness, backlight bleed, none of that is as important as you'd think, because you adjust to these easier than you adjust to insufficient gamut.

I thought that maybe TVs would be a good, cheap alternative to monitors, but the reality is that every monitor I have has better color than any TV at the same price.  (Yes, I know about chroma subsampling, that's not the problem.)  Unsurprisingly, there doesn't seem to be any free lunch: you might be able to buy a cheap 4K TV, but they have color issues at least until the point at which panels marketed as monitors become price competitive.  Unless you're doing CG, those color issues aren't a big deal-- if you're coding, if you're watching youtube and reading email, I think a TV is a better buy than a monitor.  But if you are doing CG, it's a dealbreaker.  And TV reviews, even those that focus on use as a monitor, tend to ignore this; rtings.com is great, but their tv-as-monitor ratings are entirely focused on using a TV to play video games, where the relevant issue is really input lag, not to make art, where input lag isn't really an issue (hey, if I can render Blender at even 1fps, then I need to spend some more time making details.)

Time to start looking at craigslist for a cheap used streamer.  Having a huge 1080p TV as an alternative monitor is nice, but part of the idea is that I can't render and watch Netflix at the same time on my computer because rendering makes my computer useless.  So my goal is to get my TV set up as an independent streamer so I can fall asleep to crappy movies at the same time that I render the night away.
1) Local axes.  MMD's local axes relate only to the use of the rotation rollers-- not for things like IK angle limits, which always use global axes.  You can get around this by setting up an IK bone in the global axes and then initializing it into different axes by placing an IK target someplace else, or by appending from another IK bone doing the same thing (for initializing complex local axes).  This often means transforming a model into a weird default position, such that the IK drags the model into the right position.  Initializing angle from other IK bones runs into weird bugs and requires more levels of deformation tier than you'd expect, but once it works, it stays working.

2) Stacked constraints.  Use another layer of bones-- another bone in the same location, parented in a chain.

3) Damped track.  Single most useful constraint.  Use a single bone IK chain.  A warning that applies whenever using MMD's IK bones: they fail in circumstances where Blender's IK bones don't.  In particular, they fail when forbidden to rotate in at least one axis and asked to point directly toward or away from their default position.  Increasing the loop count will minimize this issue but not eliminate it.  Give them weird defaults and initialize to custom local axes to minimize the issue.  As a general rule, whenever you use an IK bone, place it directly after the bones it modifies, and increment the deform tier of all bones that follow.  (No, you don't always have to do that, but doing it will prevent you from running into problems if you try to implement fancy stuff.)

4) Locked track.  Often used in conjunction with damped track.  Use a single bone IK chain, constrained to a single axis of motion with angle limits.  Often requires initialization of local axes as in 1) above.

5) Copy rotation.  Append.  Axis limited copy rotation is to be avoided, even in Blender, but if you insist, you can use an IK bone with axis/angle limits, possibly tracking an append bone's tail, and append from that instead.

6) Limit rotation.  Use an angle-limited IK bone to damped track the bone's tail.  Like copy rotation, angle limits are to be avoided even in Blender (occasional cases where they're okay, but you can get interpolation problems easily because of how Euler angles work.)

7) Limit distance.  Surface is easy-- use a single bone IK chain to acquire the position, then damped track and/or locked track appropriately to restore angle.  Inside is easy, use a 2-bone IK chain.  Outside, use a 2-bone chain, with the first bone longer than the second-- the difference in lengths becomes the minimum distance.  To reduce this being a problem for weird situations, make this chain very very long (like 10000 units.)

8) Floor.  Use a very long 2 bone IK chain, angle limited to remain planar (like for the typical floor case, rotation in MMD's global Y axis only.)  As with an outside limit distance, not possible for every conceivable use case, but if you make your bones 10000 units long, it's not going to be a problem.  To allow it to leave the plane but not cross the plane, allow X or Z rotation (one only, depending on orientation) in positive or negative (one only, determines side of plane they're constrained to) on the second bone in the chain.

9) Copy position/don't inherit rotation.  Track with a long 2-bone IK chain, each bone equal lengths.  Make a third bone with a -1 rotation append from the 2nd IK bone, parented to the 2nd IK bone.  IK chain can be angle/axis limited to acquire X,Y,Z position only.

10) World space vs local space.  Basically determined by parenting your IK bones to another bone (local space) vs locating them at the origin and parenting them to the world (bone -1, world space.)  There isn't much I've ever wanted done in world space-- had some MMD floors in world space, I guess.

11) Anything having to do with splines cannot be done in MMD.

12) Anything having to do with bone scaling cannot be done in MMD.  Although you can move a bone to a position exactly in the middle of two other bones (2 bone IK chain to target, then a 2 bone chain, half as long, appending rotation from that IK chain) to kind of fake stretch.  I guess, conceivably, every vertex could get its own bone, then it would be doable.  Well, except there's some bone limit that you might hit.

13) Action.  Basically can't be done.  People would like to have shapekeys driven by bones, which is at the far reaches of possible, because any shapekey is just a 3 axis translation, and you could potentially parent every vertex to a different bone, then use various appends to drive those bones.  I guess, once again, there's MMD's bone count that would limit what could be done.

14) A note about movement appends.  There's basically no way to drive translation as opposed to rotation about a center, but both cause position changes.  Movement appends can be useful for controls, but any tricks like this rely either on rotation appends or IK chains to acquire position-- sometimes both, as when you acquire position via IK chain, then append from that chain to apply that position to a different bone's space.  It doesn't really matter, just worth noting that you don't use movement appends to do any of this, and you don't need to.

This stuff could all be automated, although I pity the coder that would try.

deviantID

vasilnatalie
United States
Playing with MMD. Not much of an artist, but I enjoy myself.

Thanks for checking out my page. I'm not a deleter because this page is more for me than it is for you. That means that a lot of old stuff I made is, well, bad. But it's still up. If something doesn't work, and you want it fixed, just say so! I'll do what I can.

Have written a few tutorials for LearnMMD at learnmmd.com/http:/learnmmd.co… ; I will probably write a few more in the future. I also have several tutorials here, although sometimes, that's for a broad definition of "tutorial."

Still tend to the R-18 side of things. Helps me maintain my interest.

Always happy to help people learn anything they can. If you're having problems with an MMD model, and you don't know why, please feel free to send me a note. It's usually a good idea to send a link to the bugged model as well. (But I don't just fix things. I don't believe in that. Instead, I'll help you understand what's wrong, and how to fix it yourself.)

Big believer that we all benefit from each others' art and tools, which is why I think it's so important to share freely. I strongly encourage all other artists to do the same. The artists' rights that I support are the rights to freely transform that which cannot be used up, stolen, or destroyed. Art is fire and fire cannot be owned.

Comments


Add a Comment:
 
:iconapolline555:
apolline555 Featured By Owner 2 days ago  Hobbyist Digital Artist
Thank you for the favorite :D
Reply
:iconvasilnatalie:
vasilnatalie Featured By Owner 2 days ago
It's a beautiful picture.
Reply
:iconapolline555:
apolline555 Featured By Owner 1 day ago  Hobbyist Digital Artist
Thank you >w< your work on blender is amazing by the way!
Reply
:iconholyray09:
Holyray09 Featured By Owner Dec 25, 2018  Hobbyist Artist
Hey I got a question, do you have any tutorials explaining the rigging system in blender? I’m testing the rigging system and there’s one that I don’t have much knowledge on.
Reply
:iconvasilnatalie:
vasilnatalie Featured By Owner Edited Dec 25, 2018
learnmmd.com/http:/learnmmd.co… , but damn that's old.  Really about using Blender to weight paint models intended for MMD.  I wouldn't call it about rigging in Blender.

But there's an awful lot that I've learned re: Blender rigging.  Most peeps-- even Blender peeps-- aren't interested in getting too deep into it, they just want four IK bones and some automagic twist bones, which is basic.  What are you working on?  I'll help explain if I can, and if it requires pics to explain, I'll make some pics.

But quick about it, I leave tomorrow AM!
Reply
:iconholyray09:
Holyray09 Featured By Owner Dec 26, 2018  Hobbyist Artist
Oh, I was dealing with the metarig in blender. Which I still am because there some joints that wont rotate. 
Reply
:iconvasilnatalie:
vasilnatalie Featured By Owner Dec 27, 2018
The metarig?  Are you using Rigify?

The first thing to know is that most bones in the Rigify rig aren't supposed to be rotated.  By default, arms and legs are under IK control.  Facial bones are based around stretching to various move bones.  Can't remember off-hand how the spine is designed.

If it seems like a bone should rotate but doesn't, first, look under the constraints tab for that bone.  Some constraints will end up overriding any rotation you give them.  (The bone could still be under IK control, which is a little harder to figure out, you have to figure out the structure of the whole armature for that.)

The second thing to do is look for any transform locks, on the bone tab of the properties view.  Rigify goes a little overboard with its transform locks IMO.  If the bone has rotation locks, it will ignore any rotation input you give them; click on the lock icons to toggle transform lock status to unlocked, if you feel like it.
Reply
:iconannamaeblythe:
annamaeblythe Featured By Owner Dec 2, 2018
Ayo!

I'm planning on getting into the base game once my nerves settle enough to draw out the body type I want :P

Is this still your recommendation for skin textures for MMD models or do you have a method you prefer now?
learnmmd.com/http:/learnmmd.co…
Reply
:iconvasilnatalie:
vasilnatalie Featured By Owner Dec 4, 2018
Hmm.  It's just a matter of how much work you want to put in.  That method is good enough, really.  But no, these days, I build a nodes mat in Blender, usually involving multiple hand-drawn (but shitty) grayscale maps, and bake to a single texture.  For Tda Miku models, AO is enough though.
Reply
:iconannamaeblythe:
annamaeblythe Featured By Owner Dec 5, 2018
Thank you for replying :D !

I played with cycles/nodes a bit and I'm in LOVE. When I finally get around to making stuff, I'm going to be throwing a LOT of stuff at the wall to see what happens. 

I'd love to see your new workflow for skin someday if you have time :)
Reply
Add a Comment: