modeling rigging skinning animating without too mu

Community Forums/Graphic Chat/modeling rigging skinning animating without too mu

RemiD(Posted 2016) [#1]
Hello, :)

These days i am improving my skills to model rigg skin animate humanoid meshes without too much deformations, see :
rd-stuff.fr/modeling-rigging-skinning-animating-without-too-much-deformations-500x375-10fps-HQ.gif

In the past i use to define influences (weights) of a bone over some vertices of either 1.0 or 0.5 0.5 but recently i have done others tries and i have had better results (less deformations) when assigning others percentages depending on where the vertex is positioned between 2 bones. (for example 0.125 0.875 or 0.25 0.75 or 0.375 0.625...) Only 2 bones have an influence on a vertex.
I have also skinned some vertices on the clavicles and this can help to prevent deformations with some complex postures.

Next step is to do some tests with captured motions... (the skeleton is compatible with ipisoft).
That's all...


Bobysait(Posted 2016) [#2]
because I can't tell this in english without looking like a weird guy ...

C'est plutôt bon ! (voire même très bon!) Par contre, il a le cul serré ton bonhomme ... écarte lui un peu les fesses quand il a les jambes tendues en assignant les vertices du bas des fesses aux bones des cuisses ou des hanches (avec une faible influence, ça va de soit)
-> les muscles fessiers sont attachés aux hauts des cuisses normalement.

(on est d'accord, un mot de moins ou de plus et ça part en sucette si je m'exprime en Anglais sur ce point ^_^ déjà qu'en Français c'est tendancieux)

- drastically resumed in English -
his ass is not opened enough ...
I won't go further on this subject ...


RemiD(Posted 2016) [#3]
@Bobysait>>Yes i could set influences as you say (^_^) but i am not sure this will look good in all postures... This is why i have set it this way.

Apparently it works well with the ipisoft test files, see :
rd-stuff.fr/motions-ipisoft-500x375-10fps-HQ.gif

Now i have to decide if i buy the necessary hardware to do more tests, or not, this is not cheap...


In these example, i have not skinned the fingers but i don't think that i will, i think that i will have several premade hands (with relaxed fingers, with fingers holding a weapon...) that i will attach to the hand bones, this way it will takes less time to calculate the animation. Because only a few animations need to have fingers in specific orientation/position. Not sure. What do you think about that ?


Bobysait(Posted 2016) [#4]
I think you should skin the fingers.
Just export animations separatly for the body and for the fingers.
You can then LoadAnimSeq/ExtractAnimSeq the part you want to animate individually. It will preserve the surfaces/vertices count and it will prevent from weird normals on the seams.


Blitzplotter(Posted 2016) [#5]
RemiD - Verrryy nice work so far!


RemiD(Posted 2016) [#6]
Thanks.

btw this mesh has only 1007vertices and 1978triangles, the modelers will know what this means... (quite realistic shape compared to the number of vertices/triangles, even if it can always be improved...)

I don't really understand the 3d modelers who sell a humanoid character with hairs/clothes/armors with more than 5000triangles. Imagine the calculations involved to animate and render such a mesh.

Of course it depends on the target computers, but since i can't compete on graphics with creations from big studios, i try to create a game which will run even on low end/old computers. (and probably with an external view (third person view, isometric view, top down view), so that the low lod is not noticeable...)


Matty(Posted 2016) [#7]
Yes....you can do a lot with a small number of polygons. The texture will make up for a lot too.

I like your animation and the model. Low poly modeling seems a forgotten art.


Bobysait(Posted 2016) [#8]

I don't really understand the 3d modelers who sell a humanoid character with hairs/clothes/armors with more than 5000triangles. Imagine the calculations involved to animate and render such a mesh.

Of course it depends on the target computers, but since i can't compete on graphics with creations from big studios, i try to create a game which will run even on low end/old computers.


Nowadays (with geometry shaders and/or fast multi-core CPU), 5000 triangles is considered very "Low-Poly" and the computation of this amount of vertices is almost negligible.

Maybe you're a bit stuck on a very old generation of hardware ^_^


Matty(Posted 2016) [#9]
It's not low for a mobile device. While not useful for b3d in that sense there is still a decent market for 2000 or less poly human characters on mobile.


RemiD(Posted 2016) [#10]

Maybe you're a bit stuck on a very old generation of hardware


Maybe, but if you take a look at the steam store hardware stats, here :
http://store.steampowered.com/hwsurvey/

You notice that some players still use low end/old hardware. (less than 1.5ghz, less than 2gb ram, less than 512mb vram)

Since my game is not aimed at people who only judge a game for its graphics (because it will be a bit ugly :P), i think that the strategy to make it compatible and playable with most low end/old (not too old!) computers is good.


RemiD(Posted 2016) [#11]
True Matty, it may be useful if i decide to convert it for android. (but one thing at a time)


Bobysait(Posted 2016) [#12]
according to your survey, 2.28% of mono processor.
I think old hardware is not viable as a blitz3d target.

To satisfy 2.28 % of people you just give "old graphics" with low details to the 97.72% who bought hardware in order to see beautifull models and textures.

Of course, android platform offers a second lofe to old assets as the GPU inside is not as efficient as what we have on almost all PCs, but unless we can compile from blitz3d to android, this is kind of irrelevant for this topic related stuff.

So, it doesn't mean that you have to make beautifull Next-Gen stuff, but, ultra low-poly is not mandatory, while it also oftenly mean that the modelisation is a bit more hard just to get all vertices with perfect angles and normals, textures with almost pixel-art style that actually require more skill to get something nice ...
Increasing poly count or memory usage give more flexibility to development. It could be an axis of improvment for you, the time you spend on optimizing stuff that will not be that optimal when in comes to draw calls (many times a 1000 triangle mesh renders as fast as a 2500 triangle mesh on decent hardware), is time you could use to make a second model


RemiD(Posted 2016) [#13]

To satisfy 2.28 % of people you just give "old graphics" with low details to the 97.72% who bought hardware in order to see beautifull models and textures.


I have calculated around 10% but whatever...

I don't spend time to optimize the mesh so that it stays low polys, i just add the details i want so that it looks good enough but no more. I prefer to start with low tris shapes and then add more details than the other way around. I suppose that it depends on which tool you use and your method to model a 3d shape...
Also i find it easier for unwelding, texelsfilling, uvmapping. (less triangles to select, less vertices to move)
Also i find it easier for skinning (less influences to set)

So it's not like i am obsessed by the number of vertices and triangles, i add the details i need, but i don't see the point to use 10000triangles for a humanoid mesh...

The advantage i may have is that i will be able to add hairs and clothes and armors without having to think about the final verticescount/trianglescount too much...


RemiD(Posted 2016) [#14]
Also, recently i have tried to shape a face according to a front photo and a left photo of faces of some celebrities and then use only a few colors (5 shades max per color of a thing (skin, lips, eyes, hairs)) and i have found that it was better to reduce the verticescount and trianglescount to be able to finish faster. (but still keep enough vertices and triangles so that the edges of the triangles are a guide for coloring texels (3d paint)).

I have tried facegen to create humanoid faces and there were too much vertices and triangles for not much useful details for a game with an external view (third person, isometric, top down)..


Bobysait(Posted 2016) [#15]
http://store.steampowered.com/hwsurvey/cpus/

no way it can reach 10%
Mono-processor machines are really old now (even on smartphones it's considered obsolete)

Then, the needs for more vertices is not an aim, it's just a requirement to get details.
Texturing a mesh with big textures has a higher cost on framerate than polycount.
When you target something polish enough, the "low-poly" at 1000 triangle is really too low.
For model industry, the polycount is mostly dependant from the distance the model will be seen on screen.

Actually, when you don't start with a very low-poly model, you can use the real functions of modelisation softwares (like edit-poly or nurbs with 3ds max) wich allow to produice faster.
It's a way to automatise the process so that almost all the model is procedurally deformed.
The less you have to move a vertex the faster you get a model.

But, don't think I have a bad consider for low-poly models ... I also use them a lot and I actually like the feeling of low-poly.
Whatever I think about them, I had to admit some time ago that I was also stuck to the old ages of computer graphics ... And when you go for midle-ages (new ages is to the geometry shaders ... I'm not ready yet for this) you save yourself a lot of time :)
And finally, you can get pretty models that you wouldn't have thought before because the CG would have melted trying to render half of the triangles ^_^


RemiD(Posted 2016) [#16]

no way it can reach 10%


You only consider cpus, i consider low end/old computers, those who have less than 1.5ghz, 2gb ram, 512mb vram.
Here : http://store.steampowered.com/hwsurvey/
click on "system ram", "cpu speeds", "vram".
Of course this just gives us an idea...



When you target something polish enough, the "low-poly" at 1000 triangle is really too low.


I agree, but 10 000 triangles is too much and unecessary imo.


I understand that there are others methods to create 3d models (for example sculptris) but i am not good at it (probably because i have mostly made low polys models then adding details)


Rick Nasher(Posted 2016) [#17]
Looking good RemiD, pretty advanced stuff.


stayne(Posted 2016) [#18]
I wish there was a way to make animations with an XBOX 360 Kinect (Kinekt?). I have one that just sits there.


RemiD(Posted 2016) [#19]

I wish there was a way to make animations with an XBOX 360 Kinect


There is (ipisoft or brekel), the problem is that the rotations of some bones are sometimes not accurate or jerky with a capture of your motion with only one kinect camera (i have tested a few years ago).
But now it seems that ipisoft can be used with 2 kinect cameras and as you can see the rotations of most bones are pretty accurate ant not jerky. Which is good.

I am currently trying to make animations manually by taking example of my motions from a video capture (front, side, back), and trying to reproduce the poseframes and the emptyframes, and it is not really accurate and it takes a lot of time to make compared to what 2 kinect cameras + ipisoft seems to manage to produce.

Maybe i will invest again. Bad animations can really make a game look ugly and boring imo...


RemiD(Posted 2016) [#20]
Here are some animations that i have made manually with poseframes and emptyframes by trying to reproduce the important poses of motions that i have captured with a camera (front view, back view, side view)
rd-stuff.fr/animations-with-poseframes-emptyframes-500x375-10fps-HQ.gif

As you can see, some animations look convincing enough but still they are not as good as animations created with motion capture... This is because is difficult to determine the correct orientation of the joints/bones of each important pose...
Also it takes a lot of time to create each animation...

Not sure if i will continue to create animations manually, maybe a motion capture system is a necessity to create convincing animations.


Bobysait(Posted 2016) [#21]
By the way, what are you using to animate the model ?
When you say "manually", you mean hardcoded ?
or by turning pivot + set keys in an animation software ? (Fragmotion, 3dsmax etc ...)

If you're trying to build an animation software (or ethen just a tool) you 'll get very nice result (and faster) with inverse kinematics solvers.

It's not that hard to implement.


RemiD(Posted 2016) [#22]

By the way, what are you using to animate the model ?


Fragmotion. Good tool and easy enough to learn/use. There are enough functionalities to modelize, rigg, skin, animate, unweld, texelsfill, uvmap, texelscolor (3dpaint), and the b3d export is clean, and the creator still updates it regularly. All good. I recommend it.



When you say "manually", you mean hardcoded ?


No ! I mean selecting a frame, rotating/positioning each joint/bone manually, creating the pose for this frame.

By "poseframe" i mean a frame where i have created a pose with specific rotations/positions of the joints/bones.
By "empty frame i mean a frame which is between one poseframe and another which is empty.



with inverse kinematics solvers


No idea what this is, you mean to copy paste a pose and then inverse it ? If yes, Fragmotion already has this functionality.


Bobysait(Posted 2016) [#23]
inverse kinematics solvers use some constraints and rules to align the bones in order to reach a point.

it's usefull when you animate the legs (for example)
Instead of rotating bones, you just manipulate the position of a pivot, the bones of the leg will rotate automatically.

like this :

https://youtu.be/Q2PvP4Q-Bhw?t=1m0s


Matty(Posted 2016) [#24]
I've used modeling tools which have inverse kinematics and those without - I've often found that inverse kinematics is counter intuitive for someone who has been used to rotating individual bones - either that or the interface i've used hasn't been very good.