3D.Attack.Is...Sep.2006

Page 1


Table of Contents April 2006

Page 3

Editors Notes

Page 5-12

Interview with Kevin Capizzi - By Thomas Pasieka

Page 13-23

Modeling a Tiger Lily - By Cathie Berry aka Damsel

Page 24-29

Cup of COFFEE Part 3 - By Rui Batista

Page 30-35

Modeling a Cartoon Hand - By Mark Gmehling aka Macling

Page 36-41

Hands on "PoseMixer" Tutorial - By Thomas Pasieka aka Tank

Page 42-44

Lighthouse Part 2 Tutorial - By Bram van Gerwen

Page 45-47

Spotlight on Darren Frankovitz - By Tavy Ann

Page 48-53

Siggraph 2006 - Boston

Page 54-57

The Gallery - Best of CINEMA 4D

Page 58

Contact Page


Editor Notes! Please Read

Hello Attackers!

ADVERTISING WITH 3D ATTACK

Can you believe it's already September? Where has the summer gone? Before you know it we'll be throwing snowballs and wrapping Christmas gifts. 2007 is surely on it's way!

If you would like to advertise with 3D Attack send us an e-mail requesting our media kit and rate card. 3dattack@3dattack.net REVIEWS

Thomas and I really enjoyed our trip to Siggraph 2006 in Boston last month. The extreme heat was a bit hard to handle at times, but overall it was a great trip. We met lots of wonderful people, toured Boston and spent lots of time at Siggraph. We are looking forward to Siggraph 2007 in San Diego, California next year.

If you would like 3D Attack to evaluate and review your product, or if you are a member of the press and would like to evaluate and review the 3D Attack line of plug-ins for CINEMA 4D, feel free to contact Thomas Pasieka at: 3dattack@3dattack.net

We also wanted to let you know that we will be making some changes, in the near future, to the 3D Attack forums. Our goal is to make it a more user friendly atmosphere for our registered members. We would appreciate it if you would visit a thread we have opened and give us your input http://www.3dattack.net/forum/showthread.php?t= 5960

Contact Information 3D Attack 158 S. Saginaw St. Chesaning, Michigan 48616 - USA E-mail: 3dattack@3dattack.net TUTORIALS If you have any questions or comments regarding the tutorials within the magazine, please feel free to express them on or CINEMA 4D discussion forum at www.3dattack.net

As always, your comments, questions, suggestions and feedback are extremely important to us. Feel free to drop us a line at 3dattack@3dattack.net

CALLING ALL WRITERS

KEEP ON ATTACKING!

If you have a knack for writing and would be interested in writing tutorials and/or articles for 3D Attack, feel free to drop us an e-mail at 3dattack@ 3dattack.net net for more information.

Your 3D ATTACK Team GOODIES

DON’T BE A PIRATE! STEALING THIS MAGAZINE LEADS TO HIGHER PRICES OR IN THE WORST CASE TO DEATH OF THIS MAGAZINE! THIS MAGAZINE AND ALL IT’S CONTENT IS COPYRIGHT PROTECTED. “3D ATTACK” IS A REGISTERED TRADEMARK.

All of your goodies for this and previous issues of 3D Attack - The CINEMA 4D Magazine can be found here: www.3dattack.net/goodies/

3



Interview with Kevin Capizzi By Thomas Pasieka

usually the subject matter is a lot of fun, and I really get to stretch my 3D legs when I whip one up.

Kevin Capizzi

I've also been actively helping my author buddy Scott Sigler who's been cranking out these amazing podcast novels (scottsigler.podshow.com). He's a horror/sci-fi writer, so the content is violent and good fun, which really lends itself to some great visuals, and I always love to work on his stuff. Lastly, I've also had an incredible opportunity to do some character work for an upcoming film, and it's been challenging as much as it's kept me busy. But, my duties are almost done on that, and I'll be moving on, hopefully to even more VFX work and I'd also like to get back to my short film very soon. Thomas: How long have you been in the Graphics Design business and what was the deciding factor in your decision to go into this line of work?

Thomas: Hi Kevin and thanks for taking the time to speak with us today. Why don't we start with you telling us a little about yourself and what you do?

Kevin: Before I could even THINK of getting into the graphics design biz, I had to grow the requisite facial hair. As soon as my goatee was to regulation length, the job offers started pouring in.

Kevin: Well, first of all, let me say, I'm honored and I love what all of you are doing at 3D Attack for the CINEMA 4D community. Great work everyone, and keep it up! As for myself, I'm basically a mystery, enshrouded in an enigma, encased in the flabby shell of a thirty-something, balding dude.

Actually, I sorta fell bass-ackwards into it. Right out of high school (back in '91, for those of you keeping score), I got a silly job doing cheesy graphics for these trade show displays. Every-

I'm a terrible speller (you can't tell, 'cause I use a spellchecker), I eat way too much pizza, and drink far too much Pepsi (I've had 3 kidney stones to show for it), and I love modern rock. I'm happily married to my awesome wife Dina (who puts up with all my 3D shenanigans and late hours) and I have two incredible kids and a beautiful mortgage. I do all sorts of things, I have a day job in graphic design that pays (most) of the bills. And most days I go home to do some freelance work. Lately I've been doing some book covers for a publishing house out in Seattle (mwp.com), they publish educational books related to the film industry, so *Printed courtesy of Kevin Capizzi and Michael Wiese Productions

5


Interview with Kevin Capizzi By Thomas Pasieka

eventually put me to work for them. So I've been fortunate and there was a lot of serendipity involved. I've been doing it for about 15 years now and I feel I'm just getting started. I've said all that, but I don't want it to seem like I never had an artistic pull. In fact, I've always assumed I'd be in a creative field of some sort since I was a kid. I was a very curious, observant and weird kid who was waaay too much into movies and animation and special effects and science. And I could draw. This all sort of added up to manifest itself in strange ways when I was growing up, including commandeering my dad's super 8 camera to make crazy stop animation shorts, that would, in turn, crack my family up. That was a

*Printed courtesy of Kevin Capizzi and Michael Wiese Productions

thing was on the verge of the computer revolution, but these guys were still using key-lining and drafting and other archaic, rudimentary and downright barbaric methods. It scared the hell outta me. Sooner or later they realized a computer might speed things up a tad, and that's when I was first introduced to this computer wizardry. I immediately took to it, excelled in it, and quit my job there, to enter work at a small pre-press shop. I happened to be really good at using PhotoShop, Illustrator and the like, so they let me start pounding away at those programs like a monkey trying to bang out Shakespeare. Most of the shop's clients were local talented designers who needed our services (such as high-resolution scanning, and film output), and this put me into contact with a select few who took notice of my skills and *Printed courtesy of Kevin Capizzi and Michael Wiese Productions

6


Interview with Kevin Capizzi By Thomas Pasieka

acter that is Bob's (Christian Slater) conscience... for good or bad. The character happens to be his goldfish who's very wry and sarcastic. And he's voiced by he of Project Greenlight 3 fame: John Gulager, who's really amusing as this character. So, I was responsible for realizing the fish. Modeling, texturing, lighting, rigging, animating, lip-synching, rendering and some compositing. There's around 10 shots in all, and it's been an incredible learning experience for me, as well as a lot of fun and very hard work, as he had to look rather realistic.

*Printed courtesy of Kevin Capizzi and Michael Wiese Productions

good feeling. So I knew I wanted to enter into entertainment more than anything, but graphic design was a nice fit early on, and it took precedence for a while. It also helped to refine my sense of style and aesthetic abilities... so I'm grateful for that. Also, my facial hair is as rich, full, and lustrous as ever, so I expect even more providence and opportunity to keep knocking at my door.

I'm also doing a handful of shots that require a hummingbird. They needed it to move and behave in certain ways, so shooting something like that practically, just wasn't... practical. So we had to make it digitally, and I'm proud of our results and can't wait until everyone can see the film.

Thomas: You are currently working on the film "He Was a Quiet Man", starring Christian Slater. Can you tell us little about what your work consists of concerning this film?

Thomas: On the side, you and your good friend, Joe Lalich, are working the short film "The End." I've only seen some concept sketches, stills and test animations, but I must say this film has al-

Kevin: Yes! An amazing opportunity for me. As you might know, I love animation. This movie is a live-action "black comedy", but it requires a char7


Interview with Kevin Capizzi By Thomas Pasieka

ready peaked my curiosity and I can't wait to see the finished work. What software(s) are you and Joe using to produce this short film and on what platform (MAC/PC)? Kevin: It's Mac and CINEMA 4D for us all the way. Both of us were weaned on the Mac. It's all we've ever really known. We love where Apple has taken everything up to this point, and when we look over to the neighbors lawn, our grass still looks greener. Also, MAXON happens to be one hell of a company. They actually seem to embrace the Mac, and that's not something you see in those *other* 3D developers. Ahem. Back in the day, I cut my teeth with Inini-D and Ray Dream Studio, so, when I needed to take things to the the next level, the options were really only Lightwave, Maya or CINEMA.

