PDA

View Full Version : Why do character tds need to know mathematics?


TheMiyamotoMusashi
01-23-2008, 07:14 AM
Why do character tds need to know mathematics?

I am not sayng they don't,I sincerely ask because i don't know, in what specific situations do a character td uses mathematics?

In dreamworks job listings for character td it says he needs to know :

Diferential math
Calculus
Linear algebra
geometry
trigonometry

So please tell me specific cases where as character td you would need to know those.

thanks

Cactus Dan
01-23-2008, 03:09 PM
Howdy,

Well, if the TD is expected to create custom plugins for the studio such as physics simulations, cloth, hair etc., then the differential math and calculus will be needed.

I would think the linear algebra, geometry and trigonometry is sort of a given for TD work. Linear algebra is what matrix and vector math comes from, and that is the key to most everything in 3D. Trigonometry is needed for calculating angles (sin, cos, etc.). And as for geometry, there should be no question about needing to know that for any kind of 3D work. ;)

Adios,
Cactus Dan

arctor
01-23-2008, 03:53 PM
well...the real answer is that a character TD doesn't need to know math...a character TDs job is to build systems and solve problems...
many of those problems involve math of some kind or another...mostly trig...

TheMiyamotoMusashi
01-24-2008, 01:39 AM
well...the real answer is that a character TD doesn't need to know math...a character TDs job is to build systems and solve problems...
many of those problems involve math of some kind or another...mostly trig...

Can you give me specific examples please? :)

A plugin,system as you call it whatever :)

Cactus Dan
01-24-2008, 04:56 AM
Howdy

Well, I went to the dreamworks site and looked at that job listing:

Character Technical Director

The Character Technical director is responsible for constructing 3D character rigs and animation interfaces and establishing muscle, skin, hair, fur and/or clothing behaviors which range from broad squash and stretch to realistic physical simulations.

Qualifications

• 3+ years production experience

• Knowledge of traditional animation techniques and the principles of character motion

• Knowledge of anatomy

* Training in visual arts and understanding of form geometry and movement

• Knowledge of academics such as linear algebra, trigonometry, geometry, calculus and differential geometry

• Knowledge in programming and software development skills

• Unix experience desired

• excellent communication and presentation skills
So according to the duties listed, they're looking for someone who can not only rig characters and create animation interfaces, but also program hair, fur, cloth and other realistic physical simulations. So, that's "physics programming" which requires a bit of calculus knowledge. :eek:

The line "knowledge in programming and software development skills" sort of leads me to suspect "plugin" programming, which is programming small pieces of software (dynamic libraries) that "plug into" an application to add custom functionality to that application. ;)

Adios,
Cactus Dan

TheMiyamotoMusashi
01-24-2008, 09:15 AM
And that means if you don't do cloth,hair and fur or any physics stuff ,fluid simulations and what not you DO NOT need much mathematics.

And that is the character TD i will be.Having deep knowledge in human anatomy,building skeleton,making interfaces and scripting,doing muscles and skinning,but no cloth,hair or fur,so i guess i won't need that math ,corect? :)

stewartjones
01-24-2008, 11:13 AM
No, you need math in my opinion. Everything you do inside a 3D package is mathematical. From translating a sphere, to rigging a character it's all maths based, you just get a nice interface to work with. Solving problems often requires mathematics. Even really basic maths crops up in setups, such as making a stretchy leg, a fish swim etc.

Take that ful list you have, including cloth, hair and fur, add mathematics, animation knowledge, modeling and texturing knowledge, dynamics, particles, and programming then you're getting somewhere. You will come up against problems where you have to use one of these skills. You don't have to be great at all of them but you need knowledge of them to work stuff out. And yup, some of the time the problem is mathematical!

PEN
01-24-2008, 03:10 PM
Lets consider this. Every thing that is happening is being driven by math. So if you want to be able to have fukll control over the software that you are work with or be able to create new plugins or apps that extend the possibilities of what can be done then you need to know the math behind it all. At least to some level any. I'm no expert in Math but I do know my vectors, trig and some other handy tid bits that I use all the time.

