ISSUE - JUNE 2005
Exclusive and extensive BodyPaint Tutorial by Fluffy. 11 pages, including Video material on using BodyPaint 2 on a neat little character on Page 31.
ZBrush and CINEMA 4D. Follow this tutorial and see how well C4D and ZBrush work together. A must read for every ZBrush and C4D fan! Page 17
Part 4 of Bram’s Lookout Tower Tutorial! This will finish up the very successful Tower Series. Don’t miss this one on Page 48!
PAGE 4
C4D Quiz - WIN SNIPER PRO, FINAL TOUCH AND ATTACK!
PAGE 5-8
Interview with Matt Roussel by Sebastien Florand
PAGE 9-12
Neon Light Tutorial by Jamie Hamel - Smith
PAGE 13
Review - LightGen by Thomas Pasieka
PAGE 14
And the Winner is......by Tavy Ann
PAGE 15-16 Review - Gnomon Head Sculpt and Texturing by Mark Gmehling PAGE 17-23 C4D to ZBrush and Back by Mark Gmehling PAGE 24-26 Review - N.O.T.A. by Gary Zullo PAGE 27-30 Clothilde Splines by Jamie Hamel - Smith PAGE 31-41 BodyPaint 2 - Character Texturing by Sebastien Florand PAGE 42-45 Rolling Objects by Rui Batista PAGE 46-47 Stamp-o-matic by Base80 PAGE 48-53 Lookout Tower Part 4 by Bram van Gerwen PAGE 54-55 Artist Spotlight on Adam Trachtenberg PAGE 57-62 Best of CINEMA 4D Gallery
For the June 2005 C4D Quiz, CINEMA 4D plugin developer Paul Everett and 3D Attack have teamed up to bring you some great prizes. This month, by answering a simple question, you have a chance to win Sniper Pro by Paul Everett and the 3D Attack Grounds Texture CD, or Final Touch by Paul Everett and the 3D Attack Grounds Texture CD. That's right, we will have 2 lucky winners this month! Here's all you have to do: Send an e-mail to 3dattack@3dattack.net, with C4D Quiz as the subject line, in the email body include the answer to our question below, and your real name. Your entry will then be pooled together with the others. On July 1, 2005 we will randomly select 2 winners. We will then post the winners names on our forum at www.3dattack.net, and notify them by email. Question: How many plugins are available on Paul Everett's website (for free and for purchase)? *3D Attack administrators, moderators, staff, writers and their immediate families are not eligible to enter and/or win the C4D Quiz.
Interview with Matthieu Roussel By Sebastien Florand
Artist: Matt Roussel
Interview
Fluffy: Hello Matt, and thank you for giving us a bit of your time for this interview. Can you introduce yourself for those who don't know you? Matt: Hello, you are welcome and it is a real pleasure! I was born in Marseille (south of France) in 1964. I am married and father of three. I currently live in the south of France, near Toulouse. I am a freelance illustrator since 1991 and I bought my first computer in 1997, if I remember well. Fluffy: What has been your learning path? Did you go to Art School? Matt: I tried to pass my bachelor several times during my regular process, but I finally got it as a free candidate.. my first experience as a freelance no doubt.. I so much loved that freedom feeling, that I've never worked in a company, except for a three month internship in a HongKong ad agency. I passed the Dupérré Art School selections and I left the school one year and a half later, not liking at all to study physics and french in an Art School…Then I passed the selections for the ENSAD (Parisian Art Deco School), and stayed five years
there. I paid close attention, not to obtain my degree for various reasons, but most of all because I somehow omitted being in class too often… but I met my wife there, which was well worth all these years! Fluffy: What is your activity field? Illustration everywhere it's used; Advertisement, Press, Editing, Packaging and so on… What is your
5
creative process? Those who know you know that you create your illustrations quite fast. How fast do you produce such images most of the time? Matt: I always start with a sketch, because laying out properly an image is the basis of every illustration. Based on that sketch, I begin modeling. In general, I spend one or two days on an illustration, but it
Interview with Matthieu Roussel By Sebastien Florand
really depends of course on the complexity of the image to create. The maximum amount of time I've spent on one image must have been one big week…I am cursed with impatience, and I get bored with a subject pretty quickly, but it also has its advantages, I can work on more things.
I loved, when I was a kid, spending hours looking at illustrated books or Art history books full of paintings reproductions. I dived into them
looking for details.. Gérome Bosch fascinated me, his compositions were so rich, for example… Fluffy: You come from the Strata3D world, what brought you to C4D when you switched over, and what are the aspects you like/dislike compared to before? Matt: First of all, I would say that C4D has really easy modeling tools, enhancing a lot compared to Strata in that area. Where I needed to use ruse combining Strata tools, C4D allows to just stretch out shapes starting from a cube, like using playdoh.. a real pleasure. Although, I loved the idea of the Strats "shapes". With C4D, if you want to model a sperate object within your scene, you need to open a new document, model then copy and paste in your old scene.. Strata3D allows for some kind of Photoshop layers. We model a lot of objects in separate "rooms" and we just drop them in the main scene (little bit like an isolation mode). If we want to modify a particular object, then we just have to go back in its "room" and the modifications will be directly applied to the main scene. I usually complemented Strata with Wings3D for modeling, to counter its weaknesses.
Interview
Fluffy: Your images are usually all based on a concept, an idea. Where do you look for inspiration?
Matt: I always try, whenever I create an image, to tell a story. I'm looking for the first look of the spectator, things need to be grasped quickly. Then, if he takes the time to look further, he will discover details, things that add spices to the creation.
It had a good side, though, you had to use ingenuity to find a way to model something when you didn't have the proper tools, it almost allowed for more creativity on using tools and allowed you to be a bit less dependent on others or on specific tools, but C4D's ease of use allows for more creativity on producing the image, not using the tools. Well, everything is up to getting used to the process and the C4D's
6
Interview with Matthieu Roussel By Sebastien Florand
hierarchy system taught me to be a bit more organized and strict when creating my scene.
Interview
Fluffy: Your lightings are fantastic. A few tips for our readers? Do you adapt your lighting for each composition, driving a specific mood? Matt: Fantastic is a big word. I try to stay as simple as possible whenever I light a scene.. two or three lights using raytracing are usually enough. Although, C4D made me discover HDRI image lighting and now the computer makes it all itself, I just need to orient properly the HDRI image and setup properly my radiosity parameters. I downloaded on the frenchcinema4d forum one of Essania's HDRI lighting sets (thanks to him), which works wonderfully. The render times are satisfying compared to Strata, even though I know that Strata is making some big efforts in that area. I love the softness of the HDRI lighting, and I use it more and more. Fluffy: MAXON recently put one of your images in their gallery, can you tell us more about that image? Why did they select it do you think? Matt: I made that image coming back from a trip in London where I met some friends. I always loved England. I remember when I was a kid I stuck a map of that country on my room's wall, outlining every province. Well, coming back from that trip, I wanted to describe my impressions of London, so I created that image for myself and my portfolio. I took my time, what I don't have usually when working on a professional illustration, and it is my first HDRI and radiosity based image. I think MAXON selected it because they lack "toon" images in their
gallery and that this one brings an international mood. London is a big city.
took a picture of them and did some post-work in Photoshop later on to create the illustration.
Fluffy: How do you manage to recreate that "clay" style?
Fluffy: You also paint on canvas and sculpture. Does it bring a lot to your virtual work?
Matt: Maybe because I did a lot of real sculpting/modeling before.. I made them using plaster, then I
7
Matt: Yes, of course, I am convinced that it is a "must do" thing to
Interview with Matthieu Roussel By Sebastien Florand
know how to draw properly to model in 3D properly. It is a basis I lean on, once the technical aspect of the computer and 3D mastered. I remember a sculpture teacher at the Art Deco Art School who opened my eyes on the complexity of the volume of a mouth. I had never realized it is way more than a line on a face. Fluffy: How long have you been painting/sculpting?
Interview
Matt: I started 9 years ago. I paint on bois only, wood planks. I paint houses mostly because they don’t move. Fluffy: Some of your creations look like they were done using ink pen, how did you do that?
my phobias for myself and show only the joy, humor and happy side of life…
Matt: Yes, I wanted to break down the 3D look most productions have, and give it a bit more personality. If I take my image "the Faun", here is how I proceed: I render a grayscale image, that I rework in Photoshop to apply colors using alpha maps so my pens don't bleed all over the character. I add shading and do some shadow touch up using a multiply mode layer to colorize everything. Then, I render a Cell pass (Cell render effect) to grab the outline of my shapes, and I use a custom brush in Photoshop that reproduces a pen/pencil look, that I apply following the volume of my objects, as if I was drawing on them. I usually add a pass with a wrinkled paper texture, to add more interest and texture over my objects.
Fluffy: Once again, thanks a lot for taking some of your time for this interview. One last word for our readers to conclude?
Fluffy: What do you like in the work of others? What inspires you? Matt: What I like most of all, is to see images that I can't do. It pushes
me to reach and pass my limits, thinking that I will do that one day… even though it sometimes seem impossible at the moment. I like to tell myself that I can do anything, even if it is an illusion, it gives me energy. I'm inspired by positive images, but I often see "nightmarish" images in the 3D pool. I don't like them, but it's a question of taste I guess. I am optimistic by nature, and the dark side of these images makes me uneasy. I prefer to keep
8
Matt: 3D Art is a job hungry for time. We can always do better, add some more details here and there, find a better angle, a better lighting.. but I think that we need to know how to indulge ourselves (and also others) and tell that the next illustration will be better than the last one. In any case, this philosophy of work helps me getting better and stay motivated. Be happy with your own work, yes, but keeping a cool head, reaching for a better image each time, again and again…The computer is a fantastic tool, but it stays a tool, the important part is you. Matthieu's artworks can be seen at www.mattroussel.com, and he can be reached either on the Bubbles4D or Frenchcinema4D forums.
Neon Light Tutorial
By Jamie Hamel - Smith (Inspired by Brett Lewis)
Tutorial
Greetings fellow 3D Attackers! Judging from the name of this tutorial I’m sure you already know what we are going to do. The trick in this tutorial that I am going to show you is how to use the “Proximal” shader to create some interesting effects.
object in the Proximal shader properties. So, that should give you good understanding on how the Proximal shader operates. Start by opening the “Start Scene.c4d” file. The scene consists of a camera, 2 lights and a brick wall. The camera has a protection tag on it to prevent you from accidentally moving the camera. Start by creating a SweepNURBS Object, a Text Spline Primitive and a Circle Spline Primitive. Set the Radius of the Circle Spline to 3 and make both Spline Objects children of the SweepNURBS Object.
There are few ways to create neon lights in 3D; using many lights along a Spline is one, and another is to use Radiosity with a luminous material and let the global illumination system calculate the glows for you. The forementioned techniques can take a much longer time to render than the technique I am about to show you. While this is a “Cheat” and won’t give you the absolute best result for neon lights, it is a very speedy workaround and in my opinion, the results look great! The great thing is that when you are done with this tutorial you will be able to use the Proximal shader for all sorts of other things! So, let’s examine the Shader in question a little bit. In the CINEMA 4D Shader menu, you will find the Proximal shader under the effects submenu. (I am using CINEMA 4D R9 for this tutorial. The Proximal shader is in previous versions, but it may have been called ‘BhodiNUT Proximal’. Refer to your users manual to see where your Proximal Shader is) [Image-01] The shader works by creating luminous points where the origin, points, edges or even polygons of a reference object get close enough to the surface of the object that the material with the Proximal shader is applied to. The following images show a simple example of the Proximal shader in action. The first image shows a luminous spot where each point of the orange plane is,
Image 01
the following image shows the exact same scene but with the “edges” option enabled [Image-02] [Image03] In this case, the ground plane
The Circle Spline should be above the Text Spline in the hierarchy. Now position the SweepNURBS Object so that it is visible in the camera view. The first thing that I do when creating a sweep is to check the interpolation of the splines. The default interpolation is actually quite high. Switch to a wireframe view and notice how dense the mesh is. Select the Circle, and in its object properties make the Intermediate Points “Uniform” and set the number to 1. This gives you an 8 sided circle to work with which is a much more manageable number of sides for this object. Your scene should now look
Image 02
Image 04
Image 03
has the material with the Proximal shader applied to it and the orange plane is defined as the reference
9
like this; [Image-04] Now we can rename the Sweep object to something a little more relevant. Something like “Sign Text” should suffice. I’m not really that happy with
Neon Light Tutorial
By Jamie Hamel - Smith (Inspired by Brett Lewis) the appearance of the Sign right now, we need to add some accents to the sign and also choose a different font for the sign text. We might want to make the sign actually say something relevant! Switch to the front Viewport (F4) and draw a Spline to create some sort of border for the sign. This following image is what I came up with, and I also used the Create Outline Tool with the “Create New Object” option enabled, that way I get another Spline that I can use in a different SweepNURBS object to have 2 differently colored accents. [Image-05]
cates of the sweep so that you now have 2 “empty” Sweep NURBS Objects. Rename the 2 Sweeps “Accent 1” and “Accent 2” also rename the 2 Accent Splines accordingly. I used “Accent Spline 1” and Accent Spline 2.” A neat little technique that I use when doing multiple Sweeps or Extrusions is to create an Instance of the Profile being Swept or Extruded and use it in the other Sweeps or Extrusions instead. This image will clearly show you what I mean. [Image-06] We are almost ready to start texturImage 07
Tutorial
using a little bit of XPresso in a little while, but don’t worry, its simple stuff. We will need a Proximal Material for each color of neon tube. The color of the Neon Tube Material should be the same as the color of the respective Proximal Shader Material.
Image 06
ing the neon tubes. Switch the display to wireframe, notice that the subdivisions on the sweeps are not evenly distributed, they need to be.
Image 05
Duplicate the “Sign Text” SweepNURBS Object twice so that there are 3 Sweeps in total. Delete the splines from under the 2 dupli-
The Proximal Shader is going to be using the intermediate points along the Spline to cast ‘samples’ onto the wall. The samples will look better if they are uniformly spaced, it will give a more lifelike result. To remedy this problem we need to select the 3 Splines; Text, Accent Spline 1 & Accent Spline 2, then in the attributes manager change the Intermediate Points from Adaptive to Uniform. Notice how the subdivisions are evenly spaced now. [Image-07] Let’s create 3 materials for the 3 neon tubes. Name them Text, Accent 1 & Accent 2 we will be
10
So, for each Color of Neon Tube, we will have 2 Materials, one for the color of the tube itself and one for the glow on the wall from the tubes. Let’s Start with the Text, Apply the Text Material to the ‘Sign Text’ SweepNURBS Object. Now Create another Material and name it ‘Text Proximal’ The first thing that we want to do with this material is disable all the channels except luminance. The luminance channel is where we will load the Proximal Shader for this Material. Load the Proximal Shader from the drop down menu and click the thumbnail to access the Shader Properties. This is where you tell the Proximal Shader which object it will use to calculate the effect. In our case, it’s the ‘Text’ Spline. Drag the Text Spline into the Link List and check the ‘Use Vertices’ option. Now
Neon Light Tutorial
By Jamie Hamel - Smith (Inspired by Brett Lewis)
Tutorial
the Shader knows which Spline to use and that it should take the points of the Spline into account when placing samples. Now we need to apply the effect to the brick wall. Drag the Material ‘Text Proximal’ onto the ‘Wall’ Object, select the texture tag and enable the mix textures option, (this will add the luminance of the proximal material to the existing textures on the brick wall, whatever they may be). Render to see the results. Your render should look very white and bright. In order to “tone down” the effect we need to go back into the Proximal shader and tweak the ‘End Distance’ and ‘Intensity.’ Make the ‘End Distance’ 30% and render again, it should look much more like a glow, but it should be much softer, don’t you think? Make the Intensity 5% and render again. Does it look like a soft glow yet? [Image-08] There are a couple things wrong
the ‘Sign Text’ Sweep and choose CINEMA 4D Tags > XPresso. The XPresso Editor should open on the screen. We are going to Output the Color information from the Color Channel of the ‘Text’ material and send it to the Luminance Channel of the ‘Text’ material it will also be sent to the Luminance Channel of the Proximal Shader so that if we want to change the color of the neon tube, we simply adjust one value and all of the others automatically change to the new color you choose. Here is how it is done; we need the color from the Text material to be output, which is the first step. Drag the ‘Text’ Material from the Material Editor to the XPresso Editor and it should appear as a ‘Node’ [Image-09] The node has 2 colored squares at the top corners, a blue on the left and a red on the right, the
Image 09 Image 08
with this picture…. Firstly, we need to make the color of the Proximal glow the same as the color as the neon tube. The neon tube also doesn’t really look like its glowing right now; we can fix that very easily. I’m going to be a little ambitious here and we are going to use an expression to control the color of the Luminance Channel, and the color of the Proximal Shader. To keep things neat, we will make one XPresso expression for each SweepNURBS Object. Right Click
blue square is where you can add input ports, and the red square is where you can add output ports. Click the Red square and you will see a list of the available outputs; all of the Channels of the Material are listed. We want the color of this material to be sent to the Luminance of the very same material. To do this we need to either make a copy of this node or drag the ‘Text’ Material into the XPresso Editor again, either way will suffice. Now that you have 2 nodes, you can cre-
11
ate a link. A link is created by dragging a wire from an output port to an input port or vice-versa, first we need ports :-) click the red port on the first node and from the list, choose Color > Color > Color > [Image-10] now a port should appear on the right side of the node
Image 10
and this is the output port that will send the color info to the other color properties. Next we focus on the copy of the node and this time we will be clicking the Input Port (blue on the left) because we want to control the color of the Luminance Channel, we will choose Luminance > Luminance Color > Luminance Color. Drag a wire from the color output port of the first Text node to the luminance color input of the second node like this: [Image-11] A wire
Image 11
should appear and the connection is made. (Make sure that the Luminance Channel is enabled for the Text material. When you enable
Neon Light Tutorial
By Jamie Hamel - Smith (Inspired by Brett Lewis) the Luminance Channel, take note of the color that it is already! Change the color of the Color Channel and notice how the Luminance Color changes with it! If you render the scene you will see that the neon tube is now bright and intense, just like it’s supposed to be!
Tutorial
However, we still have that issue of the white glow; we need to connect the color of the Proximal Shader to the Color of the tube… And here is how it’s done; drag the ‘Text Proximal’ material from the Material Manager to the XPresso Editor. Click the blue input port on the ‘Text Proximal’ node and choose Luminance > Luminance Color > Luminance Color. Again you have created an input port for the color data of the Luminance Channel. Drag a wire from the Color output port of the first ‘Text’ node to the Luminance Color input port that you just created. [Image-12] The Proximal Shader still won’t come out
Image 12
colored until we make one more little adjustment, go to the luminance channel of the ‘Text Proximal’ material and change the Mix Mode to multiply. This mix mode uses the color selected in the channel as the color of the Proximal shader. Now you
Final Result
can render and voila! You have a neon tube with a glow that renders very quickly and the color of the entire system can be changed very easily! You can even animate the color of the neon tube so that it pulses on and off, or pulses with 2 different colors. All you need to do now is repeat the process for the other colors of the neon tubing and you are all set! By the way, you might have to tweak the End Distance and Intensity parameters in the Proximal shaders for the other neon tubes (due to a different number of points in the spline) alternatively, you could increase the number of intermediate points in the spline properties, it’s all up to you.
12
You can also achieve some very interesting effects by changing the Blend Mode in the Proximal Shader Properties. If you have any questions about this tutorial, you can find me on the 3D Attack Forums. Happy Rendering! Jamie Hamel-Smith (jamiehs) If you have questions or problems feel free to contact any of our moderators or admins on the forum: http://www.3dattack.net
LightGen
Review by Thomas Pasieka
Plugin Review
great results...it will take time. It’s the same with everything else.
Well what do we have here this time? A plugin called “LightGen”. That alone should tell us that this plugin deals with “Light”. Actually it’s a plugin which can either fake global illumination or give you the option to render some nice looking light streak effects.
There is one thing I really like about LightGen, it will produce flicker free animations (see example animation within the goodies folder). I used a skydome with 121 light sources and soft shadows for a 6 second spin around animation. The rendering took 40 minutes, which wasn’t too bad for this size (faster computer will of course give better rendertimes).
Now let’s have a look at the specs here. LightGen can be used on any primitive object and even on splines. The lights can be colored by any channel shader, either bitmap or procedural. Lights placed on a spline can be colored by a gradient or a channel shader, which is very easy to do within CINEMA 4D. So let’s say you have an object and you want to render it without using radiosity/global illumination, but you want the same look. Use LightGen to achieve a good looking result. I have tested both (Global Illumination/Radiosity and LightGen) to see which one is actually faster. I have to say that the render times vary a lot since everything heavily depends on your settings. It’s the same with C4D’s own radiosity - you will need to fine tune settings in order to get a good looking result. If you want a fast render then you will have to scale down your settings which leads to artifacts. So speedwise it’s up to the artist. If you want
There is also an option to get rid of point/lights that are below the level of your scene and that don’t need light. This saves rendertime. If you go to http://www.biomekk.com/lightgen.php you will get some information about this plugin and some examples files. The plugin itself is not expensive at all, just $10! You can of course also get the free version which is missing some functions, but I would recommend buying this nifty little plugin. You won’t regret it. It’s actually not easy to give this plugin a final rating. As mentioned before, the speed depends on settings just like using radiosity. Maybe we can see a faster version of this plugin in the near future? I would recommend having a look at the example files in our goodies folder, plus have a look at the Biomekk website to see what this plugin can do for you. If you like what you see, then make sure to support it by buying this plugin for only $10! Now to my final thoughts; LightGen is a great idea and a good way to simulate GI, but I would like to see a speedboost if possible. I will give this plugin a 4 out of 5 for it’s ease of use, documentation and sample files that come with this very inexpensive little helper.
The setup is pretty easy. Once installed you will see the plugin within your plugin menu. Just select the plugin, add a big sphere that surrounds your models and use a lightsource with minimum settings (I used 2-3%). Once you make the sphere and the lightsource a child of the LightGen plugin, the lights will be placed on each point of the sphere.
13
Visit: http://www.biomekk.com/ for more information and other plugins.
And the Winner is... By Tavy Ann
PRIZE FIGHT WINNER
After seven months of competition, education and entertainment, "The Prize Fight" has come to it's close. In October of 2004 we started with the first of our 3 rounds, the drawing phase, where each of our over 100 entrants had to hand draw an Olympic character of their choice. The character they drew in Round 1 would be the character they would then model in CINEMA 4D for Round 2, and then go on to fully rig and animate using the MOCCA module in Round 3. "The Prize Fight" was a learning experience for everyone involved. I must say I have never seen a 3D competition of this caliber produce what I saw in "The Prize Fight". The entrants encouraged and shared their skill with one another. It was as if they became comrades rather than opponents. Although they were fighting their way through 3 rounds, they became friends who wanted the best to win, even if it wasn't them. In Round 3 (the animation round) things really steamed up. The better of the first two rounds gathered and began to rig and animate their original character(s). Round 3 was definitely the longest of our rounds, but in the end produced some of the finest short animations I have yet to see created in CINEMA 4D. I would have loved for all of our entrants to win the "Grand Prize" (a trip to Siggraph 2005, airfare, lodging, CINEMA 4D Release 9 Studio Bundle, and the opportunity to do a presentation of their animation in the MAXON booth at Siggraph) but we could only pick one winner. Mind you, all of the entrants are winners! They walked away from "The Prize Fight" with a great animation to their
credit, and made some wonderful friends. The winner of the third and final round of "The Prize Fight" was Sebastien Florand (Fluffy) with "The Equestrian Jump". Sebastien brought to life his Equestrian "The Ant", and "That Darn Snail", with obvious talent and skill. To view "The Equestrian Jump" and our other wonderful entries visit: http://www.3dattack.net/forum/showt hread.php?t=1443 . Congratulations to Sebastien with his winning entry. It was well deserved. 3D Attack would like to thank Paul Babb and Diana Lee of MAXON USA for all of their hard work, support, and for sponsoring "The Prize Fight" with some awesome prizes for our entrants.
14
Floris Drupsteen
GNOMON - HEAD SCULPTING AND TEXTURING A review by Mark Gmehling
DVD REVIEW
In this Gnomon workshop, the founder himself, Alex Alvarez gives an indepth look at the creation of a detailed character head using the hypetool of these days - the groundbreaking software ZBrush: Alex Alvarez shows the workflow of creating a detailed characters head within ZBrush as we know from forums like pixolator.com (http://www.pixolator.com) or pixologics website (http://www.pixologic.com). Beginning with primitive shapes derived from Zspheres (which are a fantastic tool to block out even more complicated forms very fast), the primary forms of the head are quickly blocked out to determine general proportion and design. After that the resulting low/res mesh is refined more and more by subdividing and intuitive pushing/pulling and scratching the mesh, which counts about 2 million polys at the end. Alex then refines the eyes, ears, nose, mouth and horn regions before moving into Projection Master to create surface details, like skinfolds for example. He demonstrates different techniques and tools to detail the skin surface with wrinkles/folds/pores etc. He shows the workflow to insert edgeloops to refine polycount in areas where more detail is needed or in this case to simply to block out additional geometry to extrude horns. All these processes cover the use of masking areas to protect them of affection or to hide areas to fasten performance.This entire process from beginning to end covers a highly detailed, wrinkled head. This is shown without time lapsing. The DVD's contain over 8 hours of lecture!!! Once the highres geometry is
complete he takes time to demonstrate the creation of custom tileable Alpha libraries with ZBrush or Photoshop, and even talks about using and "gettying" reference material for modeling and texturing tasks. Before painting the different texture maps, the UV Setup is done which is a lovely simple thing in ZBrush. He starts with painting a bump map, which is a nice process in Zbrush because of the realtime redraw on your mesh using a bumpviewer material. This texture map is followed by a specular and a colorchannel where some of ZBrush’s different powerful painting tools and their attributes are demonstrated. While painting the color and specular map the movie is time lapsing while Alex is giving comments to his workflow, but don't worry, all he's doing is covered in the lectures before and you'll miss no information on that. These are the only lectures that are timel apsed, because you have to know the workflow
15
beforehand and are able to follow even if it’s running fast. Before he renders all the created maps and the exported .obj file back in Maya, he demonstrates ways of combining the different maps by using photo-
GNOMON - HEAD SCULPTING AND TEXTURING A review by Mark Gmehling shop. In conclusion, Alex shows how to integrate geometry, displacements and textures using Maya's native renderer and Mental Ray. There's no need to worry if your render and animation software is not Maya. I'm using CINEMA and with R9 it’s no big deal to render ZBrush’s 16bit displacement maps with the CINEMA renderer. As the Maya setup part is not the focus of this DVD package, it’s worth its money even for users of other applications:
Sculpting Human Anatomy. Eight hours of professional information for a fee of $89 is quite a bargain. Also notice Gnomon’s offers for students and schools! Just visit their site at: http://www.thegnomonworkshop.com Qualified students, faculty and schools are eligible for a 29% discount on all Gnomon Workshop DVD titles, bundles and scene files. Educational orders can be placed either online or via mail-order. An order for a single DVD would go from $69 to $49. An order of five DVDs ($69/each) would go from $345 to $245.
Take a look into the DVD topics here:
DVD REVIEW
DVD1 Lectures: Introduction Zspheres Defining Form Eyelids and Symetry Refining Forms Refining the Ears and the Nose Refining the Mouth and the Neck Adding Horns Refining Eyes Projection Master Detailing the Face Inflate and Pinch Detailing the Neck
As a students you just have to fax a dated students ID and a dated personal ID to get 29% off!
DVD2 Lectures:
for not native english speakers. I can't agree with that- Alex speaks MUCH and faster than Meats did in his ZBrush DVD series. Everything he says is very interesting for understanding some global things and learning from his experiences as a CG Artist not only using ZBrush. The one thing that's a little disturbing is that you have to adjust the volume often, because the audio peak is varying from lecture to lecture.
Refinig the Horn Reestablishing symetry Adding Asymmetry Uvs and Bump Material Bump Tools Overview Bump Map Part 1 Bump Map Part 2 Specular Map Color Map Displacements Combining Textures Conclusion with Maya
I give a 5 out of 5 Attack Points again without any doubt. This characters head developing process contains so much information about handling super/high/res meshes in ZBrush, output maps to render its maps onto low/res geometry back in your software and finishing a project from scratch to final render. Furthermore, it's just a super addition to the other ZBrush related Gnomon workshops as:
On different forums I’ve read that Alex’s english is hard to understand
Introduction to ZBrush, ZBrush Production Pipeline and Digital
Btw: Most Zbrush resellers are offering Zbrush 2 with a Wacom tablet as bundle for very nice prices these days. The Z-Fun really comes up using a pressure sensible tablet. Hope to see some traffic in 3D Attack’s ZBrush corner too! CU onboard! Visit the GNOMON WORKSHOP: http://www.thegnomonworkshop.com
16
C4D TO ZBRUSH AND BACK... By Mark Gmehling CHARACTER HEAD by Mark Gmehling
Tutorial
Hi there attackers in this tutorial I want to show the fast workflow ZBrush offers to detail a quite lowpoly mesh created in CINEMA 4D. We'll block out a head shape in C4D and export it to ZBrush to give it as much detail a believable head needs. Then we'll export a 16 bit displacement map to render our lowpoly mesh back in C4D with the help of R.9's subpolydisplacement feature. In the C4D part I'm using some of some new modeling features of C4D R.9, but its all possible with older versions. Don't hesitate to ask me questions via pm or the community on the 3dattack.net forum.The ZBrush part is dedicated to newbies in ZBrush and should be easy to follow, as well as the instruction I give i in CINEMA. Ok- here we go. Let's create a cube(Objects- PrimitivesCube) and adjust its attributes to x:1; y:3 and z:4 segments before we make the object editable via pressing C- pic01. Select the polys (switch to polymode) shown in pic02 with the live selection (that only selects visible geometry by default) and extrude (D) them 4 times to roughly fit the shape in pic03. In sideview(F3) adjust the points (switch to point mode) as seen in pic04 to block out the basic head proportions. Use the rectangle selection with only visible disabled in its tool attributes to affect the invisible points too. You can toggle between the move tool (E) and the rectangle selection by hitting the spacebar. Back in perspective view (F1) select the points seen in pic05
and move (E) them along the x-axis to define the neck-shoulder area roughly- pic06. To define the rounding of the head, live-select the edges (edge mode) shown in pic07 and move (E) them along the x-axis. Switch to polymode select the polys as seen in pic08 and move them outward to round the shape- pic09. And one more tweak in edge modelook at pic10/11 where I move the selected edge outward a bit. Now lets create the other half of the head: We switch to front view (F4)
17
and in global mode we move (E) the head along x to line up with the 0point of the coordinates system. I hold the shift key while moving which snaps the movement grid and move it 100m in the right directionpic12. Before we apply a symetry object we've got to delete the polys in the middle of our head- select the polys shown in pic13 and delete them by pressing the backspace key pic14. Now create a symetry object (Objects- Modeling- Symetry) and drag the cube mesh onto it to make it its child- pic15.
C4D TO ZBRUSH AND BACK... By Mark Gmehling
middle polys and switch symetry on again) Lets round the neck a little. Switch to edge mode- live-select the edges shown in pic24 and move (E) them inward along the x-axis- pic25. In front view (F4) we tweak the head to fit a the human proportion. Toggle between rectangle selection and the move tool as shown abovepic26/27. Define the proportions further in perspective mode by using the live-selection and the move toolcheck my tweaks in pic28.
Tutorial
Before we export we use the knife
Before we export this rough mesh to ZBrush, we'll do some final tweaks: With the knife tool (K) in line mode only cutting visible- we add two cuts as seen in pic16/17. Now we liveselect the edges shown and melt them away (Functions -melt)pic18.That created two five-sided polys we get rid of by two cuts with the knife tool (K) again- pic19/20. Make sure to let the knife snap at the existing points!
tool(K) to add more subdivision to the head because we want to give the mesh enough points to be able to paint on a high detail level in ZBrush. This time use the loop mode and add a loop next to the 0axis- pic29, two loops along the profile- pic30/31, and two horizontal loops- pic32/33. Make sure to align your knife tool at the 0-axis to make
To give our bust more thickness select the polys (poly mode) shown in pic22 and extrude them one timepic23. Notice that you've to delete the two not needed polys in the middle! (Disable the symetry - kill the
18
C4D TO ZBRUSH AND BACK... By Mark Gmehling
symetry object and pressing C to have a full polymodel ready for export. Some general things about exporting to ZBrush: As you see, the mesh we'll export to ZBrush contains no detail and no sharp edges. All polys have to be quads and the mesh has to be closed to avoid trouble in ZBrush. The reason is that our ZBrush mesh will break the million poly mark, so the base mesh should be equally subdivided/ all polys should have quite the same size, because we want to paint detail in ZBrush and each time we subdivide the poly count will be quadrupled.
Tutorial
If we would already create sharp edges by having edges close together we would add polys not needed by each subdivision in ZBrush. So adjust your mesh a little bit to make sure the polys are sized quite equally. Of course the polys of the botin size, but as we are going to model a bust its ok because we want to add most detail onto the head. The level of detail at the shoulders will be lower automatically. Ok, now we go to File- ExportWavefront and save the file in *.obj format. sure the knife is cutting through!
Z-BRUSHING DETAILS:
You'll notice that the inserting of loops destroys the roundness we tweaked before. To avoid point tweak again, we'll use the brush tool (Structure- Brush) in smooth mode to round up our mesh- adjust the tools radius to about 50m/ its strength to 50%, and make sure you've not selected any points to be able to affect the whole mesh- and don't overdo it- a few strokes are enough- pic34/35. Now we can get rid of the symetry by selecting the
In ZBrush we go to the Tool menu and click the Import Button and select our obj. File. After that we drag over the canvas to paint our mesh on the viewfield. Then we click T to enter the Edit mode that makes us able to rotate the cam, zoom and move around the mesh- pic37: You rotate the cam by lmb-dragging outside the geometry. You move the cam by alt-lmbdragging. You zoom into the mesh by alt-lmb-dragging and then releas-
19
ing the alt button. To get the 100% side/top/front view just hold the shift key when you drag the cam and the mesh will snap into an orthogonal view. For adding detail we'll subdivide the mesh one time by going to tool- geometry- divide- pic38. We can switch between the different division levels at any time. On the lower levels rough tweaks are made, going to more and more detail in the higher levels. First we use the draw mode ZBrush is in by
C4D TO ZBRUSH AND BACK... By Mark Gmehling
default and draw our mesh in the desired shape. Use the intensity slider to define the push or pull effect the drawing has. If you've no tablet you'll often change draw size which is available easy by just clicking s. When you hold the alt key while drawing, the mesh will be pushed inward. Holding the shift key pressed will smooth your mesh. Before you start painting hit the x key to enable x symetry! With a few push and pull strokes I
chin and some neck-muscle flow. Next to using the draw mode, you can switch to move mode and move polys. Depending on your draw size, you affect polygroups as a kind of soft selections you may know from CINEMA 4D. A nice thing to manipulate a final headscuplture to a totally new expression. If you set your draw size to 1 you can move each polypoint like you'd do in C4D.
Tutorial
I don't want to describe every stroke now- ZBrush is the most intuitive tool I know and everybody finds his own way to sculpt his imaginations. Just use the draw and move mode and maybe explore the different transformation tools found in the transform palette. I use to draw by pulling and pushing with alt-key and quite often use the shift key to smooth the transformations- If you're satisfied with the first rough sculpting, go to Tool- Geometry and hit the divide button again to add a third subdivision level- pic39. Notice not to forget to decrease your drawsize while subdividing to make sure you increase the level of detail.
refined the mesh a little bit - look at pic39. Don't try to create a nice, smoothed shape- just block in the main things as eyecavity, nose, a little bit of the jaw bone, add a little
20
Take a look on pic 40 to check my tweaks. I started to define the basic muscleflow of the face, pulled out the chin a bit more, defined the shoulder area, try to begin pulling out the ear. Notice that it is better to over exaggerate the tweaks because the next subdivision will smooth out some percentage of your adjustments. Don't forget to use the move mode at different draw sizes to softly-move some areas in place. If you like the sculpting so far, divide once more (ToolGeometry- Divide)- pic42. I exaggerated the ear ring and moved it outward at a low draw size in move mode followed by alt-drawing (pushing) the outer fold inward and the
C4D TO ZBRUSH AND BACK... By Mark Gmehling
ear cavity inward and redefined the neck folds by pushing(alt) pulling and smoothing(shift) out. Furthermore, I worked on the mouth area and defined the nose a bit more with lower draw sizes- pic43. Time to divide again- pic44. By the way…if you haven't saved your mesh its time to do it. Hit Ctrl-s and
we're at 56320 polys- no big dealwe'll reach the million poly mark by doing some more subdividing later. Look at pic45 to see where I sculpted detail. To detail the ear I used the move mode quite often to tweak the ear shape in form. I sculpted the global upper and lower eyelid shape
tangle by ctrl-shift dragging a rectangle filling the geometry you want to stay visible- pic47/48. You will unhide all by using the same shortcut (Ctrl/shift click in the background of your canvas. This masking method avoids calculating invisible geometry, which is nice for your cpu/redraw performance when the polycount is rising.
Tutorial
In pic49 you see my tweaks. You should subdivide once more to give the map we want to export enough detail. If you want, go back to the lower level to move your shape into that expression you're going for. I
and begun to sculpt the mouth area. The nose was tweaked too, mainly by moving it in move mode.
when the window appears choose save tool. If you want to know the current polycount just move your mouse over the tool symbol and a box with the actual state appears-
Ok lets quadruple our polycount again (Tool- Geometry- Divide: Welcome to level 6 with 225280 polys -pic46. Once again, work with the draw and move mode at different draw sizes to define the head more. Defining the area at the bottom of the jaw may become a little bit different because the shoulderneck geometry is visible. Drag a rec-
21
lengthened the neck and gave my head an look upwards to exaggerate the sculpture. Ok, lets generate the map CINEMA needs to calculate the subpolydisplacement. We go back
C4D TO ZBRUSH AND BACK... By Mark Gmehling
to our level three (tool- geometrysubdivision level slider) which counts 3520 polys. That's enough to paint usable weight maps if you want to animate your bust. To be able to generate a displacement map for our level 3 geometry we have to delete the lower levels. Save your tool and click delete lower.
Tutorial
As you can see in pic50 I exaggerated the neck shape a little bit. Do this at the lowest subdivision level with the move tool at a big draw size if you want. The higher levels will be updated automatically. Before we can export a map we have to check the actual Uvstate of our model. Under Tool Texture we can click Check UV's and the UV overlapping will be displayed. The red areas are showing the overlapping- looks quite sad, huh? No problem in ZBrush- just click AUV Tiles button and then the UV to texture button -pic51. Notice that the GUV and AUV mapping ZBrush creates produces optimal maps for displacement and texturing, but these are not really editable in Photoshop for example, because the UVPolys are not connected- they're placed in checkerboard style- so ZBrush is the only app you can paint textures in these maps via using the projection master. Now we go to Tool- GeometryDisplacement and enable adaptive and smooth uv field and drag the Displacement Image Resolution Slider to the maximum of 4096 pxthe bigger the more detail will be in there. Now just click Create DispMap- pic52. The displacement map is dropped into your alpha palette. Click on the
ture channel and enable subpolydisplacement. Don't use a hypernurbs to smooth your mesh- just enable the smooth in the displacement dialogue- that works fine- calculating the displacement and hypernurbs smoothing would increase the rendertime dramatically- the SPD inbuild smoothing works fine. alpha symbol and then onto the dispmap in the bottom row of your alpha palette to make it active. Now export it by clicking the export button- a 16bit psd.file will be saved which we'll load into our displacement channel back in C4D later. Before we switch to C4D, again we'll export the mesh from that we generated our dispMap. Got to tool- and click export- an obj. file will be saved and we're ready to switch back to C4D- pic53. In C4D we open our exported obj. that comes along with a default material- we open the material managers displacement tab and load the exported dispmap.psd into the tex-
22
You'll notice that the obj files dimensions are really big- before I adjust the displacement setting I scale(T) down the obj mesh in object mode to a height of ~6000m. (If you work with too big of a geometry you may come into problems with light and its shadowmaps) The displacement Height of course is depending on your mesh size, but before you test render select the material tag in the obj manager and go to texture- flip vertical to avoid strange looking renders- pic54. We could have done this in ZBrush too, but in C4D its only one click as well so that doesn't matter.
C4D TO ZBRUSH AND BACK... By Mark Gmehling
Finding the right displacement height is a back and forth of adjusting and rendering. My final displacement height is at 80m while the obj has an y-size of about 6000m. I used the intensity centered mode as you see in pic55.
Tutorial
OK that's it. I hope you had fun following this tut and some explanations speed up your workflow here and there. If I went too fast in some cases, don't hesitate to send me a
23
pm or post your problem on 3dattack.net. CU on board! Keep attacking! Mark Gmehling 3D ATTACK
N.O.T.A
By Gary Zullo aka MrPixar
Plugin Review
Hey there fellow Attackers! This time I am going to talk about NOTA, a plugin created by now famous, Renato Tarabella. So, what does NOTA mean anyway and what will it do for me? NOTA stands for "Not Only Text Animation" and could quite possibly be the most useful tool in C4D's toolbox for handling multiple objects succinctly. Generally, the theory behind creating a plugin is to add lacking functionality to an application, or to make simple, something that would otherwise be too complicated, or take too long. Some address the former while others address the latter. NOTA is one of the few plugins that I have used in my time that actually addresses both lacking functionality _and_ workflow speed increase. Add to that the fact that there is no complicated setup or any complicated dialogs to wade through while setting the parameters. Simply create your object hierarchy, add the NOTA tag to it, and you're off and configuring. Shortly thereafter you'll be rendering an animation to make anyone jealous :
As you'll note once the NOTA tag is added to an object hierarchy you
have _complete_ control over how your objects will be animated. In order for NOTA to work you are only required to do the following: 1. create a keyframe that will act as your end frame position 2. specify where the objects will start from by using and referencing a null object That's it! Seriously!! The rest is tweaking and configuring the settings and optional splines etc. to suit your needs and taste to whatever you may be animating.
added to the position, rotation and scale (depending on what you specify) at the point defined in the graph. The Spline panel allows you to manage motion splines to be used with NOTA. In this case, if you use a spline the starting position will become the beginning of the spline. The neat thing about using a spline is that you can enable looping of the objects. So, when the objects reach the end of the spline the loops around to the beginning to make a seamless animation for you. The oscillation panel allows you to give the objects a wavy feel (oscillation). Incredibly you can control not only the axes, in which oscillation will occur, but the amount (and even phase). The sort panel will determine the order for new objects based on the distance of each object. Reversing the curve would effectively reverse the order, etc.
The tag panel gives you access to the "basics" of NOTA. These include parameters such as Duration to specify the length of the object's animation, Animation shifting with the Step, Frame offsetting to determine animation start point within the timeline as well as locking axis position and/or rotation on any of the three axes. The offsets panel is just that...you can use a nice graph to define X, Y or Z offsets that will be applied after all transformations which means you can use curved trajectories rather than linear translations The random panel allows you to control the randomness of the object contained within the hierarchy. In this case a random value will be
24
The kerning panel will give you the ability to adjust the spacing of the objects in all three axes. Kerning holds the same meaning here as it would with typesetting. It's defined as the adjusting of the spacing between letters (or objects here). My first impressions of NOTA reminded me of my web design days and using flash. There used to be an application called "swish" that I would use to make extraordinarily hard text-based effects with a few clicks of the mouse. NOTA is the same in its operation - but offers so much more. Don't let the fact that it's got "text" in its title fool you into thinking that text is all it can handle. Renato is constantly upgrading this plugin, so I'm sure we can expect
N.O.T.A
By Gary Zullo aka MrPixar
Plugin Review
some "new" features coming along with this helpful little tool. In fact in the time I was reviewing NOTA he released two pretty major versions (1.33 and 1.4). In addition to providing lightening fast updates and support, he also offers several video tutorials instead of a traditional "manual" to read. I can only speak for myself when I say that I much prefer the videos - they allow me to view what I need to get up and running as fast as possible. Each video will give you a great insight as to what this plugin is capable of doing. Lastly, Renato has developed a "light" version of his plugins that allow you to fully demo the product. While fully functional the light versions understandably have a subset of functionality as compared to the full commercial releases, but they are certainly great demos. Make sure to visit his website for the latest information. Breaking News!!! Upcoming release: As if the featurelist wasn't already unbelievable Renato has decided to raise the bar. In the upcoming release (which should be out by the time you read this) [version 1.4] is going to incorporate some truly cool new features. I was lucky enough to be given an opportunity to test drive the new version, and it did not disappoint. New features include:
1. Changes made to the TAG panel to allow user specified min scale and max scale. This is a huge
improvement over previous versions that only allow 0 to 1 values to be used. Of course, it will default to 0 for min scale and 1 for max scale, but any number can be used. Some really cool effects can be had simply be adjusting these values. Try it out and you'll see.
2. In the KERNING tag Renato has added a reference object (!!). This means that now you can perform kerning with *any* fixed point whereas before you could perform kerning only at (0,0,0). Of course you still have all the kerning power from before as well. Seems like such an obvious improvement to make, eh? LOL, seriously -- being able to specify the kerning point myself really opens up the possibilities and makes the feature even more powerful - and EASY to use
was quick to see just how powerful this feature is. Seriously, you can now control just about everything from within NOTA directly, and that can increase workflow amazingly. Feel free to zoom in on the above image to see detail. You simply add the NOTAShader to whatever channel you'd like to control via NOTA. Currently, you'll have to add a float user data element to all the objects for it to work, but that will be addressed in a subsequent update. Then you simply control the effect's power via a graphical interface (similar to the rest of NOTA) and you're off For an amazing demonstration of the newest features of version 1.4 please check out Renato's video at the following URL: http://www.tarabella.it/c4d/nota/Nota1.4_bis.mov . There are some truly amazing things going on that you'll have to see to believe Ok, I'm sold but how much does it cost? Well, no one likes to pay for plugins and whatnot, BUT you should always bear in mind that a plugin of this magnitude means that someone (in this case Renato) has spent a lot of time creating, testing and updating the functionality for you. The price of this plugin is currently 77 EURO, and is a steal at twice the price in my humble opinion.
3. And here I saved the best for last. Renato has added a new shader that is driven solely by NOTA. If you can believe this he has figured out a way to allow you to control things like transparency, bump mapping, color, etc ALL THROUGH NOTA. When I started testing this feature it
25
Bottom line: I think this plugin is simply a "must have". Why? Well, in addition to all the reasons above I feel like now that I have used this plugin extensively I don't think I could go back to doing many-objectanimations by hand...ever again! It is super simple to use and the
N.O.T.A
Plugin Review
By Gary Zullo aka MrPixar
results it produces is nothing short of mind-blowing. Since our rating system only tops out at 5 stars I'll have to settle for that...lol. I can't wait to see what Renato cooks up next for us. Cheers!
Platform: PC/MAC Compatible Rating: 5/5
Price: 77 EURO URL: http://www.tarabella.it/c4d/ Version 1.4
26
Clothilde Splines By Jamie Hamel-Smith
Tutorial
Have you ever wanted to create a dynamic spline? A rope perhaps? Well the easiest way to do it would be to use The Dynamics Module. However, the Dynamics module doesn't do any sort of collision detection where splines are concerned. I have found a workaround to this problem through trial and error and a little bit of XPresso. We needed to create an animated hose for a gas pump and MOCCA IK wasn't cutting it. I already knew that Dynamics would not do the job of collision detection and such, and we don't own Dynamics, so I came up with this solution. I hope you enjoy my tutorial as much as I enjoy squashing these problems like bugs! The most important part of this tutorial is the Clothilde. Typically intended for things like clothes and sheets draped over things; Clothilde is also extremely useful for creating things like hanging tassels and the great thing is that it supports collision detection. I wanted to create a spline that moved like a 'Clothilde Strip' so that I could use a SweepNURBS Object to create a rope or hose. Here is how it's done; first thing we need to do is create a Clothilde strip that we can attach a spline onto. The best way that I have found to do this is as follows: Create an empty Polygon object from the Objects menu, Switch to the top view (F2) so that you can get a better view of your straight line of points. If you switch to the Points Tool and Ctrl-Click using the Move Tool in the view port, a point is created. This point's 'index number' is 0… ok I know what you are thinking, "Big Deal!" well, I want you to go to the Window menu and open the Structure Manager. In this window
you will see the points belonging to your object, it should only have one point right now of course, your lonely little "Point 0" well it is very important that we create the order of the points on this polygon object, because we will need to call on that order of points for a little favor when we get to the Xpresso stage of the tutorial. So obviously the next point will be point 1, and then point 2... We get the Idea. So we are going to create a vertical line of 10 points in our top view port. [Image 01]
Image 02
through 9 points in tact (having the structure manager open during this process will be a great help to show you what's going on.) After cloning all of the points, move them over just a bit. [Image 03] Ok, so now we have 2 nice rows of points that we
Image 01
Now we can't just apply Clothilde to any old set of points right? It has to be a polygon mesh, so we need to create another row of points. The point numbering of this second row of points is not important, so we can just select the first 10 points we just created and from the Functions menu choose the Clone function. Set the number of clones to 1 and set the rotation values to 0. [Image02] This will create an exact copy of all of the selected points that will be numbered 10 through 19, which is perfect because it has left our 0
27
Image 03
can turn into a Polygon Strip. Select the Bridge tool and bridge the points together to create a nice strip of polygons. [Image 04] Now we can add a Clothilde Tag to the polygon strip to make it dynamic! Go to the Object Manager and Right-Click the Polygon Object; choose Clothilde
Clothilde Splines By Jamie Hamel-Smith
points are staying put! I'd bet that you seeing that spline just sitting there all static and lame has you thinking, "How do we get the spline to be dynamic too?" We are going to 'pin' the points on the Spline onto the points on the Polygon Strip; here we go into the XPresso Editor!
Image 06
Tutorial
Image 04
Tags > Cloth from the pop-up menu. A cloth tag should appear in the object manager next to the Polygon object. [Image 05] Now you have to click on the Cloth Tag and set a cou-
Dresser page. The points should turn bright pink, indicating that they are now fixed. We need to do one more thing before we switch to the Perspective view port and the XPresso Editor. Create a linear spline with 10 points. Let's create the spline right next to the polygon strip, shall we? [Image 07] Ok, we will now be switching over to the Perspective view port (F1) and we
Create an XPresso Expression on the Spline Object by right clicking it and choosing CINEMA 4D Tags > XPresso. The XPresso Editor should open up with a large blank grid staring you right in the face! What do we do now? I'll explain the nodes we will be using and how we will be using each one before we even draw one connection! The 2 nodes we will be using are the Point Operator and the Iterate Operator. [Image 08] The point Operator allows you to input or output certain attributes of an objects points. Using
Image 05
ple things before you can preview the dynamic action of the Cloth Strip. The Cloth Tag has 5 pages accessible from the tabs at the top of the Attributes Manager. We will be taking a look at the Dresser Page. [Image 06] The Fix Points option will allow us to "pin" certain points of the strip. Clothilde does not calculate gravity for fixed points, so fixing the points at the top of the strip will allow us to hang the strip from those points. Select the 2 topmost points of the strip and click the Set button next to 'Fix Points' on the
Image 08
Image 07
can hit the play button and watch as the Polygon Strip falls in all of its dynamic glory! Notice that the fixed
28
the Point Operator you can choose a point on the object and for instance, get the coordinates of it, or even better, apply those coordinates to another object's points! The Iteration node is quite a useful little fellow. It takes a value and increases it in
Clothilde Splines
Tutorial
By Jamie Hamel-Smith
increments of 1 from the Start Value until it reaches the End Value. When it reaches the End Value, it repeats the process. An entire loop takes place in one frame. This node can be used for repeating a process, and counting from 1 to 10 for example, every frame. Here is a basic rundown of how we are going to use these two nodes together to "stick" the Spline to the Polygon Strip; we need to ask the polygon strip the location of its points (politely of course) and then tell the points on the Spline the location so that it can place its points on those locations. This must take place every frame, and if all goes well, we should have a Spline that follows the Polygon Strip's points. Now for the setup, we want to ask the Polygon Strip the location of its row of points that we created. So, we create a Point Node as illustrated in Image-08. Notice that the Point Node has an input on the left side (blue) called 'Object'. This is where we tell the point node what object's points it will be examining. Time to drag that Polygon Strip into the XPresso Editor, a blank node appears with the same name as the object you just created. Now we need to tell the point node that this is the object that it should examine. Click the red square on the right side of the node and create a port to output the 'Object' information of the Polygon Strip. [Image 09] now we can drag a connection from the
Image 09
'Object' output port of the 'Polygon' node to the 'Object' input port of the 'Point' node. [Image 10] So, now that we have told the Point node
Image 10
what object it will be operating on, we can take a look at the options we have; the Point Index input port tells the point node which point it will be operating on. (We will be using this port in just a bit) and the Point Position output port outputs the position of said point. So, if we create an Iteration node and plug it into the Point Index port, we can ask the location of all the points we want every frame. Sounds overwhelming at first I know… Ok, go ahead and create the Iteration Node and plug its Iteration output port into the Point Index port of the Point node that the Polygon is connected to. [Image 11] Now I want you to click the Iteration node and look at the Attributes Manager.
Image 11
Notice the parameters for the start and end of the Iteration Loop. If I remember correctly, we have 10 points in total on one edge of the Polygon Strip, and they are numbered 0-9, so 0 will be our Iteration Start and 9 will be our Iteration End. [Image 12] So every frame, the Iteration node will cycle through the points 0-9 and every time it changes the point being examined, the Point node will output the position of that
29
Image 12
point. Now that we have figured out how to ask the position of the all the points on the edge of the Polygon Strip, we need to send the position information of these points to the Spline. Create another Point node; this one will be for the Spline. We would also need to drag the Spline Object into the XPresso Editor so we can plug the Spline's object output port into the Point node's Object Input Port. [Image 13] Now, we want to send the point position data from the Polygon to the Spline, but
Image 13
the Spline's Point node has no Point Position port on the input side… well the thing is that it does actually have an input for the point position, its just not visible by default. Click the blue square on the left of the Spline's Point node and add the Point Position input. [Image 14] Now there is very little left to do, we just have to connect the Iteration Node to the Point Index port on the Spline's Point Node and then connect the Point Position output port of
Clothilde Splines By Jamie Hamel-Smith
Cube to Polygons using the Current State to Object command, or using the Make Editable function or simply by using the keyboard shortcut 'C' now that the Cube is a Polygon object, we can add a Collider tag to it. Right Click the Cube in the object Manager and choose Clothilde Tags > Collider. If you play the animation now, you can see that the rope hits the cube in a rather realistic fashion! Notice that the rope probably intersects the cube a bit when it collides.
Image 14
the Polygon to the Point Position input port of the Spline. [Image 15] now if you look at the perspective view port, the points of the Spline
Tutorial
Image 16
Image 15
detection…? Right! Create a cube and position it in the scene so that when the rope swings, the rope passes through the cube. [Image 17] Set the Time slider to 0. Now we have to add a 'Collider' tag to the Cube so that the Polygon Strip hits
should have 'jumped' to the points on one side of the Polygon Strip! So that's it! The XPresso part of the Tutorial is completed! So basically, every frame, the Iteration node cycles through points 0-9 on both objects and sends the position data from the Polygon's Points to the Spline's Points! Simple! From here, you have a Spline that can be used for anything, I am going to create a SweepNURBS and use a Circle Spline as the Profile. So I have a swinging rope thing now and it looks pretty good… I am also going to change the Spline type from Linear to B-Spline I also set the Intermediate Points to Uniform and set the number to 5. If we hit the play button now we can see a smooth looking rope swinging back and forth in the view port. Don't forget to turn the visibility of the Polygon off. [Image 16] Now what was that I was saying about collision
Image 17
the cube and dynamically reacts to it. We need to convert the cube to Polygons so that Clothilde can calculate the interaction. Convert the
30
Go to the Cloth Tag and check out the Expert page, yes we are experts now *winks* increase the Point, Edge and Poly EPS values to something larger. Think of the EPS values as an invisible distance around the cloth that is the 'real' collision object. The larger the EPS Value, the sooner the cube will hit this invisible barrier around the rope. If you set the EPS Value to a large enough value, you will actually see the rope hit the cube before it even gets that close to it. So, I hope that you enjoyed my 'little' tutorial on how to create Dynamic Splines using Clothilde and a little Xpresso! Experiment with all of the settings in the Cloth Tag, try out different forces like wind and gravity, or even adjust the stiffness of the cloth in the Tag page of the Clothilde Tag. Remember that some of the values in the Cloth Tag go above 100% so you can create some very extreme behaviors! And most importantly… Keep on Attacking! If you have and questions about this tutorial, you can contact me on the 3D Attack Forums. Don't hesitate to ask any questions you may have. Jamie Hamel-Smith (jamiehs)
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy BodyPaint 2 - Unfold and paint a map for a character.
my fantasy squirrel characters so we can have a concrete example to apply these principles to.
- one under the feet - one at the bottom of the tail - one behind the ears
Hello guys and gals,
Picture 02
Tutorial
This month I will introduce you to BodyPaint 2, some of its tools and principles. BodyPaint is the best UV editing tool on the market and shows its power and versatility as soon as you put your fingers on it. It allows you to unfold the UVW coordinates of your model to be able to paint on it seamlessly and without deformation afterward. UVW’s allows also to be deformed with the model, when itself is deformed. That behavior can't be applied to other types of projections, since they will use a fixed set of coordinates to project on the model. What is UVW? UVW is a specific set of coordinates that is allocated to the texture area. They define the direction of the texture, based on their own axis compared to the object's axis. U and V are used instead of the X and Y axis terms to avoid confusion for the program, and the W axis is only used for procedural shaders that need a coordinate to be applied in volume over the object (for example, the Wood texture make use of the W axis, a little bit like a depth value). "Regular" textures, like a color map painted by hand, will only use the U and V coordinates, as they only use a set of 2D information's, since the texture is flat. So, in light of this, I will more often use the term UVs to define the texture coordinates during this tutorial, since I only plan to use those. 1 - Think ahead The first thing is to model a character. For this tutorial, I will use one of
Picture 01
One of the things that will dictate if a mapping is good or bad, are the seams. Seams are areas of the texture that can't be linked together on a flat area, but that are in the object in volume. Since the borders of the textures won't be linked together, it can be tricky to paint by hand a completely seamless texture without painting too much on one side compared to the other. So, seams need to be in a place where we won't notice them much, in case we screw up our manual paint. BodyPaint has a few neat tools to avoid messing up our paint job for these seams anyway, but good planning is always better in any case. For my squirrel, I will place my seams as follows, along the polygons of my mesh : - one seam along the spine - one along the arms and palms of the hands
31
Try to model a clean mesh, without too stretched polygons, or non-planar polygons, and without overcrowding some areas, since it will affect the quality of your unfolding and the time you spend on it (more polygons = more things to adjust and tweak). Since I will use one of BodyPaint's features known as interactive mapping, this tool works with polygon selections, so you will need to picture in your head how you want to unfold your UVs and point out your polygons selections. Here is are the selection sets I plan to unfold (one color for each, here) [pic3]:
Picture 03
It is a good idea to prepare and record your selection sets, so you can hide them easily later on when tweaking the unfolded mesh. 2 - Create a UVW set
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy Depending on the method you used to model your character, it won't necessarily have a UVW set of coordinates applied to it already. If you start for a cube primitive, since it is a primitive shape, once you edit it, it will create automatically a UVW tag to your mesh.
to the standard interface. These are specific to Bodypaint. Here is a quick explanation of what is all this [pic7]:
On the other hand, if you use the point-to-point method of modeling, it won't have any. So just create a material in the material manager, apply it to your mesh by dragging and dropping the material on the object, and choose a projection type other than UVW to generate a UVW tag [pic4].
Picture 07
Tutorial
If the UV window doesn't show anything, just select the menu "UV Mesh>Show UV Mesh" at the top of the window.
Picture 05
Picture 04
Make sure to edit any symetry you have, since we will use all polygons of your model. Here, I will use a flat projection, just because I think it will create UVs packed together, so it will be easier to move aside later on. Click on the material tag and select "Texture>generate UVW" [pic5].
3 - Unfolding roughly Now that our UVW set is created, we will need to unfold the UV mesh. Switch to the "UV Edit" interface using the icon on the left of the viewport [pic6]. Using this interface, you will notice that a few new windows and tools appeared compared
This will create a UVW tag on you mesh in the object manager and change the material coordinates to "UVW". The command "assign UVW coordinates" is to edit a specific UVW tag with another projection type later on, if need be, but both can be used the same way at this stage (it will also generate a UVW tag).
Now, we could start to unfold right away from there, but I want to create a texture space to work with so I won't have to move my UVs later. In the materials manager, create a new material ("File>new material"), then right-click on it and select the color channel to create a texture map on that channel [pic8].
Picture 08
Picture 06
32
A new popup window appears displaying some options for the new texture to create. First, rename the texture as you wish, to remember it
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy easily, input a size for that map (use a big resolution if you want more details, like wrinkles and such) and choose a background color (Here I choose a transparent background for the moment. This is just the unfolding stage and the default checkboard background material will be helpful, I'll explain why later). [pic9].
The polygons can now be selected, and I will use my previously done selection sets to isolate the parts I want. First, I will select my main body polygons [pic13]:
Picture 10
Tutorial
ed it. The map is saved by default at the same level as your scene. If you wish to use a specific file format in BodyPaint, you can change the default settings by opening the software preferences (Ctrl+E) and go into the BodyPaint tab to select the file format. I prefer to work with the Photoshop format, since I tweak a bit in Photoshop sometimes [pic11].
Picture 09
This step allowed me to define a texture area to unfold my UVs in, and you notice that the UVs are now stretched since the proportions of my texture are also changed (it sticks to the UV). My 3D mesh now has a checker shader applied to it, which is the default material background, and a background layer has been created in the material manager, for that specific material in the color channel. Just click the "plus" sign at the left of the material icon to unfold the layers. These are similar to Photoshop layers, and shouldn't confuse you a bit [pic10].
Picture 11
Unfolding the body
Picture 13
Make sure that the UVW tag is selected in the object manager if you want to edit it. You'll notice that the polygons are also selected in the UV Mesh window. That is nice as it allows us to work real time on the UV mesh and check what it does in concordance with the viewport display (remember, if you do not see the UV Mesh, in the UV Mesh window, check if the UV Mesh display is turned on and if the UVW tag is selected). Now, we will use one of my favorite BodyPaint functionalities :
We will now start to unfold our UVs. I will use the "UV Polygon Edit Tool" located on the left tool panel [pic12].
Interactive Mapping Interactive Mapping allows us to apply a different "automatic" mapping on each selection to orient the UVs the best depending on the shape. Go into the UV Mapping window, enable the "UV Commands" tab and select "Start Interactive Mapping" [pic14].
Save your scene now. BodyPaint will ask if you want to save the texture. Click "Yes", since it wasn't saved automatically when we creat-
Picture 12
33
We are now in Interactive Mapping mode, which allows us to select and orient the coordinates of our current selection set [pic15].
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy
it won't be noticeable (if the seam is right in the middle of the belly, you would need to pay extra care to apply paint properly, we want to smooth the process as much as possible, so we go for the easiest solution) [pic16]. Picture 14
Unfolding the ears The ears are a bit trickier, since the cylindrical projection doesn't fit for them. So I will need to "open" the mesh to unfold properly at this point and relax the UV set. Select the polygons of one ear, except for the row in the back [pic18]. This is the row that will define the seam area,
Tutorial
Picture 16
Picture 15
Several things happen now : - The tool jumps to texture mode, which allow you to move, rotate and scale your texture projection - The attribute manager displays several projection modes, that will help us choose the one that fits better for our current selection - The UV Mesh is interactively updating the shape of the UVs, so we can interactively orient them as fit.
(Here, I just filled the background layer with black, so you can see better how look the UV Mesh). Picture 18
Once satisfied, click on the "Stop Interactive Mapping button", and the UVs will be fixed the way you oriented them, the main tool jumping back to Polygon UV Edit Tool. Now, you can scale, move and even rotate your set of UVs, so they are not in the way when editing the other UVs. Don't pay attention to your texture space, just tuck the current selection on the side, we will put everything back together later. [Pic17]
So now what we will do is select a cylindrical projection type, and adjust its scale and rotation to make the UV mesh as flat as possible, and easy to paint on. Here, I used a cylindrical projection type, as it is a similar shape than my current selection type, and will unfold all around the 3D mesh, preventing overlapping polygons on my UV Mesh. I scaled and rotated my texture axis, so that the seam of my texture covers the spine of my character, where
and allow us to "open" the UV Mesh. Move this row out of the way in the UV Mesh window. Activate Interactive Mapping by clicking on the "Start Interactive Mapping" button in the UV Commands tab and set the projection type to flat, making sure to orient your projection properly, and scaling it a bit so it is at a proper size [pic19].
Picture 17
Picture 19
Once satisfied, click on the "Stop Interactive Mapping" button to fix the current projection, and move the UV
34
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy
Tutorial
polygons on the side to make sure you won't select unwanted polygons. As we can see, some polygons are overlapping. To prevent this, we will use another neat BodyPaint feature : the "relax UV" function. This function relaxes a UV set, which means it will flatten it so that no polygons will overlap anymore. Right click in the UV Mesh window, and select "relax UV" or select the function directly from the "UV Mapping" window and the UV Relax tab. Leave everything unchecked at this point, and just apply the function [pic20].
ear, move it next to the UV mesh of the ear we just modified, and scale it to the same size, roughly (if you changed the size). Now, select the UV Point Edit tool, and select one of the adjacent points of the back polygon row in the viewport. This point will be selected in the UV Mesh window also and reflected as a two points selection, since they share the same 3D space. These points need to be stitched back together. Activate the point snapping (in the attribute manager - point mode) to snap points together, and select/move/snap the points together. In the goodies folder you'll find a small video detailing how it works, since it will be easier for me to show it than to explain with my bad english [See vid1].
Picture 21
Picture 22
the desired axis (here V axis) [pic23]. My polygon selection is now properly oriented.
Repeat the process for the other ear, taking care of reorienting the flat projection to match and make it as symmetrical as possible with the other UV set. Just check out the second little video of the whole process for the other ear [See vid2]. Picture 20
As you can see, our ear polygons are nice and flat, not overlapping anymore. We will only need to stitch back our back polygon row, since we didn't include it in our selection to "open" the mesh and allow us to use that Relax UV function. At this point, we could use the UV Terrace function, which automatically stitch back together selected polygons with their neighbors, but in our case, the base of the ear will be stitched back to the head, which is another polygon set, so we will need to do it by hand for the moment. Select the back polygon row of the
Unfolding the tail The tail is pretty much setup the same way. Select all polygons except for one row to "open" the UV Mesh, apply a flat projection using the Interactive projection Mapping function and apply a Relax UVs function. Relax the UVs of the independent row we left out earlier, and connected adjacent points together to obtain a flat tail UV Mesh [pic21]. Sometimes, you will notice that the UV mesh seems inverted [pic22]. If it's the case (as it is in my example), then just select your inverted polys and right-click in the UV Mesh window, and flip the polygons along
35
Picture 23
Snap the corresponding points together and tweak a little bit so the polygons all flow more or less in the same direction, like shown [pic24]. We will take care of the UV mesh layout later on, while in the tweaking phase, as we are still focusing on laying out our basic UV Mesh first. Unfolding the arms The arms and hands are trickier,
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy since there is a lot more polygons and different shapes to unfold. I will follow the same principle here, by "opening" the UV Mesh, leaving out the polygons of the palm of the hand, and the row under the arm, since that is where I want my seam to be. Select the polygons of one arm and leave out the polygons of the palm and under the arm [pic25].
time, as it will keep relaxing as long as it can [Pic27].
Picture 27
The second applying is good enough for us.
Tutorial
Now, select the polygons we left out earlier and use Interactive mapping to apply another projection. Here, a flat projection is more suited, so we will use this and adjust it so it more or less fits with the other part. Relax the UV Mesh two times, and it should look like this [pic28].
Picture 29
it's boring already). Select everything except the bottom of the foot and one row at the back (once again, to open the UV mesh and create the seam) [pic30]. Use interactive mapping to unfold the mesh. I
Picture 25
Apply the Interactive Mapping and choose a projection type. Here, a cylindrical projection seems to do the job quite well, so I will use this. [pic26] Picture 28
Picture 26
Fix the projection where it is by stopping the Interactive mapping, and relax your set of UVs. Here, you'll notice that if you apply the relax UV function, some polygons are still overlapping. To fix this, just apply the function one more
Snap the corresponding points back with the rest of the arm. Here is a video of how I proceeded [vid3]. Ok, so it looks messy and weird right now, but we are mostly focusing on putting our UV sets together, we'll take care of shape and spreading/proportions later on. Repeat the process on the other arm, and try to make it look more or less similar [pic29]. Unfolding the feet The feet are also a tricky part, but are also setup the same way (sorry,
36
Picture 30
used a flat projection here. Relax the UVs. Here, I encountered a problem, as relaxing the UVs kept some overlapping polygons, and wouldn't work even if I apply the function several times. So I just rearrange my points manually, using the magnet tool, set to diameter 0 and checking the "nearest point method" checkbox. Check video 4 to see how I proceeded [see vid4]
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy Now, just select the polygons left out once again, apply a different projection type using Interactive Mapping and connect them back to the main polygons of the foot. Repeat the process on the other foot. Once done, it should look like this [pic31]:
Tutorial
Picture 31
One little thing I forgot to point out : whenever you play with Interactive Mapping, you'll notice that previous settings are kept, so I would advise you to take advantage of this and reuse right away your projection type and scale on the symmetrical of the mesh (the similar selection set, but on the other side). That way, you won't lose too much time trying to reorient properly and find the good projection for each part, when they are symmetrical. It just saves a little bit of time, not much, but the shortest time you spend on that kind of thing, the better.
everything proportionally one with the other. Scale up the body, and down the rest. Fit everything inside the Texture area too, since it will be where the texture will be applied.
and colors, but still using a checker pattern, to make sure that the UVs are oriented in the good direction, and to check polygon connection, size and map deformation.
I will take the opportunity to relax the UV for the main body polygons, since I forgot to do it earlier and it still has some overlapping polygons. So here is how it should look at this stage, with each elements resized proportional with one another, and placed properly inside the texture area defined earlier. Leave some space in the canvas, since we still need to move some points around. (Here, I filled the polygons of the UV Mesh with a color, so you can see where the holes are in the structure - to fill polygons, just select the polygons you want to fill, and go to the menu "Layer>Fill Polygons", it will fill them with the foreground color currently active) [pic33]. Now is the longest part of unfolding
The checker should be enough for us here. The default background has a checker that we will use. If your background layer has a color, then just create a new layer by rightclicking on the layer space in the material manager and add a new layer. Then, select the background layer, and press the "delete" key to delete it. That way, you will only have a transparent layer, which lets you display the background default checker [pic34]. So now, we can see how the check-
Tweaking Ok, now our complete UV unfolded mesh should look like this [pic32]. The next thing to do now is to resize
Picture 32
Picture 34
Picture 33
a mesh : tweaking. The tweaking process needs to be done to make sure that the UV polygons size and shape are correct, and to clean any deformation that could happen to a texture. To help in this process, we will need a texture that shows easily deformation. The checker is really good for this, as it displays the size of boxes, as well as a direction of lines. Sometimes, people also make a custom map with different numbers
37
er is applied over the mesh, and we notice some stretching and unwanted deformations. Some polygons seem scaled wrong with one another, so we'll want to fix that as much as possible. Here, no mathematical solution, it's more a matter of a good eye [pic35]. Tweaking the tail Let's start with the tail. As we can see, there is some stretching of the checker material here, and the scale
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy is a bit too big, which means the polygons need more pixel information, which in turn means we need to make the UV Mesh for the tail bigger. So, let's size it up a bit, so it matches roughly the size of the main body checker.
Tutorial
Select a polygon of the tail on the UV Mesh, then right-click in the UV Mesh viewport, and select "select polygons>select connected". Then, using the scale tool, make the whole set bigger, until the checker is small enough for you. Pay attention not to overlap polygons at this stage, and try to remain in the texture area. If you can't, then it means you either need to increase your texture size, or scale everything down (but you will lose pixel quality). For areas where polygons are stretched out, just move the points around, using the magnet tool as previously described and adjust the points until the checker looks like it’s flowing with the mesh as much as possible. Be careful not to deform further the texture, and be patient. Just keep in mind that wherever the texture is stretched, it means that the polygons need more pixel information, so they need to be bigger. In the case of the tail, the stretching occurs toward the end, so I will widen the points around that area, trying to hold the texture as fluid as possible [Pic36]. Tweaking the face and body Just apply the same principles here, paying extra care since it will be the area where there will be the most details. You will find another video for the tweaking of the face in the goodies folder [see vid5]. My tweaking on the video is not perfect, and I would need to spend a lot more time fiddling with it, but I think
Picture 38
Picture 36
you'll get the point on how it works, and how the UV Mesh interacts with the texture over the 3D Mesh. The Hypernurb interpolation is also important, since it will affect the way the texture is interpolated on the smoothed mesh. "Boundary" is often the best method. Once I spend a bit more time, and I did the other side of the head (and used the proper Hypernurb interpolation), it looks like this [pic37].
Picture 37
At this point, the texture being bigger on the nose is ok, since there are no transitions between color here, and I don't need too many details. Tweaking the ears Only the back side of the ears, where the seams are, need to be tweaked. It is a matter of aligning the texture at the seam, as much as possible, by moving points as previously [pic38] [pic39]. Here you notice the seam I was talking about in the beginning. It is sometimes hard to fix since BodyPaint doesn't work really precisely if you don't have a support to snap to, so we
38
Picture 39
just take care of texture deformation, and the alignment will be corrected when we use the BodyPaint Projection Painting tool. Tweaking the arms and hands Hardest area of all to tweak, since it has so many polygons and tiny spaces to adjust. The method stays the same, though, and as long as you pay attention, you won't have a problem with it, you'll just need to spend some time. The arms's UVs are laid out pretty well already, we just need to take care of a little stretching on the arm itself and on top of the fingers. The palm is the area that needs the most work, since it needs to be resized a lot, and the seam needs to be as less visible as possible [pic40]. Here is a
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy
BodyPaint's tools or with an external program (i.e. Photoshop).
Picture 43
Picture 40
Tutorial
comparison of the UV Mesh once tweaked. I spent roughly 20 minutes moving points around until I was satisfied. The biggest part has been to widen the bottom of the finger and align as much as possible the palm of the hand with the rest.
To work with an external program, you would need to export the UV Mesh, so you can see where you are painting. To do this, simply select all your polygons, and select the outline polygon command in the "Layer>Outline Polygons" menu. But beforehand, make sure the brush tool size is set to 1 pixel, its strength 100% and that the color is one visible (white is good, or black, for example). The fill polygon function will use the brush parameters to outline the polygons with [pic45][pic46]
Tweaking the feet The feet don't need too much work, as the checker shows. Only the ankle area needs a bit more pixel information, and needs to be scaled in the UV Mesh window. Here is how it looks once done. [pic41][pic42]
Picture 41
Picture 42
In picture 42, I selected the polygons that have been tweaked. I then just repeat the process on the other foot, and try to match what I've done here.
Picture 44
The UV unfolding is finally done! It is not perfect of course, but for a basic use, it should be enough. The important things are that no overlapping areas are left, and that the texture deformation is reduced or eliminated. The only little kinks left are the seams, and that's where BodyPaint's powerful painting tools are really useful [pic43] [pic44]. Painting Now is the fun part : painting your map. You can now paint and create any map you want, in any channel, they will all use the same set of UVs and the same projection. To create a new map, refer to the method I explained at the beginning of this tutorial. There are basically two ways of creating a map : with
39
Picture 45
Picture 46
Once done, just save your texture by saving the scene, and open it in your favorite image editing program. The other way is to use BodyPaint to paint your map. BodyPaint has a few tools that give it an edge over a standard image editing software. First, it allows you to paint directly on the 3D model. Second, it has the Projection painting tool, which allows you to paint directly on the model, and seamlessly paint difficult areas like seams or stretched areas that you couldn't get rid of.
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy
Tutorial
Once a brush strokes applied, BodyPaint will project it against the 3D model, and deform the brush stroke so it is not deformed on the model. Really neat feature. Switch your interface in "BP 3D Paint" from the icon on the left of the viewport. [pic47]
matically switch to 3D painting mode. You will notice by doing this that the texture preview in the viewport will switch to high resolution, which is really nice to paint details. Once the brush tool’s selected, the Attributes manager will display its options. Here, you can select some preset brushes or adjust its settings manually [pic49]. I won't explain in
Picture 51
Picture 47
This interface is almost similar to the UV Editing one, except is has more tabs to show paint tools options and settings, as well as a texture window, where you can see and paint on your overall texture. There is also the viewport of course, so what you paint in the viewport on the model will be reflected real time on the texture itself. Here are a few explanations of the interface [pic48]:
Picture 49
details what the settings do, since it is explained clearly in the manual. Select a color for your brush and start to paint, either on the texture window, or on the 3D Model in the viewport. You will gain a lot by using a Graphic Tablet with BodyPaint, as it allows for more control and finesse when painting than the mouse. Don't forget to check the
Select the "Projection Painting" mode (the outline of the viewport will turn green when this mode is enabled), and trace the same brush stroke. I refresh my view (either by typing the "A" shortcut or by applying the projected paint by clicking on this icon, and hooray, my brush stroke has been projected properly and without any noticeable seam! [pic52]
Picture 50
Picture 48
To paint, we will simply use the brush tool, and BodyPaint will auto-
spin madly, since the tablet's borders won't be pinned to the screen [pic50]. When painting in the viewport, you will notice the size of the brush for the current brush when hovering over the model. If the brush retains its circular shape, then that means the brush strokes won't be deformed and it's a good thing : Here, I start to paint my character and I notice right away a problem : an ugly seam [pic51]
"graphic tablet" option in the preferences, otherwise your viewport will
40
Picture 52
BodyPaint 2 - Character Texturing By Sebastien Florand aka Fluffy Here is how it looks in the texture window. BodyPaint calculated automatically how to project that brush stroke, which makes it a whole lot easier for me to paint on my messy UV Mesh. Happy I am. And that's pretty much it for this month to get you started. BodyPaint has a whole lot more features of course, and I would need several tutorials to cover it all, but this tutorial covered enough I think for you to work on almost any project.
Tutorial
Don't be afraid to experiment with it and try out its different functions. This software has a lot of features and needs some getting used to, but is really powerful and rewarding in the end. Here is my little fellow finished using the same method, have fun and don't hesitate to contact me on the 3D Attack forum if you have any questions regarding this tutorial. In the goodies folder, you will find the squirrel model. You are free to use and learn from this tutorial, but it is not commercially free. Do not reproduce this tutorial in any manner or form without prior written permission from the author and/or 3D Attack. Thank you for your understanding.
Cheers, Fluffy
41
Rolling Objects By Rui Batista
Sometimes we have to deal with dynamically driven movements but three things can happen that prevent us from doing it:
Tutorial
1. We don't own the Dynamics module 2. Dynamics are just too slow to calculate or 3. Adjusting Dynamics parameters is just too complex and time consuming. So, what do we do? We fake it! In this article we will see how to, automatically, place an object above the floor, no matter what orientation it has. I will present two methods: a simpler, not very accurate method and a more complex, but much more accurate method. The first method uses only XPresso and is best suited for objects that are roughly spherical in shape. For example, this apple is mainly spherical [01].
Image 02
between the center of the apple and the point where the "ray" hits the surface is the distance that the apple must rise from the ground. This works most of the time (example #1 and #2) but sometimes it fails miserably (example #3). Even so, for simple objects this is good enough method. Let me explain how to "code" it in XPresso. Instead of an apple, create a simpler object. For example, an egg (its simple enough to model). It doesn't have to be a polygonal object so, you can use a Lathe NURBS if you want. Let’s name it Egg_Mesh from now on. Make sure the axis of the Egg_Mesh object is placed where you consider to be the center. Now, clone Egg_Mesh, name it Egg_Dummy and place them both inside a Null. Make sure they are centered in the Null (their coordinates are 0,0,0). Now make the Egg_Dummy invisible both at the editor and to the renderer. You should end up with a hierarchy similar to figure [03].
Image 01
What the XPresso expression will do is to calculate the interception, on the object mesh of a ray that passes through the middle of that object and a point that lies precisely beneath it some distance apart. This may sound too complicated, but check out image [02], Example #1. A "ray" is sent from the center of the apple to a point beneath it (a safe distance away to assure it lays outside of the apple). The distance
Image 03
Add an XPresso tag to the Egg_Dummy object. Drag into the XPresso window, both Egg_Mesh
42
and Egg_Dummy. Now, create a Global Rotation port as an output of Egg_Mesh and a Global Rotation port as an input of Egg_Dummy. Connect them. From now on, when you rotate the Egg_Mesh, the Egg_Dummy object will rotate the same way. Duplicate the Egg_Dummy node and delete the Global Rotation port. Add it an Object port and a Global Position port as an output. Now, we must subtract a distance from the Y component of the coordinates. So, create a Vector2Reals node and feed the Global Position from the Egg_Dummy into it. Create a Reals2Vector node and connect to it the X and Z values from the Vector2Reals node. This is because we only need to manipulate the Y coordinate. Create a Math node and set it to Subtract. Feed the Y coordinate from the Vector2Reals into the Math node and connect the output of the Math node to the Y coordinate of the Reals2Vector node. Now, how much to subtract from the Y coordinate? I set it to 1000, but you can input any large number. Just make sure it is a number larger than the radius of the imaginary sphere around your object. [04] Now, add a Ray Collision node. Feed it the Object port from the Egg_Dummy, the Global Position port from the Egg_Dummy on the
Rolling Objects By Rui Batista
ent Null. Now, since this method is not perfect, could there be a way to make it more precise? Yes and you can even use the same hierarchy and methodology, but the calculations will have to be done in COFFEE since they become just a little more complex.
Tutorial
Image 04
Ray Point1 and the result of the Reals2Vector node on the Ray Point2. Create a Distance node at the output of the Ray Collision node. Duplicate the Egg_Mesh node and delete the Global Position port. Create a new Position.Y input port and feed it with the Distance result from the Ray Collision node. The XPresso expression is finished [05] but it is not working. That is because the Ray Collision node, as a default, starts with the option "Test Only" turned on. To make it really work, turn off this option. You can now rotate the Egg_Mesh object and it will adjust its Y position automatically. It will try to stay above the parent Null. So, you can place the Null where you want the floor to be and the Egg_Mesh object will stay above it. You can even animate it, setting keyframes for the rotation and the position will still adjust automatically. If you want to animate the position of the Egg, animate the par-
Convex objects are the ones that would suffer more, using the first method. Convex objects have surfaces that go in and out, with angles, kinks, grooves, etc. For example, a wine glass is a convex object [07]. So, what we must calculate is the coordinate of the lowest
the Y coordinate of the center of the object. Ok, ok... complicated sentence, but its easier to understand with a graphic. [08 a-b] Before creating an hierarchy similar to the one you created before, lets
Image 08a
Image 08b
Image 07
point of the object and set its Y coordinate to the distance of between that point Y coordinate and
Image 05
see how must we create the dummy object. You only need a rough mesh that surrounds the more detailed object. So, a very simple "shell" can be created and you only need to make sure that nothing of the original object sticks out [09]. Now, create a similar hierarchy using your detailed object and the "outer shell" object. Don't forget to turn off visibili-
Image 09
43
Rolling Objects By Rui Batista
ty (editor and render) for the shell object. Create an XPresso expression, just like you did before, but this time its much simpler. [10] You still need to pass along the Global Rotation from the detailed object to the shell. You also need a COFFEE node that inputs an object (Link) and outputs a Real. Connect the Object port of the
code does:
a polygonal object, there is no sense in going on.
main() this is required. It tells CINEMA 4D that this is the first think to execute in this code. var f,num,list,mat,position; I define all the variables I will be using in the code. The "f" variable will be used to loop through all the
num=object->GetPointCount(); Ok, the object exists and is a polygonal object. So, we find out how many points it has and store that information in "num". if(!num)return; This one is easy. If there are no points, do nothing. The object could be an empty polygon object, after all. mat=object->GetMg(); We get the matrix of the object and store it in the "mat" variable. list=Object->GetPoints(); We get the point list and store it in the "list" variable"
Tutorial
Image 10
shell object into the object port of the COFFEE node and connect the Real output port of the COFFEE node to the Position.Y port of your detailed object. Make sure you give descriptive names to the input and output ports of the COFFEE node because they are going to be used as variables inside the COFFEE code. I named them "object" and "min_y" respectively. Now, in the COFFEE node, type the following code: [11] I will now, explain line by line what the
Image 11
points of the object. The "num" variable will store the number of points of the object. The "list" variable will point to the list of points of the object. The "mat" variable will store the object matrix. It’s a set of data that defines the object position, scale and rotation. The "position" variable will store the coordinates of each point of the object. The "object" and "min_y" variables are already defined by the COFFEE node itself.
min_y=1e30; Since we want to find out what is the lower Y coordinate, we start with an insanely big number so that any Y point coordinate will be less than this, when compared. 1e30 is scientific notation and means 1x10 raised to the power of 30. In fact, it means a 1 followed by 30 zeros. BIG NUMBER!!!
if(!object)return; The ! sign means NOT. So, if NOT object, return from the code. In layman terms, it means: if there is no object, do nothing.
for(f=0;f<num;f++) We start a cycle that uses the "f" variable as a counter. We start "f" at 0 and go on while it is less than "num". For each interaction of the cycle, we increase the value of "f" (that is what f++ does).
if(!instanceof(object,PointObject))ret urn; You already know the meaning of the ! sign. In this case, if the object is not a PointObject, do nothing. A PointObject is a polygonal object. Only these object have a list of points and, if we are not dealing with
position=mat->GetMulP(list[f]); Wow!! This is complex. First we get a point from the list (list[f]) and multiply it by the matrix (stored in "mat"). What this does is to get the point that is stored in local coordinates (relative to the axis of the object itself) and moves/scales/rotates it to
44
Rolling Objects By Rui Batista
where it is in global space.
Tutorial
The points list is always stored with local coordinates. So, a point in the object that is at coordinates 100,120,200 is ALWAYS stored as 100,120,200, no matter where the object is placed, scaled or rotated. But we only get the REAL location of the point in space when multiplied by the object matrix. Complex, isn't it? But trust me, its necessary. The modified point coordinates are stored in the "position" variable. if(position.y<min_y)min_y=position.y ; Now we compare the Y component of the point coordinate with the value of the "min_y" variable. If it is less, we just found a Y coordinate that is lower than the previous one. So, we update the "min_y" variable. min_y=abs(min_y); We change the "min_y" to its absolute value. This way, it is always positive. Why? Because the lowest Y coordinate found could be (usually is) negative. And we want to raise the detailed object by that amount. But raising in the Y axis is a positive movement. That is why we need the "min_y" variable to be positive.
And that's it. Now the "min_y" variable has the value that we must assign to the Y coordinate of the detailed object. You can now rotate your detailed object at will and it will keep perfectly above the floor (defined by the XZ axis of the parent NULL). Like with the previous method, to move the object, move the parent Null. To rotate the object, rotate the detailed object. And that's a wrap!! Feel free to contact me at: rui_mac@ruimac.com if you have any doubts and... Keep on attacking! Make sure to check the goodies folder for this month at: http://www.3dattack.net/goodies/ Enjoy!
Check the example video and C4D Files
45
Stamp-o-matic By Base80
Stamp-o-Matic Tutorial and a working file for xpressophobes
The XPresso part Part 1 - Create instances on collision.
Ever wanted to leave footsteps in sand or bullet holes or a stamp on an envelope? Well here is the solution. The Stamp-o-Matic xpresso.
Start by making an xpresso tag on a null-object. Add 3 user-data fields to the tag, the data type set on "link". Give them a name like; foot, footstep and floor.
Tutorial
What does it do? The Stamp-o-Matic creates an instance of an object on
You need a foot object (a polygon at the bottom of the foot), a footprint object (this can be whatever you want) and a floor (polygonal object or group of polygonal objects). Now you can animate the foot and it will leave a print every time the foot collides with the ground. Cool.
So we have: User-data--> Collision--> Mono-flop--> Instance-maker.
Now we can connect the user-data containing the link of the footstep to the Object port of the instance maker so it can make the instances of that object. Now open the xpresso editor by double clicking the tag. Drag the tag with the user data in the editor and open the 3 link output ports. Next we create a bunch of nodes. A collision node, a mono-flop, a time and a compare node.
impact of two other objects. In english; when a foot hits the ground it leaves a mark. Click once on the XPresso tag to drop the necessary objects in the appropriate user-data fields.
Now connect the count port of the mono flop to the instance-maker (this node is provided in the file in the goodies folder of the mag)
The first thing we do is detect a collision of the foot and the floor. Connect the foot and the floor userdata to the collision-node. This node gives a "True" on collision. This true can trigger the making of an instance. Check the Include children and use deformed points boxes.
The instance maker needs an empty null-object to put the instances in, the "container", just drag an empty null-object in the xpresso editor and connect the object-port to the container port of instance maker. Well this works fine but the footsteps are all in the same place. Part 2 - Placing the objects What we will do here is pass the position of impact to the instance created by the collision. So we need a Hierarchy node. Connect the container null object to the hierarchy node and set the node to go down to the last instances in
How does it work? This xpresso is built around the fantastic "instance-Maker-Node". This node was commissioned by me and is made by Majoul of France. The node can make an instance of an object when-ever needed. In this case an instance is created on collision. Easy.
What we want is to count the number of times the foot has hit the ground. We can do this with a mono-flop node. Every time the mono-flop is triggered by the collision it will add 1 to the count port.
46
the container. So set it to D (down) for the start path and L (last) for the iteration path, easy does it.
Stamp-o-matic By Base80
Connect the hierarchy node to an object node. The object node will be representing the last instance in the container, but actually this is not a transparent part of xpresso. I am never sure this actually works so to be sure I open the name-port of the object node to a result-node set to "string" now you can read the name of the selected object here. Create another object node and connect its object input port to the user-data with the foot link. Open the global matrix out-port of this object node and connect it to the global matrix in-port of the instance object node.
node. Now at least the thing works but for a reason that is beyond my understanding the first step is not being made, but if you put 2 in the math node this is solved and all goes fine. The last thing we need in this part of the xpresso is to reset the mono-flop at the start of the animation. We do that with a time-node connected to a compare node. Set the compare node to == and enter 0 in the second field. Now the node will give a "True" when the timeline is a frame 0. Connect the output to the reset-port of the mono-flop. There is another bug at least for the stamp example and that is that the instances are positioned slightly off
How to customize it? To make footsteps in sand you could do that by subtracting the step object from the floor object using a Boolean object, or try a proximal shader to get a bump footstep. You can also make an xpresso that creates an instance of a spline object with a loft nurb as the container this is really fun. I made a few of these variations in one of them I create an instance of a spline at every frame as to produce a trail behind my object. This is the toothpaste xpresso.
Tutorial
Have Fun! And show me your variations in the forum.
Actually a funny thing happens. The position is passed to the instance on impact and another object is created at the exact same moment so the global matrix stays with the last object it was passed to just before the new one is made. That means it stays where we want it.
the floor, they are floating. So I made a copy of the hierarchy setup and modified it to D-LP (down, last, previous) as to select the previous object. I feed the position Y of the selected object whit a 0 to stick the object to the floor.
Part 3 Debugging. You must have noticed the whole thing doesn't work at all. One thing that goes wrong is the hierarchy node, it stops the xpresso from working when it doesn't define an object (when the container is empty) So what we need is that there is always at least one instance in the container-null so that the hierarchy works. So lets go to the first part of the xpresso and add a Math-node set to Add and with 1 in the second field. Squeeze the node between the mono-flop and the instance
47
A reminder: Do NOT distribute the instance node, it is only for readers of the magazine. This is important to me and I hope you respect that.
Lookout Tower Tutorial Part 4 By Bram van Gerwen
Tutorial
Welcome to the last part of the Lookout Tower Tutorial, Part 4. In this tutorial we are going to do some basic texturing on the tower and show some different ways to combine and mix textures. Textures needed in this tutorial can be found in the Tex folder inside the TowerPart4Finished folder. Open the TowerPart4Start.c4d file. We'll begin by texturing a bit of the main tower body. So select the tower body, switch to polygon mode and select the Freehand selection tool. Enable 'Tolerant selection' and 'Only select visible elements' and in Top view draw a circle inside the outer loop of the top floor, Picture 1A. The tolerant selection makes sure that the polygons that don't fall entirely in your selection are selected as well.
Now use Grow selection once, then select the Loop selection tool and while holding ctrl deselect the lower and middle loop of the staircase gap and also deselect the vertical ring on the outer edge of the floor, Picture 1B. Click Set Selection
(Selection -> Set Selection) to create a tag that stores the current selection. Click the tag and name it 'top floor'. Create a new material and name it 'Floor Gradient'. Disable the Specular and load a 'Gradient' into the Color Texture field. Click on the Gradient and set the Colors like in Picture 2A and the Type to 2D-V. Now drag the floor gradient to the Tower body object. Click the texture tag that appears behind the object
and move it to the left of the selection tag. Set the Projection to Flat and drag the 'top floor' selection tag to the Selection field in the tag properties. This texture will now be restricted to the selection in that tag. Switch to the Texture Axis Tool. You will now see a outlined cube with therein a flat plane which is a representation of the flat texture projection we set it to. The gradient will be projected across this plane so we need to move the texture up and scale its Y-axis down to get the gradient effect on the stones of the top floor. Set the Y position of the texture to 252.95 and the Y scale to 0.6 and apply. These values are very precise as the stones are only a couple of increments high and as you see the miniscule height of the texture puts the gradient nicely from the floor to the top of the stones, the darker grey outlines the stones in a satisfactory manner, Picture 2B. Like this the floor still looks a little flat, we want it to be more realistic.
48
This will be accomplished with a bump texture, we can't just add the bump to the floor gradient material as the projection of the texture is not correct to spread the bump over the floor. We'll mix a loose bump material with a different projection together with the already applied gradient texture. Create a new material, name it 'Floor Bump'. Disable the color and specular and enable the bump section. In the Bump channel load Noise into the Texture field, click on the noise and set it to Poxo. Now drag the Floor Bump material to the tower body and move its texture tag right of the gradient tag for clarity. Then drag the top floor selection to its Selection field just like with the gradient texture to restrict it to that selection, set its projection to Flat. Set its Y position to 252, X scale to 200, Y Scale to 200, P rotation to 90 and apply. The bump texture is now laying flat on top of the tower and is roughly the diameter of the tower itself. If you render now you will only see a black floor, to remedy this enable the 'Mix Textures' option inside the texture tag of the bump material. This will mix it with the underlying materials, render again and you will see both materials being mixed in the given selection. The bump still looks a bit rough so we'll tone that down a bit next. Go to the noise channel inside the bump material. Click the noise to see its options again, you'll see that Color 1 & 2 are set to hard black and white. Simply change the black to a dark grey and the white to a light grey to soften the bump. Fiddle with these grey values until the effect is to your liking.
Lookout Tower Tutorial Part 4 By Bram van Gerwen
Tutorial
Let's save the rest of the main tower for last, let's move on to texturing some of the smaller details first. Zoom in on the front window, open the Window Bars object inside the window bar group. Select the lowest cylinder, which is the long vertical one. Create a new material and name it 'Bar Metal'. Immediately drop the material on the cylinder object. Set the projection in the tag to Cylindrical and switch to the Texture Axis Tool. Set the scale of the texture to X 4, Y 49, Z 4 and apply. This will scale the texture to roughly the size of the cylinder. We want the bars to be reflective but not so much at the seams. Enable the reflection in the material and load a Gradient into its texture field. Never mind about the percentage setting now, the gradient will take care of this. Right-click the material preview and set it to cylinder, Picture 3A. Now click the gradient and set its Type to 2D-V to set it to top to bottom.
Recreate the gradient as in picture 3B, you can see how the gradient is going to affect the cylinder. Black being non-reflective and White is 100 percent reflective, use nearblack and dark grey in this gradient to get transitions from a little reflective to a dull reflection. Now go to the color channel, set it to 100 percent and also load a Gradient into this texture field. Set it
to 2D-V and enter the colors like in Picture 3B, set the turbulence to 20 percent. Next we'll add a little bump, enable the bump channel and load Noise into the texture field. Click the noise and set it to Poxo, because our texture is stretched along the cylinder we need to lower the length scale of the noise a bit, behind relative scale you see 3 fields, set the second one to 20 percent. And last to create a little bit more flat surface in our bump without protrusions set the Lower Clip to 32 percent. To finish this material go to the Specular channel and set its Mode to Metal and set the Height to 100 and the Width to 51. Now let's do the other bars. Duplicate the Bar Metal material and rename the new one to 'Small Bar Metal'. Ctrl-drag the texture tag behind the cylinder to the Bar 1 object to copy it there. Now drag the Small Bar Metal material onto this new tag. The texture still has the orientation of the vertical bar, so set its B rotation to 90 percent and apply, also set the Y Scale to 20 to conform it to the length of this smaller bar. Change the color and reflection gradient of the Small Bars Metal material to the ones given in Picture 3C. When done Ctrl-drag the texture tag of Bar 1 to Bar 2. Because the window bars in the other windows were modeled using instances the textures are also automatically on those bars. Duplicate the Bar Metal material again and rename the new material to 'Connector Metal'. Change this materials Gradient type for both reflection and color to 2D-Circular and change their gradient colors according to Picture 4. For clarity in your material manager set the preview of the material to Rounded
49
Cube. Drag the connector metal material to the Bar Connector object, set its projection to Cubic and set the texture scale to X 4, Y 4, Z 4 and apply. The texturing of the bars is reasonably satisfying now so we'll move on to the next objects. Create a new material and name it 'StoneA'. Disable the specular and load the image 'asphalt3.jpg' into the Color texture field. Now unfold the Spiral Steps group, scroll down and drag the StoneA material to the Step object. You don't have to change it's projection or position because at default it will stick to the uvw map of the object, which is fine for this primitive. To give the steps some more grit drag the Floor Bump material to the Step object and enable Mix Textures in its tag properties (Don't drag the materials onto tags that are already there, that will replace them while keeping the size and position of that texture). Next drag the StoneA material onto the Bricks null object, we apply it to the entire group because if we apply it to the single brick primitive inside the group all the bricks will look exactly the same as they are all instances of that primitive. Set its projection to cubic and set the texture position to Y 56, and its Scale to X 54, Y 54, Z 54 and apply. This will make the texture as wide as the door frame and place the underside
Lookout Tower Tutorial Part 4 By Bram van Gerwen
of the texture in the middle, the texture is set to Tile by default so it will simply continue the texture in a grid in all directions thus also showing up outside of the texture box you see in the viewport.
Tutorial
Duplicate the Stone A material and rename the new material to 'Door Wood'. Replace the texture in the color channel with 'Old Wood.jpg'. Now drag the door wood material to the Tower Door object, set its projection to Cubic and enter the following values for the texture. Position: X -40, Y 10, Z 5 and Scale: X 42, Y 85, Z 38 and apply. I'm making you enter these values but of course you'll gather that I come to these by simply pulling on the axis handles in move and scale mode. Now you'll notice that the projection doesn't go that well on the sides of the door. Make the Tower Door object editable, personally I find it annoying that the make editable function creates separate body, caps and edges objects instead of just one single geometry mesh but in this case it's handy. Unfold the now editable Tower Door object and drag the wood tag to the Rounding 1 object inside of it, then ctrl-drag the tag to Rounding 2, copying it there. Duplicate the Door Wood material and rename the new one to 'Plating', in its color channel replace the texture with 'plating.jpg'. When you moved the wood texture you might have noticed the wood disappeared from the sides of the door and is now only on the front and back. We want the door sides to be lined with plating so drag the Plating material to the main Tower Door object. Set its Projection to Cubic and enter the following values for the texture, Position: X -40, Z 4 and Scale: X 4,
Y 23, Z 23 and H Rotation -90 and apply. If we don't rotate it 90 degrees the texture wouldn't line correct on top and bottom of the door because of the cubic projection, you want to watch out for this when using this projection. If you rotate one axis the alignment on the other surfaces won't change, you just have to adjust the sizes of the cubic projection again to correct those. You now see the edges of the door lined with the plating, grab the Move tool and move the texture along it's Y and Z axis to see how cubic projection helps us, Result in Picture 5A.
Next let's texture the array objects. We can drop a texture onto the array object and have a single projection cover the radius of the array but our wood texture is pretty low detail so we'll just drop it onto the cube inside the array object. Duplicate the plating texture and rename the new one to Wood, replace the texture with 'wood.jpg'. Collapse the beam array object until you see the cube geometry. Drop the Wood texture onto it and set its projection to cubic in the tag properties. With the Texture Axis tool active you can see the texture scale is still much larger than the actual cube itself. Grab the scale tool, make sure all axis' are active and scale the texture down to about the size of the cube. When this is done we need to change the rotation of
50
the texture to aim the wood lines toward the tower. Set the H rotation of the texture to 90 and apply. Since the array consists of instances you can see the changes happen on all the arrayed objects. Now let's move on to the ornament array. For the wooden beams a cubic projection that looks similar on every beam was adequate, the repeat of the texture is hardly noticeable. The ornament array is a different story, because this array contains lots of object copies the repeat will be clearly visible and won't look very realistic. Therefore we'll drop the texture on the array object itself in this case. This way all copies are interpreted as one object by the texture and will look like it's different on every copy. So duplicate the StoneA material, rename the new one to 'Weathered Stone' and drag it onto the ornament array object and set its projection to Cylindrical and the Tiles X to 12 to wrap it around the tower in 12 patches. The initial scale is fine to make the spacing of the texture look good, we'll only scale the y axis of the cylindrical projection to make it the same height as the ornaments, set the Y scale of the texture to 27 and apply. Now we'll add a downward gradient to make the texture look a bit weathered. To do this we need to work in layers. Go to the Texture field of the color tab and select layers. This will move the current bitmap in the Texture field into the first layer, you can now ad more stuff to these layers. Click on Shader and select Gradient. Set the mode behind it to Difference and enter a value of 62. Click on the gradient and set its Type to 2D-V, give it a Turbulence of 30 and change the white color to a darker grey
Lookout Tower Tutorial Part 4 By Bram van Gerwen
(somewhere in the middle). When we click back to the layers you can now see the effect the gradient layer has on the texture beneath it, Picture 5B. Difference subtracts the lighter colors in the gradient from the texture beneath it, hence the effect seen.
Tutorial
Last before continuing on the main tower body is the central pillar, This element isn't very important so we'll texture it really easy. Duplicate the StoneA material and rename the new one to 'StoneB'. Replace its Texture with 'Asphalt2.jpg' and drag the material onto the Central Pillar. Set its projection to cubic, this will make it look adequate enough as most of the pillar is not in view anyway. Now we will continue to texture the remainder of the tower body. First let me explain in short how we'll work with multiple selections as the texturing on the tower progresses. As you know at the beginning of the tutorial we've made a selection of the floor on top of the tower. Usually when texturing objects with multiple parts that need different textures I first make one selection tag of the entire object and name it 'Rest', then every time I texture a part on the object with its own selection tag I subtract that selection from the main Rest selection. This way you don't have to worry about making some weird complicated selection in the end when you've already added multiple selections and didn't add a main texture tag. Let's use this method to finish the tower body texturing. We only have one selection tag so far (top floor) so creating a Rest tag isn't a problem. Click on the tower body object, go into Polygon mode
and Select All (Selection -> Select All). Now that all polygons are selected click on the 'top floor' tag and click on Deselect Polygons in its properties. This will remove the polygons of that selection tag from the current selection in the viewport. Make sure the top floor tag isn't active and use the Set Selection tool. Click on the new tag and rename it to 'rest'. Drag the StoneB material onto the tower body, set its projection to Cylindrical. The texture is way too small to look realistic when it's wrapped around the tower only once, it will look like a stretched blotch. To remedy this set the Tiles X to 6 and the Tiles Y to 2. Also drag the rest tag to the selection field of the texture to link it to that selection. Now the texture will be wrapped around the tower with six patches and 2 patches in height. Go into Texture Axis tool and set the X,Y and Z Scale values of the texture to 220, giving it roughly the same dimensions as the tower, result in Picture 6A. It's very important to keep your tags in good order to be able to see what influences what and you won't get confused. Drag
the tag of the StoneB texture to the left of the 'rest' tag. Now grab the Floor Bump material and drop it onto the tower body object. Drag its tag in between the FloorB texture tag and the 'rest' selection tag. Set this floor bump to Cylindrical and
51
drag the 'rest' tag to the selection field or just enter it by hand, also enable the Mix Textures option to make it mix with the FloorB texture tag next to it. Set the X,Y and Z Scale of this texture to 190. The arrangement of the tags should look like in Picture 6B now. When we render the tower now you'll notice that because of the cylindrical projection of the rest tag the surfaces pointing inward have no texture definition aside from the color information of the cylindrical projection at that point. We'll single out these areas with selection tags and texture them separately. Duplicate the StoneB material and rename the new one to 'Plain Stone'. We'll use this texture to texture some of the loops that point inside the tower like the window frames and stair gap. Replace the texture in the Plain Stone material with 'Stone Surface.jpg' Zoom in on the left window and select the polygon loops with the Loop Selection tool, don't select polygons on the outer and inner wall part, check Picture 7A for selection. When selected make sure you have no selection tags active and use the Set Selection tool. Rename the new
tag to 'leftwindow'. Now drag the Plain Stone material onto the Tower Body, move its texture tag left of the leftwindow tag, drag the leftwindow tag into its selection field and set its
Lookout Tower Tutorial Part 4
Tutorial
By Bram van Gerwen
Projection to Cubic. When you go into Texture Axis mode you'll see that the texture originates at the center of the tower body (naturally for there lies the object axis). But we want it to be in the center of the window so the texture maps the as best as possible to the sides of the window. If you've followed the modeling tutorials as well you'll remember that the objects of the window bars are rotated with a value of 28.2 and 28.2 to place them precisely in the middle of the windows.
Picture 8. Set the selection and name it 'battlements'. You can now drop the StoneB material onto the tower body and link it to the battlement selection. Make it cubic projec-
This means that the exact middle of the left and right windows lie at 28.2 and 28 degrees from the middle of the tower respectively, see Picture 7B for what I mean here. So if we enter a H Rotation value of -28.2 for the texture it will be exactly aligned with the angle of the window, enter this value now and apply. All we need to do now is move the texture by hand so the texture axis is roughly in the middle of the window. When you're dragging the texture you'll see the projection scrolling along the surfaces you selected so you can check out for yourself when you think it looks good. I placed mine at X -97, Y 130, Z -185, I also adjusted the Scale a bit to 41 for X,Y and Z.
tion and scale the texture down a little. The battlements now have the same texture as the rest of the tower but its not stretched anymore because of the cubic projection.
Now make a similar selection of the other windows and give them the same texture with cubic projection, make sure you give those selection tags names like middlewindow and rightwindow. The same can be done for the doorframe below it where the texture is stretched, result in Picture 7C. Let's make a selection of the stretched part between the battlements next. Use the Loop selection tool to make this selection like in
that selection with cubic projection. The steps to do this should be familiar by now.
Nearly done now, just a couple of final touches. Select the tops of the protruding bricks like in Picture 9
and use the Grow Selection tool to select their sides. Set the selection and name it 'bricks'. Copy/Paste the StoneB material and rename it to StoneC. Replace its texture with Asphalt4.jpg. Drop this material onto the tower body and link it to the bricks selection. Set the projection to cubic, scale the texture down a little and rotate its H value 45 degrees. Lastly select the stretched parts on the small steps in front of the door like in Picture 10 and link StoneC to
52
The tower is finished now with some basic texturing, it has become clear now that many textures can be combined on the same piece of geometry with selection tags, layers and mixing options. This allows us to use many different projection methods at the same time. We can add a last mix texture to break up the plain look of the main texture and finish off this scene. Create a new material and name it 'tower gradient'. Disable the specular channel and in the color channel load a Gradient into the texture field. Set it to 2D-V, give it a turbulence of 20 and enter the colors like in Picture 11. Now drop the material onto the tower body, drag its tag
back to the textures belonging to the 'rest' tag. Set its projection to Cylindrical, enable Mix Textures and enter the following Scale values for the texture X 252, Y 315, Z 252 and
Lookout Tower Tutorial Part 4 By Bram van Gerwen
also give it a Y position of 55. Now the texture should encompass the tower nicely, enable the Mix Textures option and render. You'll notice that the dark colors of the gradient give our tower a nice weathered look. That's it for the basic texturing tutorial. I hope I've been informative on how to combine and mix various textures and use their projections effectively to create simple good looking results. If you have any more questions about texturing or this tutorial please ask them on the 3D Attack forum and I will try to answer them as best as I can.
Tutorial
Thanks, Bram
53
Artist Spotlight... Adam Trachtenberg
Spotlight
Name: Adam Trachtenberg Age: 42 Occupation: Freelancer/Attorney Country: USA Software: CINEMA 4D R9 Studio Bundle, Rhino, ZBrush, Motion Builder, Adobe Video Collection Pro
Ackerberg House
Favorite places on the web: CGTalk, Postforum, Creative Cow
Artist Comments:
I guess I'm somewhat unique in that I began my professional CG career in my late 30's--after practicing law for a number of years. I learned 3d on my own, actually starting about the same time I began my legal studies. Well, to this day I still a mixture of legal and CG freelance work, but I have a strong preference for the 3D side. Very strong. Strong! So if you hate lawyers contact me at adamt@3danvil.com for your product shots, architectural renderings, character animation, or modeling or any sort; remember, each CG job means one less legal job in the world. Cinema 4D is my main 3D application of choice. I find it totally logical, completely stable, and really just a joy to
Industrial
work with. I love the fact that customize nearly every part of the application.
Industrial: My scrap iron phase.
Ackerberg House: This was my first serious attempt using Maxwell Render--an exciting new rendering option for Cinema users.
DecoRad: A fictional lobby, inspired by Miami's South Beach area. I'm a big fan of Art Deco design and architecture.
3 54
Artist Spotlight... Bram van Gerwen
VeryScary: A small political statement concerning our current "leadership" in the US. I actually modeled the characters for an animation project that's temporarily been put on hold. 7Seas: This is my latest image. I did it just for fun--inspired by the sights around Miami. I wanted to finish it for this Spotlight but it remains a work in progress.
Spotlight
Best regards, Adam Trachtenberg 3D Anvil Miami, FL adamt@3danvil.com
DecoRad
7Seas
3 55
56
Best of CINEMA 4D
Some of the best artists around the world using CINEMA 4D
Artist Comments: When I think about nature, I have something like this in my mind.
Image: Wonders of Nature Artist: Stefan Butterling Country: Germany Website: http://home.arcor.de/stefanbutterling/ Date created: 5-21-05 Software: CINEMA 4D 9.1 + Photoshop for some postwork
3
Image: Kugelhalle Artist: Georg 'sad' Niedermeier Country: Germany Website: http://www.sadbatu.de Date created: January 2003 Software: CINEMA 4D R8.5 + Painter 5
Artist Comments: There is no particular message in the picture. The textures on the walls and floor are plain colors. Structure and texture are created automatically while rendering process. It´s a balance of radiosity settings good enough not to look cheap and bad enough to produce the interesting texture.
3
Image: Aspidium Artist: Axel Ritter Country: Germany Date created: May 2005 Software: CINEMA 4D XL 9.1
Artist Comments: Modeling with the CINEMA Tools / Subsurface Scattering (CINEMA Shader ) Photoshop used for some Postwork .
3
Image: Bella Italia Artist: Nikolaus Vuckovic Country: Austria Website: www.immortal-arts.com Date created: May 2004 Software: CINEMA 4D, Photoshop
Artist Comments: I hope you like my pictures :)
3
Image: Seious Black Artist: Thomas Pasieka Country: UAS Website: www.3dattack.net Date created: 05-22-05 Software: CINEMA 4D R9, Sketch&Toon Plugins: FinalTouch, PathDeformer
Artist Comments: This picture is one of a series that I’m going to create. I’m not sure if this will include characters yet but we will see what I can come up with. I tried to create something that is different from what you usually see.
3
Image: Rela Glass Artist: Maurice "MUCK-ONE" Jochem Country: Hamburg-Germany Website: www.muckone.com Date created: 4-23-05 Software: CINEMA 4D 9.1
Artist Comments: “In the beginning it was only a Test Scene I created, which grew into a nice looking image.”
3
Editor’s Notes Hello there Readers and Attackers! We at 3D Attack hope you’ve enjoyed the June issue. We had a lot of fun putting it together for our readers and are excited to continue bringing you great artist interviews, educational tutorials, product and software reviews and our monthly C4D Quiz. If you have questions regarding our tutorials, please post them on our discussion forum at www.3dattack.net. If you have questions, concerns or general comments regarding the magazine, feel free to send them to 3dattack.net@3dattack. All of your feedback is very important to the 3D Attack staff and we look forward to hearing from you. KEEP ON ATTACKING!
tack.net/shop/Collection.html . Our t-shirts are durable, 100% cotton and come in sizes small, medium, large and extra large. GROUND TEXTURES VOL. 1 New in the 3D Attack shop is our Ground Texture Volume 1 CD. 50 seamless Ground Textures (2000x1500 pixel in TIFF format) and 15 Street Signs (2300- 2700 pixel) alpha and bump maps included. More texture CD’s coming soon. http://www.3d attack.net/shop/ Tutorial and Article Submissions If you would like to submit a tutorial or article, or have your software or plug-in reviewed by 3D Attack, please click on the following link for instructions: http://3d attack.net/3d Attack/viewtopic.php?t=1405 All submissions must be e-mailed to Attention: Tank at 3dattack@3dattack.net
The 3D Attack Team GOODIES FOLDER http://www.3dattack.net/goodies/ As most of our readers know, your goodies folder usually comes zipped with you magazine. We have decided to do the Goodies a bit different. You will now find your Goodies folder at http://www.3dattack.net/goodies/ for download. This will allow us to make changes to the Goodies folder easily, (if needed) and provide you with the access to the Goodies whenever you may need to redownload them. Remember, the Goodies are copyrighted as is the magazine. These Goodies are for paying readers only. DO NOT redistribute your download link or your Goodies folder.
Advertising with 3D Attack If you would like to advertise with 3D Attack send us an e-mail requesting our media kit and rate card. 3dattack@3dattack.net DELAYED TUTORIALS Our Landscape tutorial series will be continued in the July issue of 3D Attack - The CINEMA 4D Magazine.
Friends of 3D Attack™ www.maxon.net www.doschdesign.com www.tools4d.com www.3duser.com.tw www.3dcommune.com www.dylancolestudio.com www.3dexplorer.net www.cgtalk.com www.jeso-art.de www.cinema4duser.com www.cactus3d.com www.base80.com www.3dfluff.com www.3darena.de www.frenchcinema4d.com www.sadbatu.de www.C4dHotline.it www.peXel.de www.c4dmodelshop.com www.black-graphics.de www.tarabella.it/C4d/ www.planit3d.com www.cartesiuscreations.com www.cgtalk.ru www.renderosity.com www.designerinaction.de www.scifi-meshes.com www.bubbles4d.com www.mediaworks.fr www.3dlinks.com www.c4dzone.com www.c4d-pl.org *3D Attack the CINEMA4D Magazine and all material contained therein are copyright protect-
Tutorials If you have questions concerning a specific tutorial or want to show us a tutorial you have completed, feel free to post your questions and work on our C4D discussion forums at www.3dattack.net.
ed. 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 artist contained in its publications. Although we read through all the tutorials and proof-read them for errors we cannot guarantee that they are 100% error-free and therefore can-
3D ATTACK T-SHIRTS Our new t-shirts are now available in the 3D Attack Shop http://www.3dat-
not issue refunds based on those errors.
63
64