tive, like PhotoShop was intuitive, so I had found the package for me. It also did everything so well. And I'm now producing results I never thought I'd be capable of. My confidence in them for support and dazzling, shinny new developments, couldn't be stronger.

I tried Lightwave for about a year, but it just never felt like home, and the UI was retched. So I turned my gaze to Maya. Used that for even less time. It was powerful, but I'm not too technically inclined, so the learning curve was a huge obstacle, also Maya's own renderer left something to be desired. I love the idea of a 3D software package that takes it all on. One place for everything. When I first used CINEMA, I immediately knew I had found it. And it all made sense to me. It was intui-

Also, look at the C4D community. Seems to be growing exponentially and that's also good when you're a budding artist looking for some help, or feedback. As far as I'm concerned, there couldn't be a better combination of software and hardware right now to achieve everything Joe & I are going for with this short film. Can you tell I love C4D? 8


Interview with Kevin Capizzi By Thomas Pasieka

Thomas: What is the film about and how long will it be?

John Malkovich, but less quirky and more to the point. It's definitely and existential journey. But we also think it's an original idea, and we really want to generate some laughs as well as some thinking from the audience.

Kevin: It's a comedy that starts at the end of an old man's life. Funny already, isn't it? Anyhow, we don't waste much time offing him. Unfortunately, what ensues after we're still keeping under wraps. But I can tell you, it's a gag based, visual comedy. It hit's on a lot of different ideas, like existence, identity, life-after-death, scale, and infinity.

We're also going for some high-quality 3D visuals, and we're really just getting started, but I think in the end, it's going to look kick-ass. We hope that it'll only be about 7 to 10 minutes long... we can't wait to unleash it to the world at large!

I don't mean to make it sound heavy, but Joe and I like to explore the funny, illogical, or ridiculous aspects of these concepts... they can really lead far down the rabbit hole (like our hapless hero) when you really just let your mind go. If I had to relate it to anything, it'd be in the vein of Being

Thomas: Will this animation be aimed at children? Adults? All audiences? Kevin: I'm going to say everyone. Although there may be some graphic and violent stuff in there. So

9


Interview with Kevin Capizzi By Thomas Pasieka

some small, impressionable children might want to hide underneath the credenza. But it'll be a good time and journey for most people, we think. We want everyone to be able to enjoy the stuff we make, but at the same time, we don't want to sacrifice our original vision of what we want this to be.

while Joe's been busy at designing the characters, and settings... as well as storyboarding. We will both be responsible for the direction, gags, timing and editing. Joe's an amazing artist, and all around amazing talent. Plus he's like way better at first person shooters than I am, so I take that as a sign of superiority, and likewise submit myself to his authority.

I'm not necessarily into making "family" movies, but if an interesting story happens to be suitable for everyone, then so be it. If it only happens to be suitable for adults, that's fine too... We're not going to cripple or water down a good idea because we want children to watch as well. That only goes to make something mediocre, and that's not good enough for us. All that said, I do think it will be able to be enjoyed by a wide range of ages.

I've been making up for it though in real time strategy, so maybe it's all evening out, and the balance throughout the plenum will one day be restored. Where was I? Oh yes. But most importantly, he's my friend and partner. When we work on projects together, there is an intangible quality that results, and we work very well together.

Thomas: What role do you play in the making of this film? Joe?

We both recognize that, and want to harness that creative energy to create some cool stuff. Plus, when making a comedy, you need someone to bounce ideas and gags off of, and there's no one better at that than Joe.

Kevin: I'm the 3D guy. Joe's the designer guy. I'm in charge of all the modeling and animation,

10


Interview with Kevin Capizzi By Thomas Pasieka

He's a really funny and talented guy. We're a good team. Unless he's got a Flak Cannon, then I bolt for the hills.

down the silvery white tunnel of the after-life, and on and on it went. It just seemed like the perfect framework for a short. And yes... the amount of effort boggles the mind. Every time I think about it, I want to put my head between my legs, and breathe into a paper bag. But the key is to break it all up into manageable chunks. Then it seems like something you can actually tackle.

Thomas: You know, as well as I do, to produce a quality animation takes more time and effort than most of us have. What sparked the idea to create this short film? Kevin: "Comedy Tourettes". And no offense to anyone who actually has TS, we just can't think of a better term for our almost impulsive tendencies for comedy.

Thomas: I know this is a hard question to answer, but do you have any idea of how long it will take to wrap up this project?

Seemingly random things will set this off. Before you know it, we're going off down a random path trying to crack each other up. Trying to one-up each other's gags, ad hoc style, until we're both on the floor, rolling.

Kevin: A year ago, I would have said a year from now. But now I know better. Although, we're in a good place now. I'm finishing up a lot of effects work, and it's time to get back to it, but now I'm armed with an arsenal of experience and tricks I didn't have before I set off to do the visual effects for "Quiet Man".

If you're an outsider looking in, it's not going to make much sense, because we've developed this sort of comedic shorthand with one another, so all it will take is a hand motion, sound, or body gesture to completely understand where the other is coming from. So we prolly look like asses.

It's tough to find time when you work as much as I need to (I got that mortgage!), and also have a family, but things are shaping up for some good production time, and I hope to have it completed in the next year or two.

But we usually end up in tears. They're not all universally funny, but every once in a while, we'll hit a gem. And we think The End is one of those gems. One of us must have cracked a joke about being taken out by a truck or something... from there on, we went down this idea of barreling

But we have a production blog (theendmovie.blogspot.com), that I update a few times a week when we're working on the film, so it's a great place to see where we're at and how it's going. Expect some good things soon! Thomas: When you're not busy working what do like to do? Kevin: I wish I could tell you that I do a lot of crazy stuff, but I'm a pretty unadventurous guy. I suppose if I wasn't so busy at this point in my life, I'd go camping more and drag the fam into those darker corners of america to soak in the scenery. I'm also very much interested in astronomy, so I'd hike out there armed with a huge set of binoculars and a tripod, and check out what the rest of the universe has been up to. I love nature and science, and find a lot of inspiration in that stuff. Un-

11


Interview with Kevin Capizzi By Thomas Pasieka

fortunately, most people seem to find it agonizingly boring, but for me, it's probably the most fascinating stuff there is.

Thomas: Thanks again Kevin. We will definitely be watching and waiting for updates on "The End." Good luck in all you do! I'll give you the last word......

If you get me started, I'll keep talking about science, astronomy, physics or even philosophy for hours. And there's no better way to enjoy those subjects than parked in front of a huge bonfire with the Milky Way over head, and friends and drinks all around.

Kevin: Well, thanks for the interview! It's been a pleasure. I also thank all your readers for taking the time, and I wish everyone well, and hope to see you all around the forums more often! I plan on having a lot to share over the next few months, and I love seeing what everyone else in the C4D community is up to. Rock on!

I, of course, also love movies and see as many as possible. Love games, reading science fiction and science non-fiction and other geeky things. But mostly, I find that I really just love hanging out with my friends. I'm a very laid-back guy, so I usually just go along for the ride, and end up enjoying whatever we do.

12


Modeling a Tiger Lily By Kathie Berry aka Damsel

In this tutorial I will show you how I model a simple flower. It’s not the only way, it’s not even possibly the best way, but it’s one way to do a simple flower model to add to your scenes. This flower won’t include every single part of a flower but it will have the basic sections which will be enough to allow you to add some flowers to your scenes that will not be viewed in a very tight camera shot. So, let’s get started.

click on Edit/Copy. Click back on the Objects tab and highlight the new polygon object. Then you will click again on the Structure tab and within that tab you will click on Edit/Paste. A list of the points you just copied and pasted should appear as in image 2.

02

We will begin by modeling the petal which will be duplicated and positioned to form the petal base of the flower. Begin by going into your top view and with the B-Spline tool selected, draw the outline of your petal like in image 1.

01

03

You will then create a new polygon object (Objects/Polygon Object). With the spline selected and in points mode, select all points. (Selection/Select All) At the top of your object manager, click on the Structure tab and you will see the points listed and selected. In that tab,

Go back to the Objects tab and you will see that when the new polygon object is highlighted, the new points that you just pasted into it will be highlighted as in image 3 . These points are what we will construct our petal’s polygons from. Name the

13


Modeling a Tiger Lily By Kathie Berry aka Damsel

new polygon object petal and you will then right click in the main window and choose the bridge tool. Next you will bridge between the points to create the polygons for the petal.

05

Bridge these points from right to left and top to bottom to give you enough polygons so that we can shape the petal to look more realistic. When you are finished bridging the polygons add a HyperNURBS object to the scene and drag your petal onto it in the object manager to make it a child of the HyperNURBS object. Your petal will then look as it does in image 4.

04

06

When you are satisfied with the look and feel of your petal, and with the petal object selected, go into your side right view and select points on the front half of the petal. You will be bending the petal a bit at the center junction. that will make it seem more realistic. If you wish to add more or less crumple feel free to do so. Image 6 shows my settings in the attribute manager.