When I was first in a position to learn Maya after years on Max I had to work with character rigs that were built by a company that supposedly know Maya very well. How ever the rigs were ful of problems as the TD's didn't know how to correct them. Because I understand the math behind 3D and how it works under the hood, learning Maya and correcting those issues in the rig took me less then a week of learning. All I had to do was learn how to connect up the right stuff in Maya to produce the correct equasion and solve the problem.

Once you know the math behind it you suddenly realize that all the packages are just the same with a difference workflow and UI wrapped on top of it.

Cactus Dan
01-24-2008, 03:23 PM
Howdy
You don't have to be great at all of them but you need knowledge of them to work stuff out.
I agree. You may not need to know how to do the math on the individual components of matrices and vectors, because most api's and scripting languages already have those functions built in. But, you need to know enough about the math to know what the results will be when you perform operations like: add or subtract two vectors, multiply a vector by a matrix, multiply a matrix by the inverse of another matrix, etc. If you know the results of these type of common operations, then you'll know which functions you need to use to do your calculations. ;)

Edit:
For example, to create a spring constraint plugin so that I can rig something like this:
http://www.cactus3d.com/DynamicTongue.mov

... I had to run out and buy "Physics for Dummies" and "Calculus for Dummies" from the bookstore so I could understand the math needed to pull something like that off. You don't really need a college degree to learn the math with so many books available like that. ;)

Adios,
Cactus Dan

TheMiyamotoMusashi
01-24-2008, 04:34 PM
Yeah but guys you miss my main question :) Give me specific situations where you used knowledge of math like Cactus Dan (http://forums.cgsociety.org/member.php?u=35698) did.

Cactus Dan (http://forums.cgsociety.org/member.php?u=35698) Thanks buddy that was a cool example. :thumbsup:

Paul Neale It is honor to have you here :) Anyways,can you tell me specific math stuff i need to know to be a good character td (no cloth,hair or fur),but building realistic human or animal rigs with muscle systems,skinning,mel scripting and maya api.

I would say so far from what i know :

1. From Linear algebra (operations with matrices and vectors,knowing general stuff about coordinate systems)

Well that's it i guess ,i can't say more since i don't really know but I am ready and willing to learn anything you advise me.I am young and motivated so i don't see nothing stopping me not to do so :)

So please help master Neale :D

Cactus Dan
01-24-2008, 05:40 PM
Howdy,

Well, another simple little example would be my tag along constraint:
http://www.cactus3d.com/TagAlong.mov

... which uses very simple basic calculus to calculate out how fast the target object is moving so the tag along object knows how high and how far to hop. ;)

So far, I've only scratched the surface of what can be accomplished with the additional math knowledge, but since I don't have a college degree, learning this stuff goes a bit slower for me. :blush:

Adios,
Cactus Dan

TheMiyamotoMusashi
01-24-2008, 06:56 PM
Howdy,

Well, another simple little example would be my tag along constraint:
http://www.cactus3d.com/TagAlong.mov

... which uses very simple basic calculus to calculate out how fast the target object is moving so the tag along object knows how high and how far to hop. ;)

So far, I've only scratched the surface of what can be accomplished with the additional math knowledge, but since I don't have a college degree, learning this stuff goes a bit slower for me. :blush:

Adios,
Cactus Dan

Oh maaaaaaaaaaaaan !!! :bounce:

You roooooock,keep it coming :thumbsup:

By the way can you explain the math going on here ?

You got object A and B.Object A is driver and B is driven.Object A is constantly moving and has a START POINT and END POINT.The speed to get from start to end,let's call it simply TIME.The faster it moves from start to end the smaller amount TIME will be.You also have DISTANCE.

Object B constantly monitors any change in movement of object A.As soon as A changes position B recalculates so that it keeps same distance to object A along a PATH with direction start point : object B and end point B position of object A.

Explain it something like that you got the point :)

thanks again,you are a true inspiration.I start to see what character tds are all about :)

And one last question :

I missed this year to go to coledge and i decided not to go at all.So after some years of learning math ,can i write in my CV : Deep knowledge in this and that math...bla bla ???
I will have the knowledge but will the employer accept that?Maybe a good demo reel will fill the hole?Are there some courses that i can take,so i can achieve certificates in these areas of math?