The bend tool can be used here also, but in this instance I just used the rotate tool and the move tool one after the other to bend and position the end of the leaf as in Image 5.

You will then make copies of your petal by holding down the Ctrl key and dragging the HyperNURBS object downward three times to get a total of 4 petals. Rotate and position your petals so that they resemble the setup in Image 7.

We will add a bit more variation to our petal by using the “Crumple” function With your petal selected and in polygon mode, go to Structure/Set Point Value and in your attributes manager click on the arrows to the right of the box labeled “all” and choose Crumple (Normal) and set the value to 5 m. This will give the petal a bit of variation

Next we will build the stem of our flower. This will be accomplished simply by going into your front or right viewport and drawing a B-Spline in the

14


Modeling a Tiger Lily By Kathie Berry aka Damsel

that you need to in order for your stem to be the correct circumference. When you are finished your model should look somewhat like mine in Image 8.

07

We now need to construct the top of the stem where it joins the petals which is normally called the receptacle. In your front or right viewport and using the B-Spline draw the outline just to the right of the Y axis line in the shape of a sort of bowl like in image 9 .

09

08

When finished, add a lathe NURBS to your scene and drop the spline into it to lathe it around the axis. It will now look like image 10.

10

shape of a stem ending at the top directly under the center of your petals. Add a circle spline from the spline menu at the top of your window and set the radius anywhere from 3-10mm. Mine was set at 10 mm but you will judge what the best size is by the size of your petals. Add a Sweep NURBS object to your scene (Objects/ NURBS/Sweep NURBS) and drag the circle into it first and then the stem spline. Make sure that you have selected the XY plane in your circle settings. Do any adjustments to the size of the circle radius 15


Modeling a Tiger Lily By Kathie Berry aka Damsel

We will model the stamens or filaments of the flower next. In your right or front viewport, draw four B-Splines beginning at the center of your petals and going upward and outward with a slight bend.

the points begin and end on the Y axis since we are going to lathe them once again. After they are lathed they will form a sort of cylinder in shape. Add a Lathe NURBS object to your scene and drop the anther spline onto to it to lathe the shape.

When you have these four splines drawn and rotated so that they look like three stamens coming out from the center of your flower petals and bending slightly in different directions, select all four splines at once by holding down your Shift key and clicking on each stamen spline.

After naming the new object, select it and move it into position at the top of one of your filaments as in Image 12. You will notice that I have hidden the petals to better see my placement of the anther. Make three more copies of this object and position them at the top of each of the filaments.

Next go to Objects/Connect in your Object manager and this will join all three splines in to a new spline object. You can now delete the original splines and you will be left with your new spline that is a combination of all three together. Add a circle spline like you did for your stem and make sure that it is set to the XP plane.

12

Set the radius to 2 m and add a Sweep NURBS object to your scene. Drag the circle into the Sweep NURBS first and then the new spline object to form the sweeps. Your model should now look somewhat like mine in Image 11.

11

You will now have an object somewhat like mine in image 13. We will be adding some displacement to the anthers when we do our texturing to give them a fizzy appearance. It’s now time to model our leaves. We will basically model then just like we did our petals creating a B-Spline outline in the top viewport, then a polygon object, copying the points in the Structure tab, then pasting them into the polygon object in the Structure menu. A good practice to follow is to re-name all of the objects that you create along the way so that you don’t get confused later on.

Finally we will bridge the new points to form our leaf polygons. See the spline shape of my leaf in Image 14. Add a HyperNURBS object to your scene and drag the leaf onto it to make it a child of the HyperNURBS.

We will now construct the top of the stamens which are called the anthers. In your right or front viewport, draw a B-Spline anywhere in the window above or below your flower making sure that 16


Modeling a Tiger Lily By Kathie Berry aka Damsel

13

15

16

14

Bend your leaf at the end by selecting a few points toward the tip and using the rotate and move tools as we did with our petal. See the bend and rotate in Image 15. Then duplicate the leaf three more times by clicking on the object in your object manager, holding down the Ctrl key and dragging the copies downward. When you are finished, position the new leaves around your stem so that it is somewhat like mine in Image 16.

At this point our flower model is completed as in Image 17 and we will move on to modeling our vase. With all four viewports visible create a circle spline in your right view, scale it smaller and make copies of this spline by holding down your Crtl key

17


Modeling a Tiger Lily By Kathie Berry aka Damsel

17

18

and dragging downward. The shape of your vase is your decision and you will control that by the size and placement of your splines in the Y axis. Make sure to only move the splines upward in the Y direction however and not in the X or Z direction. Then add a Loft NURBS object to your scene and select all of your vase splines in the order that you created them and drag them onto the Loft NURBS object. You will see my vase splines and the vase after lofting in Image 18. Notice that I have hidden the flower in my scene to have an unobstructed view of my vase while modeling it.

tom of the vase and set it to Fillet Cap. Our vase is now done other than the texturing and it’s time to add those textures now. Image 19.

In the attributes manager with your Loft NURBS object selected, in edge mode and under the Caps tab, set the top and bottom caps to None.

We will first create our petal texture. I looked at many images of Tiger Lilies to decide just what sort of texture that I wanted to create in Photoshop. I finally decided on a red and white texture with black speckles.

Next rotate your scene and choose Select/Loop Selection and select the bottom loop of your vase. Go to Structure/Close Polygon Hole to close the bottom of your vase by creating a new polygon. With the same edge still selected click on Structure/Bevel and drag slightly in your viewport to put a small bevel on the bottom of your vase.

In Photoshop create an image 1200x1200 pixels. I filled this image with a light yellowish color and then added a new layer. The creation of the texture was simply painting the colors and shape as I desired and was guided by looking at images of tiger lilies.

If you have earlier versions of CINEMA 4D another option would be to leave a cap on the bot-

You will see the texturing of the petal in Photoshop by looking at image 20.

18


Modeling a Tiger Lily By Kathie Berry aka Damsel

19

20

Back in CINEMA 4D, I created a new material and with the color channel active, I directed it to my image of the tiger lily texture.

to 9.412%. In the specular channel, I have a width of 50%, a height of 19% with falloff and inner width both being 0. See image 21.

For the bump channel, I added noise and in the noise settings I chose wavy turbulence set at a global scale of 346%. The bump strength was set

19


Modeling a Tiger Lily By Kathie Berry aka Damsel

21

22

choose fusion. In the fusion settings we will add a gradient in the blend channel with dark almost black deep rose color on the left to a lighter rose color on the right. Set the turbulence to 25%. See image 23.

Name your textures as you create them to avoid confusion later. Next we will texture the filaments. Create a new texture, name it and in the color channel choose a soft pinkish color. My settings were RGB – 214-133-131, set at 73% brightness. Specular channel was 50% width, 39% height with falloff and inner width both being 0. See image 22.

23

For the receptacle texture we will do another layered texture for the color channel. With a color setting of RGB – 215-202-11 and the brightness set to 100%, we will add another layer which will be a gradient. A very dark green almost black is

For the anther texture, we will add a somewhat darker pinkish red color in the color channel set to RGB – 145-51-49 with the brightness set to 80%. We will add a layer channel to the color and

20


Modeling a Tiger Lily By Kathie Berry aka Damsel

on the left going to a light greenish yellow on the right. Turbulence set to 47%. The bump channel is simple turbulence with the settings seen in Image 24.

26

24

It’s time to move on to the texturing of our leaf. Our leaf texture is fairly simple with a very dark green color in the color channel and in the bump channel we have a simple turbulences with the settings you see in image 25. The bump strength is set at 37%. Use this texture both for the leaves and the stem.

white set at 10%. The bump channel is random noise set as a medium grey on the top and white on the bottom and a global scale at 12%. Specular is 50% width and 41% height with falloff and inner width both being 0. See image 27 for settings.

25

27

And in image 26 we have our flower all textured. Finally for our vase, I have created and included a frosted glass texture for you to use. The settings are a white color set to 100% brightness, and in the diffusion channel we have fresnel set with a white color on the left going to a very light grey on the right. Transparency is white set at 75.207% with a refraction of 1.35. Reflection is

21


Modeling a Tiger Lily By Kathie Berry aka Damsel

For my scene I added a sky and for the texture, a simple gradient in the color channel. The gradient is set to 2D-V with a dark blue-green on the left (bottom) going to a lighter almost white on the right. (top) See settings in Image 28.

For the floor, I added a disc and applied a faded floor texture with the alpha channel settings in image 29, which allows it to blend into the background seamlessly.

29

28

And there you have it. I hope you had fun working your way through creating a simple flower modeling which will give you another item to add that extra touch to your scenes. If you have any questions feel free to email me and I will help in any way that I can. Until next time, keep on C4D’ing!!! Sincerely, Kathie Berry aka Damsel http://www.berry-deisgns.com Kathie@berry-designs.com

28

22


Modeling a Tiger Lily By Kathie Berry aka Damsel

23


Cup of COFFEE - Part 3 By Rui Batista