thank you all

Cactus Dan
01-24-2008, 08:57 PM
Howdy,
By the way can you explain the math going on here?
Well, since it is a commercial plugin, it would be difficult for me to explain it without revealing the source code. :eek:

But I will say that any good book on calculus or physics like the "for Dummies" books will explain the math behind a lot of those kind of things. ;)

Adios,
Cactus Dan

kees
01-24-2008, 10:02 PM
I think you at least need to have the ability to learn chunks of math required to solve a problem. For example, you may not know the math for a "lookat node/controller" by heart, but as long as you are comfortable researching the math required once you need it, I think that is enough to get going as a TD.

Maybe not a dreamworks though, they are a lot more 'hard-core' then what a lot of other projects require. I.e. coming up with a new way to do waves or fur for a dreamworks movie is alot more difficult then rigging up a character required for a 'simple' tv commercial.

I think dreamworks may expect a TD to have more in-depth knowledge and experience then they would expect from a (junior) 'Rigger'.

I think you can find plenty of Rigging jobs without knowing a huge amount of math and try to expand your math-knowledge over the years until you are ready to apply at Dreamworks.

archanex
01-24-2008, 10:14 PM
What I don't understand is how you guys knew when the math would come in handy

For example, if I wanted to rig a tongue like that I would use the flex modifier in max, or maybe the spring modifier, but I would never think, "man if I only payed more attention in physics I'd be able to figure this out" So how did you come to this conclusion?

Also how do you know which problems require Physics, and which ones require Trig? or Calculus???

PEN
01-24-2008, 11:56 PM
The point at which you realize that you need to know more is the same point at which you find the built in options no longer are capable of producing the results that you are looking for.

TheMiyamotoMusashi, I'm no more a master at this then many others here, in fact people like Kees and I have been talking and sharing ideas for years about rigging characters and more. What I'm able to do now with rigs is because of all the people that have helped me along the way and years of playing with the tools and code to make it all work. Part of being a good TD is being really really stuborn and not except an inadiquate solution to a problem.

I can't wait to see what you have done with those rigs Dan, I'm on my lap top right now and it is near the end of its life and not able to play it. I do the same thing and just search for books and sites on math where others have made things work. And I try to learn it and play with the math until I understand it and can apply it. Most of the time I don't even need the solution but I look a head at what I might be asked to do and try and stay ahead of the game. One thing is sure, if you want to be a really good TD you will never stop learning.

PEN
01-25-2008, 12:00 AM
I was also asked by TheMiyamotoMusashi what other examples of needing to know math. Have a look at the car rig on my site, that is using lots of vector math to calcualte the orientation, direction and position of the vehicle as well that calculating the rotation of the wheels and soon I will also do what Dan has done and update the dynamics to my own solution instead of what is built into Max. Doing this will give me more control as I will not be limited by what the built in tools were designed to do and create something specific to what I need.

Cactus Dan
01-25-2008, 12:03 AM
Howdy,
What I don't understand is how you guys knew when the math would come in handy
It's sort of an ongoing learning thing. ;)
For example, if I wanted to rig a tongue like that I would use the flex modifier in max, or maybe the spring modifier, but I would never think, "man if I only payed more attention in physics I'd be able to figure this out" So how did you come to this conclusion?
Well, if the application you use doesn't have those features, you have to create them. :D

For that tongue example, actually the need to create a spring constraint to add to my rigging plugins for Cinema 4D came first. The tongue rig was the result of seeing what can be accomplished with the plugin.

All I knew was that I wanted to add a spring constraint to the plugin suite, but didn't know how to pull it off. So, I did the research to find out about spring simulations, and most everything explaining it involved calculus and physics. So, I had to study the math to be able to understand what I was reading about spring simulations. :blush:
Also how do you know which problems require Physics, and which ones require Trig? or Calculus???
Physics and calculus sort of go hand and hand. For example if you know something is accelerating at a certain rate of speed, and you need to calculate where it would be at a certain time interval, that would most likely need calculus. ;)

A lot of trigonometry is about calculating angles

Adios,
Cactus Dan