Once again we meet, here on these pages. I truly hope that these C.O.F.F.E.E. lessons are not boring, since it is such a dry theme to most of you, artistically-biased-people.

noticed that the base_color and year_of_manufacture use the variable naming syntax (the underscore instead of a space). That is because all data associated with objects is, in fact, a variable... as in, it stores values. Attached to the object car we can have a tool that calculates, for example, the value of devalorization of the car, based on the year it was made.

Anyway, just to make sure I'm not bothering you much, I decided to break the rules a bit and teach you something more exciting in this lesson. I say that I'm breaking the rules because, following the correct time-continuum of programming teachings, I should be giving you more insights about more general programming concepts.

How do we access the data from the car object? Simple... like this: car.name_of_data

But, you guys (and girls, I hope) have been such good students that I decided that it was about time you started doing more productive stuff and jump right into specific C.O.F.F.E.E. stuff.

For example: car.color Or, to access a tool:

To do so, I must introduce you to object-oriented programming. Don't confuse this "object" with the objects you have in CINEMA 4D (Cubes, Spheres, Cones, Lights, Splines, etc). Even so, they are closely related, as you will soon understand.

car->name_of_tool(); For example: car->devalorization()

So, what is an "object" in programming? (In our case, in C.O.F.F.E.E.)

Now we want to define a more specific car. Let’s say, a family car. So, we will define a new object named family, based on the object car. This is VERY IMPORTANT!! It is a new object based on another object. We define an object named family and we add it some more data:

Put in a very simple way, it’s an assembly of data and tools to manipulate that data that can also inherit or legate data and tools from/to other objects. Doesn't sound like a very simple explanation, does it? I will give some examples.

- number_of_seats - number_of_doors - trunk_volume

Objects can be anything and, in my first example, I will say that my object is a car. To define a simple car (our object) I can have several items and those items are my data or, more precisely, the data of the car object. Let’s keep it simple. The data I want to use to define my object is:

Let’s just keep it this way... I want to keep it simple. Attached to the object family we can also define a couple more tools. Lets say, for example, that we have a tool that calculates the maximum weight of the car called, appropriately, maximum_weight().

- base_color - weight - year_of_manufacture

Notice the opening and closing parenthesis! This means that maximum_weight is a "tool" (a function), not some data (a variable). Now comes the fun part. Since we based the family object on the car object, the family object, automatically,

What? Just that? Yes... because I'm just defining a car and ALL cars have, at least a color, a weight and a year when they were made. You may have 24


Cup of COFFEE - Part 3 By Rui Batista

inherited all the data and the tools from the car object. So, the family object also has a color, a weight and a year of manufacture. The family object also has access to all the tools that the car object has. So, if we want to define, yet, another object, lets say a more specific family car, we can do the following: we now define a new object named renault (hey! I'm European... I can very well choose a European brand ;-) You can add it a few more data:

car. So, I create a new "variable" whose type is, lets say, twingo... since my car was a twingo... dah!!! ;-) So, I call it my_car. If we would do it in C.O.F.F.E.E., I would write something like: var my_car; my_car=new(twingo); Don't type these C.O.F.F.E.E. scripts!! They are just for the sake of example. Real, valid, C.O.F.F.E.E. scripts are enclosed between main (doc,op) { ... }, remember?

- country_of_origin - main_factory_location And, just to wrap it up nicely, we define yet another object. This time a very specific car. This one, based on the renault object, we will call it twingo (it was my first car, so bear with me, ok? ;-) We can add it a lot more data now:

So, now we have a new variable of type twingo. We can assign values to this variable this way: my_car.country_of_origin="France"; my_car.number_of_seats=4; my_car.year_of_manufacture=1995;

- custom_color - licence_plate - max_speed - number_of_cylinders etc...

We can also perform calculations using its tools, like: println(my_car->maximum_weight());

You could also define many tools associated with the object twingo, like, for instance, average_speed or fuel_consumption. Notice that the tools names must also conform to the functions naming syntax. But, they are exactly the same as the variable naming syntax so, no worries here.

... Well, if only we had given it enough information by filling in all the data it requires ;-) Let’s summarize the characteristics of objects: - they can have data attached. - that data is easy to understand because it is properly named. - they can have tools (functions) attached. - those functions can work with all the data that is attached to the object. - it’s possible to derive objects from other objects and they inherit all the data and functions from the "parent" object.

Now that we have four objects defined, all of them based on a more generic object we can create a new object. Notice the difference between define and create!! First we defined the objects: we defined what data would they contain and what tools they would have attached but we haven't created any real object, just the definition of it. Now we create a new object and feed it with some real data.

I know I didn't show you code to create new objects. It was all very abstract so, why did I bother to talk so much about objects? Because, almost everything in C.O.F.F.E.E. is based on objects and, if you understand the philosophy behind objects, EVERYTHING I will teach from now on will be much simpler. I didn't bother telling you how to create your own objects (a new object type, in C.O.F.F.E.E., is called a class, by the

In C.O.F.F.E.E. that is done with the new command, but I'm just giving you a very generic example of what objects are, so don't worry about programming language terms, ok? So, let’s say I want to create an object that describes my own 25


Cup of COFFEE - Part 3 By Rui Batista

way) because most of you will never need to create new objects anyway. CINEMA 4D already has lots and lots (and I really mean LOTS!!) of object types defined for you. You just need to understand what they are and how to deal with them.

are attached to objects. For example, getname will not work. Neither will Getname or even GETname. Only GetName will execute the relevant function that, in this case, simply returns the name of the object it is attached to. And, is doc an object too? Sure it is. Let’s write a more complex script to prove that:

Now, I have a little surprise for you :-) Did you know that you have already seen a couple of objects since the very first lesson? No way!! Really?!?!

main(doc,op) { var obj; obj=doc->GetFirstObject(); println(obj->GetName()); }

Yup... remember those inconspicuous variables between the parenthesis, after the name of the main function? The doc and op variables? You got it!! They are objects. Both have data and functions attached. Wanna see something fun? Create a Null object (yes, this time a real CINEMA 4D geometric object), add it a C.O.F.F.E.E. tag and type this:

This script will print the name of whatever object is on the top of the Object Manager list. Wow!! We are already using variables and object to do something more than print silly stuff! The object doc is different from the object op, of course, even if they follow the same rules. The doc object is a kind of object that deals with CINEMA 4D documents and the op object is a kind of object that deals with CINEMA 4D objects (Cubes, Spheres, Lights, Nulls, HyperNURBS, etc).

main(doc,op) { println(op->GetName()); } Press Execute and check out the Console. The last entry there should be the name of the object that contains the C.O.F.F.E.E. tag, probably, "Null Object".

Sorry, no pun intended, really. It may sound a bit confusing using the word "object" to refer to programming objects and 3D objects but you should figure out which one I'm referring to, out of context. Anyway, to make it simpler, I will from now on, call primitives to all 3D objects inside CINEMA 4D. I can show you a few more functions associated with primitives and documents, since now,

Try the following: Create a few different objects (cubes, spheres, cones, lights, splines, etc). Now, keeping the Console window open, drag the C.O.F.F.E.E. tag to each of the objects you created. On the Console, you should see each object name appear printed. Cool, isn't it? What exactly does op->GetName() do?

I assume you already understand the philosophy behind object oriented programming. For example, if I wanted to search for a primitive with a specific name inside the current document, I could do this:

GetName() is a function that is attached to the object op. And what is the object op? It’s an (programming) object that "contains" the (geometric) object whose C.O.F.F.E.E. tag is running the main function.

main(doc,op) { var obj; obj=doc->FindObject("PalmTree"); }

I closed the word contains between quotes because it doesn't really contain anything... it’s just pointing to the object, as in, referencing it. You should pay special attention to the capitalization of the names of the functions that 26


Cup of COFFEE - Part 3 By Rui Batista

This would search for an object named "PalmTree" (without the quotes, of course). This object could be anything: a Cube (not a very pretty palm tree, lets face it), a Sphere (not a great improvement, from a Cube), a polygonal object (now, that could very well be a palm tree), a Null (that could contain a set of objects that would, in fact, assemble into a palm tree), or anything else.

you got the point, didn't you? This means that "if not obj" or... if the obj variable has a value of Nil, we do something. Actually, using a reverse syntax, if you check for the non-existence of a value inside a variable by typing !variable_name, you can check that it contains something by simple typing the variable_name after the if command. Like this: main(doc,op) { var obj; obj=doc->FindObject("Torus"); if(obj) println("What the heck!! There is an object named Torus!"); else println("Oh, it was a wild-goose chase... no Torus in here."); }

If it finds any object named "PalmTree", starting from the very first object in the document, it will assign that object to the variable obj. If it doesn't find any matching object, the variable obj will get a value of Nil. Nil is the equivalent of a Null, but for programming. The name is almost the same, isn't it? ;-) So, in programming, Nil stands for Nothing, an empty value, something with no defined value. So, we could improve the last script a bit by doing:

This is getting more fun now, isn't it? By the way, the FindObject() function returns the first occurrence of the object you searched for, if it finds any. So, if you have more than one object named "Torus", the FindObject() function will return the one that is more on top. I will introduce another type of object, now. Lets see if you can spot what object is. Type this C.O.F.F.E.E. script but DON'T execute it!!

main(doc,op) { var obj; obj=doc->FindObject("Torus"); if(!obj) println("Are you crazy? There is no such object in the document!"); else println("Mmmmmm, I did found a nice looking Torus somewhere in here."); }

main(doc,op) { var obj,pos; obj=doc->FindObject("Torus"); if(obj) { pos=obj->GetPosition(); println("The object Torus is placed at position ("+pos.x+","+pos.y+","+pos.z+")"); } }

I believe the only thing that is a bit weird although, somehow familiar, if you remember the last lesson - is the (!obj) Remember what is the expression for NOT EQUAL? It was !=, right? So, the exclamation point stands for NOT, right? In that case, we could read the line:

Before executing this script (if you haven't already, you hasty coder!! ;-) let’s see if you spotted the new type of object. So, the doc variable holds an object of the type "document".

if(!obj)... as If Not Object...

The obj variable hold an object of the type "primitive". This naming ("document " and "primitive") is arbitrary; of course... it’s only for you

Ok, ok... it’s not a very correct English, but I guess 27


Cup of COFFEE - Part 3 By Rui Batista

to understand what type of data each object deals with. The new type of object is held by the pos variable and is of type "position". It has three data values attached: x, y and z. Since you assigned it to the variable pos, you can access its data by typing pos.x, pos.y and pos.z

the parameter we feed it with into its equivalent representation with characters. For example, tostring(3.14) will return "3.14" or, in other words, the character "3", followed by the character ".", followed by the character "1" and, finally, the character "4". To get rid of the error, retype the offending line to:

So, the object of type "primitive" (that is held by the variable obj) has a function attached to it, called GetPosition(). As you can see by the opening and closing parenthesis, it requires no parameters. But it returns an object of type "position" that holds the position coordinates of the object it points to.

println("The object Torus is placed at position ("+tostring(pos.x)+","+tostring(pos.y)+","+tostring (pos.z)+")"); As you can see, we can place any value that evaluates to a number as the parameter for tostring. It could be a literal number like the example above (yes, the 3.14) or any variable or expression that evaluates to a number.

Understood? It may sound hard at first, but its quite logical. Really! Believe me. If you don't, just read the last explanations a few more times and, if necessary, scribble some doodles to "graphicalize" the concepts.

This is true for all functions. If a function requires a string, you can feed it with whatever value that evaluates to a string, be it a literal expression, a variable, an expression or even another function whose result is a string.

Now, execute the script. Ops... there is an error message in the Console. It reads something like: COFFEE ERROR! (5) Incompatible values... STRING / FLOAT File:expression Line:9

You should have, printed in the Console, something like this: The object Torus is placed (0.000000,0.000000,0.000000)

It is telling that there is an error in line 9 of the file expression. A file? Well, COFFEE code can appear in tags (they are considered expressions) or in files (they are, usually, plug-ins).

at

position

Try moving the Torus around. Oh, I assume that, for all this to work, that you DO HAVE, in fact, an object named "Torus" in your document ;-) The C.O.F.F.E.E. tag can be attached to any object (even the Torus itself). Since it is searching for an object, there is no special requirement as to where the tag must be placed. Moving the Torus around, you should get something like this in the Console:

So, it is telling you that this code is from an expression. And it also tells you that is an error number 5, namely, you are using a value that is not compatible with that particular context. What could it be? Well, the println command requires a string of characters and that is what we are feeding it with... until the point we typed pos.x

The object Torus is placed (0.000000,0.000000,0.000000) The object Torus is placed (3.834658,-6.183756,5.047592) The object Torus is placed (6.098374,-3.027564,8.905743) The object Torus is placed (9.983744,-10.658736,6.234875) The object Torus is placed (12.347572,-15.657584,9.577455)

Ops, pos.x holds a numerical value, not a real text. So, we must transform the number it holds into a string of characters, in order to make it compatible with what the println command requires. Luckily, there is such a function in C.O.F.F.E.E. It’s called tostring and it changes 28

at

position

at

position

at

position

at

position

at

position


Cup of COFFEE - Part 3 By Rui Batista

The object Torus is placed at (14.665849,-17.023374,10.123497) The object Torus is placed at (18.835734,-19.002347,12.039457) ...

position

x, y and z. So, you simply give it the whole object (in this case, stored inside the pos variable) and the SetPosition function uses whatever it needs from it.

position

You can drag the C.O.F.F.E.E. tag that is assigned to the Cube to any other object and it will work with whatever object it is attached to. That is because we used the op object that holds the primitive whose C.O.F.F.E.E. tag is executing. You can even clone the tag to as many objects you want. It will work with all.

Just to finish, and to keep all this coherent, now that we know how to read the position of a primitive, how to we set its position to a specific value? As you will notice as you learn C.O.F.F.E.E., when we have a function that reads a value, there is usually an equivalent function to set the correspondent value. So, if there is a function named GetPosition, there is also another named SetPosition.

Wanna see a nice trick? Make sure the C.O.F.F.E.E. tag is assigned to the Cube. Now create a plane and place the Cube inside it, as a child. Now, rotate the Plane. The Cube rotated accordingly, as expected, right? Now move the Cube around. Wow!!

Let’s now write a script that prevents the object it is attached to, to move in the Y axis. This is useful to objects that we want to keep in the ground, for example.

It ALWAYS stays on the plane ground level!!! As you can see, the GetPosition and SetPosition functions work with the local coordinates of the primitives. But I'm starting to wander... All those concepts fit much more nicely in a future lesson, when you already have a more in-depth knowledge of C.O.F.F.E.E.

Create a Cube, add to it a C.O.F.F.E.E. tag and type the following: main(doc,op) { var pos;

I'm gonna wrap this lesson up. I believe that, this month, you have a lot more information to deal with. Finally you are starting to do interesting stuff, aren’t you? ;-)

pos=op->GetPosition(); pos.y=0; op->SetPosition(pos); }

My final advice is to read this lesson as many times as you need, if you didn't fully understand the concept of objects. Because, like I said before: if you master the concept of objects, understanding all the following C.O.F.F.E.E. commands and functions will be much easier.

Of course, the SetPosition function requires a parameter. After all, it has to know what position we are assigning to the primitive. The GetPosition function requires no parameters... it simply returns a value.

Until next month and Keep on Attacking... this time, attack the objects!! ;-)

You may have also noticed that the parameter we used in the SetPosition function is the whole pos variable. No, we can't simply give it the Y position; even if that is the only coordinate we want to change.

Rui Batista

The SetPosition function requires a parameter of type "position" and that parameter holds all axis:

29


Modeling a Cartoon Hand By Mark Gmehling

Blocking out a finger I start by creating a cube (Objects- PrimitiveCube) and adjust its attributes: size x/y/z to 200/ 200/800 and segments x/y/z to 2/2/2, then I hit C to make it editable and rename it to “finger” by double-clicking it in the object manager. In poly mode I live–select the four polygons at the end of the cube and delete them because I’m going to attach the flat of the hand there later. In point mode you can delete the remaining, not needed points, but that’s not important at the moment- running an optimize command later will delete all of the points that are not needed. With the cube object selected I alt-click on the null objects symbol- that makes the cube automatically a child of a new created null object. After that I alt-click on the HyperNURBS symbol and the newly created null is child of a HyperNURBS object (This works since rel.9- in older versions you have to create the null and HyperNURBS objects and adjust the hierarchy by dragging the objects onto each other). In side view (F3) and point mode I rectangle select (make sure to disable “only visible” in this tools attributes) the middle row of points of the finger tip and lift (e) it up a little bit. Now I live select the mid point of the finger tip and move (e) it forward a little bit to define a nice rounded finger tip. (PIC_01) Hi there Attackers, In this issue’s beginners modeling tutorial I want to show you how to model a cartoon characters hand (three fingers and a thumb) efficiently. I’m using C4D Rel.9.6, but you’re able to follow all modeling steps even with Rel.6. Here’s a short brief of the steps: 1. 2. 3. 4. 5.

Blocking out a finger Duplicating the finger/ adjusting size and position Connecting surfaces/ tweaking points Blocking out the flat of the hand Connecting surfaces/ tweaking points

01

Switch to front view (F2) and rectangle-select the point rows to round the cubic finger profile a little

30


Modeling a Cartoon Hand By Mark Gmehling

bit by using the scale tool (t) and move tool (e)check (PIC_02) to see the point rows I tweaked.

03

02

Back in side view (F3) I use the knife tool (k) in line mode (default) to add two more rows of points left and right of the already existing row at the middle the finger. When dragging the tool in the desired area, I hold down the shift-key to make sure the cut is 100% vertical. Furthermore, I disable “visible only” in the tools attributes to ensure the whole geometry will be cut.