Grgeon
01-25-2008, 12:32 AM
I really don't want to hijack this thread, but i'm sure this question be helpful for everyone reading it.

Do you guys have recommendations for math books? specifically for linear algebra and geometry/trig ? Are the Dummies series the way to go?

Great info so far.

Cactus Dan
01-25-2008, 12:49 AM
Howdy,

Well, the main book would be "3D Math Primer for Graphics and Game Development" because that one contains the fundamentals of 3D math. ;)

Adios,
Cactus Dan

TheMiyamotoMusashi
01-25-2008, 06:28 AM
I was also asked by TheMiyamotoMusashi what other examples of needing to know math. Have a look at the car rig on my site, that is using lots of vector math to calcualte the orientation, direction and position of the vehicle as well that calculating the rotation of the wheels and soon I will also do what Dan has done and update the dynamics to my own solution instead of what is built into Max. Doing this will give me more control as I will not be limited by what the built in tools were designed to do and create something specific to what I need.

Well what you did with so much trouble in maya you can do it with constraints,soft bodies and what not.

By the way I got the point.Will get a job as rigger with not much math required and learn on the way math as i see the need for it.

PEN
01-25-2008, 01:58 PM
Well what you did with so much trouble in maya you can do it with constraints,soft bodies and what not.

Not sure I follow what you are saying here. The car rig that is on my site is in Max. And yes there are ways to do it without all the coding but you would have to see what my car does to know why I have gone down that road.

Math is needed to some level of understanding if you are planning to get any where in this business as a TD.

Another comment that I have heard in the past is "I'm a character TD" then I ask "do you code in MEL/Max Script/Insert package specific language here" and I have actualy heard people say "You don't need to code to make character rigs in ..." Well that might be the case, but you are not a TD in my books and I wouldn't hire you if you can't. The Whole idea of a TD is some one that can solve problems, make things happen that other wise wouldn't and speed up work flows for the artists. Without code, and there for some level of math you are not going to be able to do this.

This is all just my opinion after 12 years of working on features, series, games, and commercials as well as every thing inbetween.

TheMiyamotoMusashi
01-25-2008, 02:08 PM
Yeah you are right :)

Don't get me like I am against math,i maybe sounded like that.

I started with linear algebra.After some time will continue on differential math,calculus,geometry and trigonometry.

Guide me what specific things i should get into :

Recomend me all the books on math,that you think a TD should read ,please.

thanks

Cactus Dan
01-25-2008, 03:21 PM
Howdy,
Recomend me all the books on math,that you think a TD should read ,please.
Well, the list would be long. It's sort of difficult to give advice on that, because most of the time you don't really know what math you need until you're faced with a problem to solve. :sad:

But, there are two basic types of math books: math theory books, and math for programming books. The math for programming books show you how to implement the math, but a lot of them assume a certain amount of prior knowledge, so you also need the math theory books. I usually just go to the bookstore and browse until I find something interesting. The idea is to start building a reference library, so that when you encounter a problem that needs some math you don't understand, you can look it up in your reference library. ;)

Books aren't the only source, either. There are many research papers written and published on the internet in pdf format which you can download and print. Make sure you have plenty of ink and paper in your printer. :D

Patience is the key. You won't learn all that stuff overnight. As Paul mentioned, he's been doing it for 12 years. As for me, I've only been at it for 4 years, so I'm just getting started. ;)

Adios,
Cactus Dan

TheMiyamotoMusashi
01-25-2008, 03:42 PM
You got good point there.

First of all when you face a problem you need to know two things.What you should look for (stuff in linear algebra,trigonometry,calculus) and where to look for it.To know what you need for that problem you need general knowledge of all areas in mathematics not deep knowledge but on surface you know,just to have idea how things work and then decide what you need and get it.

So recomend me some places that u use for reference for math problems.Some i know are :

1. wolfram mathematica web site
2. wikipedia

post more cool stuff !!!

Cactus Dan
01-25-2008, 03:55 PM
Howdy,

Just type "3d programming math" into google and you'll get a huge list, mostly starting off with books. I typed that in and the first hit was a link to a book that I already have in my reference library. ;)

Edit:
A lot of what we have and use in 3D animation applications, was pioneered by the game programming industry, so there is a lot of very useful knowledge in that area. ;)

Adios,
Cactus Dan

eek
01-25-2008, 04:07 PM
I cant really release my little black books as theres some 6 years of research in them. But this may help you out.

http://www.charleslooker.com/ > then go to 'research'

Also as everyone else said here, a lot of patience is needed, and looking out of the box mentality. Also I tend to look at other apps/rigs, find whats cool about them then try and implement it.

If you want to do really serious stuff, for example say, beating internal rotations 180 degree problem. You will need to learn some very heavy math, such at quaternion transforms, dirac methods etc. These are things only math can help you with, because its internal to the system.

TheMiyamotoMusashi
01-25-2008, 05:07 PM
I cant really release my little black books as theres some 6 years of research in them. But this may help you out.

http://www.charleslooker.com/ > then go to 'research'

Also as everyone else said here, a lot of patience is needed, and looking out of the box mentality. Also I tend to look at other apps/rigs, find whats cool about them then try and implement it.

If you want to do really serious stuff, for example say, beating internal rotations 180 degree problem. You will need to learn some very heavy math, such at quaternion transforms, dirac methods etc. These are things only math can help you with, because its internal to the system.

That is enough :)

thanks ,nice stuff on your site !!!

PEN
01-25-2008, 06:21 PM
Math.com
mathWorld.com

Are two great placed to get an understanding of what things are and what they might do.

I think that you need to start with basic vectors, matrices and geometry. That is what everything is finaly doing. Learn what you can do to control the position of objects with math, then try it on vertices. Can you write a wave? Can you make a fish swim? Can you make a wheel rotate. Those sorts of things can get you started.

TheMiyamotoMusashi
01-25-2008, 09:44 PM
Math.com
mathWorld.com

Are two great placed to get an understanding of what things are and what they might do.

I think that you need to start with basic vectors, matrices and geometry. That is what everything is finaly doing. Learn what you can do to control the position of objects with math, then try it on vertices. Can you write a wave? Can you make a fish swim? Can you make a wheel rotate. Those sorts of things can get you started.

Do you think i should download the wolfram software and start writing some 3d stuff rotating tranlsating scaling and what not? IF not sugest a better way to learn and practice these things.

thank you all guys

eek
01-25-2008, 10:59 PM
Do you think i should download the wolfram software and start writing some 3d stuff rotating tranlsating scaling and what not? IF not sugest a better way to learn and practice these things.

thank you all guys

Na, just pick a subject your interested for example 'rotating wheel' and go for it - your'll need some trig, linear algerbra so start studying them. Then take it from there.

Stoehr
01-25-2008, 11:43 PM
Eek,
Could you give a few more examples of 3D excercises driven by math or small amount of scripting? Like things you wish you had learned early in your career?

archanex
01-26-2008, 03:00 AM
Na, just pick a subject your interested for example 'rotating wheel' and go for it - your'll need some trig, linear algerbra so start studying them. Then take it from there.


Alright, let's take your example of a wheel. Say I wanted to write an expression for making a wheel rotate when I move it along the X axis

This is a specific example that I have done before, but I have since forgotten the exact expression to make it work. I remember it was one simple line of code though