To shape the root area of the finger I add another row of points with the knife tool (k) and slightly scale the root point row in x/y/z axis. Furthermore I, move (e) the two root-rows in z-direction to adjust the finger segments size. (PIC_04)

04

Now I rectangle-select each of the new rows and slightly rotate (r) it as seen in PIC_02. Then I rectangle-select the middle row and move (e) it slightly up. After that I scale (t), the still selected row, slightly bigger along the x-axis by dragging the x-axis handle of the tool. To be able to drag the x-axis comfortably I switch to perspective-view (F1). In side-view (F3) I add another point row at the tip of the finger using the knife tool (k)- PIC_03again I hold down shift while dragging to get a 100% vertical cut. Again I slightly rotate (r) the still selected row and scale (t) it bigger along the xaxis in perspective view (F1). (PIC_03)

Now I do some final tweaks to make the finger shape more believable: In side view (F3) I select the “bottom” area of the finger and rotate (r) it to make the root-area thicker than the tip-area of the finger.

Now, the first segment of the finger is done. To add the second segments I rectangle-select the first row of points of the finger and move (e) it back in z-direction in side-view (F3). Now I add three rows to shape the first segments knuckle using the knife-tool (k). As I did before, I slightly rotate (r) the outer two rows and scale the middleone in x-axis and move (e) it up slightly- PIC_04.

Furthermore, some points at the tip are getting moved (e) up a little bit too- at the bottom I slightly rotate (r) the two point rows to prepare the finger tip for later connection with the flat of the hand in a believable way. (PIC_05)

31


Modeling a Cartoon Hand By Mark Gmehling

Depending on how stylized you want your hand you can add three more point rows with the knife tool (k) between the knuckles to shape each segments thickness- by moving (e) the lower points of the newly inserted rows down slightly(PIC_07)

05

Duplicating the finger/ adjusting size and position At this point I leave the finger like it is- feel free to tweak the shape till you’re satisfied with its shape. I switch back to object mode and duplicate the finger two times by ctrl-dragging it in the object manager. In top-view (F2) I place the two copies using the move-tool (e). Make sure the duplicates are staying in the null object and use your own hand as reference to check the placement and direction of the fingers! –PIC_08. To tweak each fingers direction I use the rotate (r) tool (PIC_08)

In side-view the finger looks quite nice alreadyTime to have a look at the finger from top-view (F2): Again I have to tweak the thickness from root to tip- rectangle selecting each row and using the scale tool in x-axis works best for me. Another option would be using a taper-deformer, but at this time there are not that many point rows so I decide to do that by hand. Actually, I scale the two root rows at once, and the three knuckle rows at once, and adjust the shape. Take a look at (PIC_06)

08 06

09

07

32


Modeling a Cartoon Hand By Mark Gmehling

Now it’s time to adjust each fingers size in relation to the other fingers. I scale the first finger quite small and the third finger slightly smaller in zdirection using the scale (t) tool. The last thing in the case of placement is the front view (F4)- I use the move-tool (e) to adjust the y-placement and slightly move the first and third finger downPIC_09.

B

Connecting surfaces/ tweaking points To connect the surfaces I select them in the object manager and right click- connect. A new geometry is created containing all three-finger shapes. I delete the three single finger surfaces and drag the new created object in the null object to get it rounded by the hypernurbs. To create the transitions between the fingers I use the bridge tool (b) in edge mode. To get a clearer view I press Q to disable the hypernurbs temporarily. Now I drag the transitions between the relating edges- PIC_10. After that I switch to point-mode and select the fingers root points and easy-clone them (Take a look for “easy-clone” on the C4D plug-in site on the www if you’re not already using this useful little helper) and move (e) the new points back in z-direction. Again, I use the bridgetool (b) to block out the flat of the hand.

C

PIC_10A PIC_10B PIC_10C Now I do some tweaks to minimize the number of polygons because mostly cartoon character arms are extruded from four polygons so I need fewer polygons than I have to get nice transition to the lowpoly arm. In perspective-view I live-select the