So lets say I want to research this topic. I tried googling "Rotating wheel, math" and I got this... (http://www.codeprof.com/dev-archive/197/383-1426-1971231.shtm)

not being a math guy, this of course, makes no sense to me. I have a feeling if I got a book, it would be the same story. You recommended just jumping in to an area of interest, but there is a big disconnect.

Is there an easier way barring going and getting a college degree?

Cactus Dan
01-26-2008, 03:37 AM
Howdy,
Alright, let's take your example of a wheel. Say I wanted to write an expression for making a wheel rotate when I move it along the X axis

This is a specific example that I have done before, but I have since forgotten the exact expression to make it work. I remember it was one simple line of code though

So lets say I want to research this topic. I tried googling "Rotating wheel, math" and I got this... (http://www.codeprof.com/dev-archive/197/383-1426-1971231.shtm)

not being a math guy, this of course, makes no sense to me. I have a feeling if I got a book, it would be the same story. You recommended just jumping in to an area of interest, but there is a big disconnect.

Is there an easier way barring going and getting a college degree?
Well, I just did a search trying about 10 or 15 different search parameters, until I finally tried "calculate wheels rotation" and the first hit that came up on google was this site:
http://www.geocities.com/kevman.geo/l6_exp2.htm

You just have to be more diligent in your search. ;)

Adios,
Cactus Dan

TheMiyamotoMusashi
01-26-2008, 05:37 AM
Na, just pick a subject your interested for example 'rotating wheel' and go for it - your'll need some trig, linear algerbra so start studying them. Then take it from there.

Linear algebra for this case?

How ??? Isn't linear algebra matrices and vectors,why would you need them here?

You talk about making the wheel rotate with expressions or mel, OR API ?

archanex
01-26-2008, 07:14 AM
Howdy,

Well, I just did a search trying about 10 or 15 different search parameters, until I finally tried "calculate wheels rotation" and the first hit that came up on google was this site:
http://www.geocities.com/kevman.geo/l6_exp2.htm

You just have to be more diligent in your search. ;)

Adios,
Cactus Dan

I guess I'm not explaining myself very well. For something as common as a wheel rotation, sure I could just google search a tutorial, but that still doesn't really solve my problem if nobody has written a tutorial. What if I wanted to do something less common like roll an egg, or a wheel that's not perfectly round? Then it gets a lot more complicated. The likelyhood of someone making a tutorial for that specific instance drops considerably. Without understanding the math I would not be able to figure this out.

TheMiyamotoMusashi
01-26-2008, 11:46 AM
I guess I'm not explaining myself very well. For something as common as a wheel rotation, sure I could just google search a tutorial, but that still doesn't really solve my problem if nobody has written a tutorial. What if I wanted to do something less common like roll an egg, or a wheel that's not perfectly round? Then it gets a lot more complicated. The likelyhood of someone making a tutorial for that specific instance drops considerably. Without understanding the math I would not be able to figure this out.

Roll an egg.There you go,wonderfull example :)

someone has a solution?

Cactus Dan
01-26-2008, 04:39 PM
Howdy,
I guess I'm not explaining myself very well. For something as common as a wheel rotation, sure I could just google search a tutorial, but that still doesn't really solve my problem if nobody has written a tutorial. What if I wanted to do something less common like roll an egg, or a wheel that's not perfectly round? Then it gets a lot more complicated. The likelyhood of someone making a tutorial for that specific instance drops considerably. Without understanding the math I would not be able to figure this out.
Well, the point I was trying to make is that it takes a lot of patience and hard work, and then more hard work to learn this stuff. Even with a formal education, it probably still takes a lot of hard work.

My formal math training was only in basic algebra, geometry and trigonometry on a trade school level. I went to trade school in 1979-1980 to become a printer (not much complicated math needed there :rolleyes: ). The rest of the math that I know today was learned on my own from studying hard. I've been studying 3D related math for 4 years now on my own, and I still run into problems with math that I don't know yet.

Here's a good example: 4 years ago, the very first thing I programmed for my plugins was a simple 2 bone IK expression, which took me months of diligent studying before I finally was able to understand how to accomplish that simple of a task. But I learned a lot in the process, which led to learning other things. When I look back, I sometimes think, "Man! I was a real dummy back then." :D

You have to take it in small steps, because there are so many things that need prior knowledge before you can understand them. Every simple little thing you learn helps you learn something a little more complicated. I think that was the point eek was trying to get across; start with something simple and work your way up to the more complicated things. ;)

Learning this stuff is not easy, and you have to not let yourself get too discouraged if you can't find the answer right away. I sometimes wish there was an answer store where I could walk in, state my problem, swipe my credit card and walk out with a solution. But since there isn't I have to work at it. :cry:

Adios,
Cactus Dan
P.S. BTW, I had to learn C++ all on my own, too, which I've been working at since about 1993. Holy Cow! That's 14 years, and I still have difficulties with programming issues that I don't understand yet. :D

CGTalk Moderation
01-26-2008, 04:39 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.