three points shown and weld them (Structureweld). I repeat this step three more times (one at the top/outside of the hand- 2 times at the inside of the hand- take a look at (PIC_11).

10

The results are some triangles- to get rid of them I select the edges shown in (PIC_11) and go to

33


Modeling a Cartoon Hand By Mark Gmehling

11

12

B

functions- melt. The result is four sided polygons. (PIC_11A PIC_11_B)

I use the knife-tool (k) to insert two rows of points. After that I choose four polygons (polygon-mode) -placed in thumb root area- and delete them.

B

PIC_12_A PIC_12_B To create the thumb I use a part of a finger: I select the polygons shown in PIC_13 and go to Functions- split- a new geometry is added to the scene- the duplicate of the selected ploygons. In global mode I move (e)/ rotate (r) them 90 degrees in place and scale the shape- take a look at pic_13 and use your own hand as reference in case of placement/size/direction etc.What often is done wrong is the placement of the thumb because of its height- notice that the thumb is placed lower than the fingers when you look from side view.

In top-view (F2) I rectangle select the root pointrow and easy-clone again/ moving the new points in z-direction and bridge (b) them to create new geometry to create enough space to insert some new intersections to prepare the flat of the hand to attach the thumb –PIC_12.

PIC_13 (next page)

34


Modeling a Cartoon Hand By Mark Gmehling

Finally, I repeat the same procedure as above to reduce the polycount when I’m coming close to the arm. I weld the points shown in PIC_15 to create pairs of triangles and melt (Functions-melt) the edges to get four sided polys in these areas.

13

After that I easy-clone the point shown in PIC_15, move (e) it down and bridge (b) the gap. Voila- I’m able to connect the hand with four-poly arm geometry. To prepare the area for that I live-select

Connecting surfaces/ tweaking points Again I select the hand shape and the new created thumb shape and right click- connect in the object manager to make them one surface- I delete the old single surfaces and use the weld command in point mode to create the transition. After that, a little bit point-tweaking is needed to create a nice transition from thumb to the flat of the hand- PIC_14.

the four polygons and extrude (d) them two times. OK- that’s all for today- I hope this little modelling tutorial was understandable for C4D newbies. In the goodies folder of this issue you’ll find the hand_final.c4d file. Don’t hesitate to ask questions you may have on our forum. The community will be able to help you for sure. Keep Attacking and Cya onboard! Mark Gmehling

35


Hands on "Pose Mixer" By Thomas Pasieka

Hi there folks. Did you ever find yourself in the situation where it would have been useful to use "Pose Mixer"? Yeah? But you couldn't figure it out? Well, it's actually quite simply and that's why I thought that it would be a good idea to talk about it and show you. I recently got a new freelance job where the client asked me to create some sort of "Blob" or "Drop" looking character. Well, I started the character by using a sphere as the starting point and with the use of a deformer and a little bit of poly pushing I got the desired form/shape of

First off, we want to create the overall look of the character. I will stick with a sort of "blob/drop" looking character which makes it easier to follow and easier for me to explain since we only have to worry about a few changes to the character itself when we start using "PoseMixer". Start by creating a "sphere" and make sure you convert it to a polygon object (Press the "C" key on your keyboard after you created the object). Now that you've converted the object you want to

the character. However, I thought it might be a good idea to give the character at least some "eye" movement since it didn't have a mouth. So I started using "Posemixer" and gave him various expressions by creating different "eyebrow" shapes. It looked pretty decent to me and gave the character some "life". The client however, didn't want that "fancy" stuff so we dropped that idea. The game character itself is more simple and his eyes move a little bit with the body. Although, this is done with the game engine itself so it didn't require any work on my end. Nevertheless, I thought this would make for a good tutorial since many beginners have a problem with this task. The character used in this tutorial looks of course different from the actual game character. Well, enough talk. Let's get started.

use the "Polygon Tool". Click on the symbol on the left menu and afterwards click on the "Live Selection" tool on the top menu. This will assure that we are able to select polygons now. Set the 36


Hands on "Pose Mixer" By Thomas Pasieka

"Live Selection" mode to "Soft Selection". Why? Simply because we want some sort of gradual selection. Set the parameter to around 200. You will see a yellow gradient on the object once you've selected a few polygons on the bottom. The gradient indicates that the selection is "softly" spreading over the neighboring polygons. Exactly what we want. Now, use the "Scale" tool and move your mouse so that the bottom of the character gets a little "fatter". Do the same with the top of the character. Select a few polygons on top and "shrink" the polygons by using the "Scale" tool. Go ahead and form your character till you reach the desired state. Once satisfied we will continue to shape our characters "eyes" or rather "eye sockets". If you take a look at the following screenshots you will see that this is just a matter of pulling out several "points" till you have a nice form. It's really not that difficult.

Time to create the eyes! A simple sphere once again is being used for this task. No magic tricks needed. Create a nice looking "eye" texture like you see in the pictures. If you have issues with that then just open my file that you will find in the "goodies" folder. Read the "Editor's Notes" on where to find the files. However, I used a gradient as you can see and set the type to "2D Circular". I also gave the eyes a "Target" in case the character moves around or

needs to look in a different direction you can sim37


Hands on "Pose Mixer" By Thomas Pasieka

ply use a target object. This will give you the ability to have him look wherever you move the target. Place the eyes into the eye sockets. I also used a taper deformer and some scaling to give the eye some what more of an oval look. You don't have to do it that way of course. It's up to you. Use a "HyperNURB" object and make the character a child of this. This will "smooth" the characters polygon. Easy enough so far isn't it? All right, I think it's time to get to the "Pose Mixer" part of it. Make sure that you put the "eyes" as a child under your character in the manager on the

right. Just have a look at the picture above. Once you have all that done, and everything is in it's proper place, you should create a new "NullObject". "Right click" on this Null-Object and choose the "PoseMixer" Mocca tag from the menu. Make sure that you only have "Points" activated in the "PoseMixer" manager. Duplicate your character (only the polygon model - without eyes). Rename it to "Default" and place it as a child under the PoserMixer "Null-Object". Also rename the the Character to "Character" in case you didn't do that yet. When you click on the "PoseMixer" tag you will see that there are two fields for "Poses". Drag the "Default" object into the "Default Pose" space (have a look at the screenshots for clarification). Drag the Character

38


Hands on "Pose Mixer" By Thomas Pasieka

onto the "Destination" field. That's the first and probably most important part. You just now defined the "original" state of the character. Your setup should look like the last picture in the row to the left. Double click on the little gray icons to turn them invisible. The first gray icon is to make it invisible in your viewport. The second icon is to make it invisible in your final rendering. As you can see the main "PoseMixer" object has both turn red (deactivated). The first "Default" pose is only invisible to the viewport. That's what you want. The original character is left alone so it's visible to you as you can see in the last picture on the left of this page. Now we will come to the part where we will actually create another "Pose" of our character. Duplicate the "Default" object and move it out of the "PoseMixer" hierarchy. Have a look at the picture below.

Turn your original object invisible for the time being so you can see what you are doing. You can now deform your character. In this case I basically moved the right eyebrow up a little bit by choosing several points on the character and moving them up or down. You can place that object into a HyperNURB if you want so you can see the result. Once satisfied you should rename the object to "Right Eyebrow". Place the "Right Eyebrow" object back under the PoseMixer object and make it invisible to the viewport. Make your main Character visible again. Have a look at the next screen39


Hands on "Pose Mixer" By Thomas Pasieka

shot. As you can see I dragged the "Right Eyebrow" object into the first field (next to the slider).

Continue these steps for each and every pose you want to create. It's pretty much the same step over and over again till you have enough poses. In the new few screenshots you will see that I created seven poses for this character following the steps described in this tutorial. Have a look at the hierarchy and the way things are set up in my final scene.

Now, if I move the slider, the character "eyebrow" will move accordingly. You can move the slider from anything between 0% and 100%. Now let's do that again with the left eyebrow. Copy the "Default" object and do your changes to the character. Place it back into the hierarchy and turn it invisible to the viewport. Have a look at the next screenshot.

You can mix all the poses you created by simply moving the sliders. This makes for some great "inbetween" expressions. If wanted, you could even animate it by setting keyframes at certain stages. On the following page I took screenshots of each and every pose in it's original state (100%). That's it! Till next time - Thomas Pasieka

As you can see I added a new Pose by pressing the "Add Pose" button in the manager on the right in the attribute manager. Then, simply drag and drop the newly created pose onto the empty field.

40


Hands on "Pose Mixer" By Thomas Pasieka

41


Basic Modeling - Lighthouse Part 2 By Bram van Gerwen

In the first part of this tutorial we created a low detail lighthouse using some simple modeling methods. In this small follow-up tutorial we're going to take that lighthouse and finish it by adding a couple of smaller details by just using primitives.

Switch back to the Object Tool, name the duplicate 'Small Railing' and set its Y Position to 329 and apply. Open the small railing group and select the null object inside the array. Switch to the Object Axis Tool for a second and change the P Rotation value from 30 to 90, making the supports point straight towards the sphere.

Open the 'LighthouseStart.cd4' file to begin the tutorial. You can see the lighthouse exactly as we ended in part 1. Create a Torus, set its Ring Radius to 30, its Ring Segments to 64, the Pipe Radius to 0.3, the Pipe Segments to 10 and then set its Y Position to 311 in the coordinates manager and apply. The torus is now hovering a slight bit above the roof, this will be a railing that can be grabbed for support when you climb upon the roof.

Switch back to the Object Tool, select the Torus object, set its Radius to 9.5. Then select the array object and set its Radius to 9.5, its Copies to 8. Now the small railing is complete. Result of both Railing in Picture 1.

The ladder will be created later. Now we'll make an Array to fasten the railing to the roof. Create an Array object and set its Y Position to 311 in the coordinates manager and apply. Also Create Null Object and drop it into the array object. Then create a Sphere, set its Radius to 0.6 and its Segments to 12. Drop the sphere into the into the Null Object, to get the spheres nicely on the railing simply set the array Radius to 30, same as the railing radius.

01

Now all we need is a cylinder to go from the spheres to the roof. Create a Cylinder Object, set its Radius to 0.3, its Height to 5, its Height Segments to 6, its Rotation Segments to 12 and drop it into the Null Object. T

As you can see we can add some quick details using only primitives with ease. Let's create the ladder leading to the roof with some more primitives.

he cylinder will stick right through the spheres so set its Y position to -2.5 in the coordinates manager and apply. Lastly we'll rotate the cylinders a bit. Activate the Object Axis tool, select the Null Object and set its P Rotation to 30 in the coordinates manager and apply. To increase the number of supports just change the Copies value in the Array properties to 12.

Important to remember when working with primitives is to keep the number of subdivisions of the objects to a necessary minimum. No need to add high polygon primitives to your scene when they are going to be very small objects. Create a Cube object to start with the ladder. Set its Sizes to X 2, Y 100, Z 1, then go to the coordinates manager and set its Y Position to 257.5, its Z Position to -43, its P Rotation to -11 and apply. The concept of this ladder is very simple, it consists of this cube with sports sticking out form the sides and hoops to keep you from falling down.

There should be a small support railing along the top sphere too, we can simply recycle the current railing array for that. Select the Torus object we created and the array and group them, name the group 'Top Railing' and duplicate it. 42


Basic Modeling - Lighthouse Part 2 By Bram van Gerwen

Create a Cylinder object, set its Radius to 0.4, its Height to 10, its Height Segments to 4, its Rotation Segments to 12, its Cap segments to 1 and its Orientation to +X.

right Z field to 1.55. Now the 11 copies will be placed in increments of 8 up and 1.55 sideways. To finish the ladder we're going to add some hoops and cubes to fasten them. Create a Tube object, set its Inner Radius to 7.6, its Outer Radius to 8, set its Height to 1, its Height Segments to 1 and use the Transfer function to move it to the ladder cube. When done you can see that the tube encircles the cube, grab the Z axis of the object and move it outward until the tube intersects the cube, then grab the Y axis and move the tube down until it is around the same height as the top of the door.

Now to get the cylinder to the cube as fast as possible use the Transfer function. With the transfer function active you can hover your mouse over the cube in the viewport, a yellow line should appear to indicate the middle of the cube, keep trying until it points at the cube, then click the mouse and the cylinder should jump to the position and rotation of the cube. Since the cylinder is aligned the same as the cube now you can use the Move tool, grab the Y axis of the cylinder in the viewport and drag it down to the bottom of the cube, make it so that it is around one step away from the floor.

Now use the Duplicate function again to duplicate the tube the same way as we did the cylinders. But this time we need less copies of the object. Set the Duplicate values to Copies 3, the Y value to 22, the Z value to 4.2 and apply. If correct the instances should appear nicely intersecting the cube. If not you'll need to tweak the duplicate values and hit apply again to view the changes. The

Now use the Duplicate function. Set the Copies to 11, enable generate instances, set the Mode to Linear, then set the middle Y field to 8 and the

02

43


Basic Modeling - Lighthouse Part 2 By Bram van Gerwen

03

That's all I had time for this month, unfortunately. We'll be back next month with a larger basic modeling tutorial. If you have any questions regarding the lighthouse please ask them on the 3D Attack forum.

hoops should be arranged now like in Picture 2, where we can see the finished ladder. You'll notice that we've build up a number of unnamed primitives in the object manager. We'll group them soon after creating the cubes that fasten the hoops to avoid confusion.

Bram

To create the three cubes that fasten the hoops we'll simply duplicate the original cube that we made for the ladder. Duplicate the cube and change the new ones values to Size X 1, Size Y 68, Size Z 1. Now it is roughly the length that stretches the four hoops. Grab the Z axis and move the cube to the other side of the hoops so that it is on the outer side, then grab the Y axis and move it up so that its ends touch the upper and lower hoop. Duplicate this cube twice and place the copies on the left and right of the hoops by grabbing the Z and X axis and dragging them there. For reference you can look back at picture 2. 44


Spotlight on Darrin Frankovitz Featured Artist of the month

Name: Darrin Frankovitz

isn't any other english resource (that I have found) that is as comprehensive, current, friendly, and C4D/MAXON specific in everything 2D, 3D or 4D.

Age: 29

I use C4D, Photoshop & BodyPaint for everything except rigging and animating for mods. Unfortunately, I have to export my C4D models as '.obj' or '.3ds' and then export again using 3DSMax or XSI|ModTool to get the '.smd' file the compiler needs.

Occupation: Currently applying for Game Art & Development Jobs Location: Indiana, USA

This process tends to create complications with phong/smoothing and UV coordinates, but when they occur they are very quickly and easily fixed with BodyPaint and 3DSMax. Despite those complications, the most challenging thing about using C4D on a typical HL2 mod is not making cool & clean models and other assets, the challenge is creating or finding the team that's doing it in a collaborative way.

Software: CINEMA 4D 9.6, Photoshop, 3ds Max, XSI|ModTool

Favorite resources on the web:

http://www.3dattack.net/forum/forumdisplay.php?f=32 http://www.3dluvr.com/carles/images.htm http://www.myrmecos.net/ http://forums.cgsociety.org/ http://www.gamasutra.com/ http://developer.valvesoftware.com/wiki/Main_Page

If you have any questions about working with the Source SDK and C4D I would love to answer them if I can.

I received my BA in telecommunications (broadcast & film) production and design from Indiana University in August of 2005. In 2002 I was introduced to CINEMA 4D when I took an introduction to 3D modeling & animation class. C4D was nothing like Worldcraft. It was simply amazing, easy to understand, and fast!

Organic forms of life, unusual treatments, and collaboration have been my main source of inspiration. Currently, I'm drawing grass onto a huge piece of paper on the front lawn using a #2 BIC mechanical pencil. If you have any questions, comments or leads, immediately contact me at dfrankov@gmail.com.

The next year I created an inspirational poster as a graduation gift for a friend and won "Best Communicative Screenful" at the 2003 IDEAS Festival (http://www.ideasfest.org/) and finally had enough to buy my first version of C4D. Since graduation I have been teaching myself simple and compound asset development for games using C4D with the Source engine for Half-Life 2. My goal was simply to create and release a game using C4D and learning other applications that I need according to most job postings. That's where 3D Attack came into the picture. I really needed a place to ask MAXON software specific questions and simply communicate with as wide of a sample as possible. There simply 45


Spotlight on Darrin Frankovitz Featured Artist of the month

46


Spotlight on Darrin Frankovitz Featured Artist of the month

47


SIGGRAPH 2006 - BOSTON By Tavy Ann Pasieka

Boston Convention and Exhibition Center

Siggraph 2006 was held in the beautiful city of Boston, Massachusetts. Although the extreme heat the East Coast of the United States was experiencing was unbearable at times, the Siggraph Committee couldn't have picked a better location for this widely anticipated yearly event.

The MAXON booth was attractive and was located perfectly among the other exhibits. As we approached the booth we were immediately greeted by MAXON USA’s enthusiastic Marketing Representative, Josiah Hultgren, who I must say, did a fantastic job making all that visited the MAXON booth feel right at home. This wasn’t a common experience throughout some of the exhibits.

The massive, and very cool, Boston Convention & Exhibition Center was a welcomed oasis from the rising temperatures outside.

Yes, many exhibitors were thoughtful and helpful, but MAXON really out did themselves in this area. The MAXON Crew were “top notch” when it came to interacting with the attendee’s.

Unfortunately, due to our tight schedule, 3D Attack was only able to attend the Exhibition portion of Siggraph. Whether it be the dedicated and well organized Siggraph staff and volunteers, the Motion Capture presentations, Pixar’s demonstration of RenderMan, NewTek’s spectacular LightWave exhibit or E-on Software’s presentation of Vue, overall, our two days spent canvassing the exhibits, were very informative and pleasure to attend. On a side note, touring the Historical city of Boston only added to the experience.

Although MAXON had no “BIG” announcements this year, they did an exceptional job conveying the good news of CINEMA 4D and BodyPaint 3D. The demo artists were very professional and demonstrated CINEMA 4D and BodyPaint’s extraordinary capabilities flawlessly. Whether it be Kai Pedersen’s excellent Hair demonstrations, Sebastien Florand’s witty humor and vast knowledge of CINEMA 4D or that Paul Baab, the MAXON USA CEO, took much time to speak

Amidst the sea of exhibits, one captured our attention immediately as we began our decent down the escalator to the exhibit floor, MAXON! 48


SIGGRAPH 2006 - BOSTON By Tavy Ann Pasieka

with and answer the many questions visitors had, MAXON pulled off a GREAT exhibition.

have never met face to face. I hope you will enjoy the following photographs of our trip to Siggraph 2006, and feel free to view a short video live from the MAXON booth located on our CINEMA 4D discussion forum at http://www.3dattack.net/forum/showthread.php?t= 5875

Two thumbs up to the MAXON Crew! We are really looking forward to attending Siggraph 2007 in San Diego, California next year. Now for the fun stuff! For me, the highlight of my trip to Siggraph 2006 was having the opportunity to meet some of the people that I interact with on a daily basis, via the Internet and telephone, but

49


SIGGRAPH 2006 - BOSTON By Tavy Ann Pasieka

Sebastien Florand aka "Fluffy" aka "Frenchie"

Jeff and Marc of "Chromecity" (Fanboys)

Tank - Fluffy - AdamT


SIGGRAPH 2006 - BOSTON By Tavy Ann Pasieka

Yes it was VERY HOT! I don't care how I look!

Tavy - Tank - Fluffy

Lightwave Booth (Really nice looking)

Paul Babb (CEO MAXON USA) and Phillip Losch

Josiah and Paul (MAXON USA)


SIGGRAPH 2006 - BOSTON By Tavy Ann Pasieka Michael McCarthy, Cebas USA

Yes, it's Fluffy again working the Cebas booth


SIGGRAPH 2006 - BOSTON By Tavy Ann Pasieka Adam Trachtenberg

Fluffy giving Tank what he deserves

Kai Pedersen

Tavy showing off

E-On Software Booth


Best of CINEMA 4D - Gallery Selected Art by 3D ATTACK

Image Name: Beer Tankard Artist Name: Gattone Blu Country: Italy Date Created: June 15th, 2006 Software: CINEMA 4D 9.6 Website: http://foto.webalice.it/gattone_blu


Best of CINEMA 4D - Gallery Selected Art by 3D ATTACK

Image Name: Elixier Artist Name: Peter Hofmannl Country: Germany Software Used: CINEMA 4D 9.6 , Adobe Photoshop Website: http://www.pexel.de Date Created: 08/2006


Best of CINEMA 4D - Gallery Selected Art by 3D ATTACK

Image name: Stadt am Abgrund - City at the Abyss Artist names: Tobias Deml / Carsten Baucke / Luka Stellwag Country: Austria/Germany/Germany Software used: CINEMA 4D, Maya, Photoshop Date created: July 2006 Website: www.gentle.tk


Best of CINEMA 4D - Gallery Selected Art by 3D ATTACK

Image Name: Walls of Wonder Artist Name: Kareem Saady Rizkhalla Country: Egypt Software Used: CINEMA 4D, Painter, Photoshop, Fireworks Website: http://kareemsaady.cgsociety.org/gallery/ Date Created: 12/29/2005


The 3D ATTACK Team

Need to contact us? Got questions?

Thomas Pasieka, CEO 3dattack@3dattack.net

3D Attack the CINEMA 4D Magazine and all material contained therein are copyright protected. You may not disassemble or distribute any part of this publication without prior written consent from 3D Attack directly. any attempts to do so will be prosecuted to the fullest extent of the law as it applies in Michigan, USA. This applies for both 3D Attack material as well as any named artists material contained in 3D Attack publications. Although we read through all the tutorials and proofread them for errors, we cannot guarantee that they are 100% error free and therefore cannot issue refunds based on those errors.

Tavy Ann, VEO tavy@3dattack.net Chris Montesano, Site Admin/Developer chris@3dattack.net Lennart Oberscheidt , Site Admin /Writer lenno@3dattack.net Rui Batista, Moderator/Writer Rui_mac@ruimac.com

Copyright by 3D ATTACK 2004-2006

Mark Gmehling, Moderator/Writer macling@braincorps.de

“3D ATTACK” is a registered trademark

Bram van Gerwen, Moderator/Writer killbots@mac.com

3D Attack 150 S. Saginaw St. Chesaning, Michigan - USA 48616

Jamie Hamel – Smith, Moderator/Writer Jamie@eyescreamanimation.com Mathias Bober, Moderator/Writer bobtronic@gmx.de Michael Mlynek, Moderator/Writer MichaelMlynek@gmx.de

Website: http://www.3dattack.net Plugin Page: http://3dattack.net/shop/index.php?page=10

58


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.