150,000 people around the globe use Rhinoceros (or Rhino for short) – a powerful software for 3D modeling. Having advanced tools for modeling freeform surfaces, Rhino is used in conjunction with dozens of plug-ins, created by McNeel&Associates (the developer of the main program), as well as by independent developers. In this practical guide we look into how to create your own animated film (a 3D cartoon) in Rhino similar to a well-known Pixar trailer. For this we will need:
The key role in creating an animated film is played by RhinoAssembly plug-in, by means of which we determine lamp kinematics: indirectly set possible trajectories of its parts relative to each other using geometric constraints and driving dimensions. Embedded capabilities of RhinoAssembly enable animation by varying one or several parameters of the mechanism. An important feature of RhinoAssembly is its ability to generate image frames, which makes animation easy. Read more about capabilities of RhinoAssembly plug-in in our tutorial ”How to Express Design Intent in Rhino 3D. Part I. Assembly Design and Kinematic Simulation” .
Initially we used the Pixar lamp Jr 3D model, which we found surfing the Internet. Its application had a disadvantage, or, to be more precise, a serious limitation because it was created in SketchUp, which means polygonal mesh structure and – as a consequence – it could not be used with Rhinoceros in conjunction with RhinoAssembly (which required geometry representation in the form of NURBS – Non-Uniform Rational B-Spline curves and surfaces).
To surmount this limitation, we decided to reproduce the model geometry directly in Rhinoceros. We made samplings in SketchUp and built similar components in Rhinoceros.
As a result of the modeling we got 24 parts.
We recommend that those readers who have not yet properly mastered the 3D modeling technique in Rhino (description of which is not included in this practical guide) should download an out-of-the-box 3D lamp model at Sample Models and go directly to Step 2.
Using the RhinoAssembly plug-in we sequentially set geometric constraints for positioning components of the mechanism relative to each other and in space, as well as set dimension constraints for further animation. Overall we set around 80 constraints in the model, including:
Let’s see, for example, how we can place the bulb under the lampshade using RhinoAssembly. To do this we create the following constraints: one coincidence and one concentricity (no constraints for bulb rotation in the holder).
To create a coincidence constraint, let’s select the coincidence tool on the RhinoAssembly tool panel and click on matching faces of the model:
Upon a request, select the “first” and “second” objects to perform an operation (after clicking on the face, it is highlighted in the graphic region).
Now faces of applicable components match.
Next operation – setting concentricity of the lampshade holder and the lamp base. To do this let’s start the concentricity tool and cylindrical parts of components that should be concentric.
As a result we have the required relative position of components.
Also we set dimensional constraints for the model that determine changes of angles between jointed components:
For those who do not wish to create 80 constraints from scratch we recommend downloading an out-of-the-box model with constraints at Sample Models and go Step 3.
To achieve photorealistic animation it was also important to correctly position the sources of light and set their parameters:
As the sources of light, we used two spotlights, one gave off a light from the lamp, while another illuminated the lamp. We also had a directed light source to illuminate the whole scene. The material (polished silver) for the whole model was chosen from a standard kit supplied with Flamingo.
The file with inserted light and set materials can be downloaded at Sample Models.
According to a chosen scenario, in the final animation the lamp should perform three actions: tracing the ball, following-up the ball and “joy”. It was decided to achieve three separate animations and then “fuse” them together.
Another aspect of animation is that in output we have a consequential set of shots, drawn up by Flamingo render, which we got by starting the rendering process with the “render” button from the Assembly Animation window.
Before the render can be started, it is necessary to specify the folder for saving finished images. Images can be saved in files with a proper prefix.
As a result of the above manipulations we got three sets of rendered images (for each of them we used different name prefixes). Now we only need to combine them in a single set and create an AVI or MPEG file.
There are multiple free programs solving this problem; we would prefer to use ffmpeg. To do this it is enough to go to the folder with rendered images (containing files with the names Render1_0001.bmp, Render1_0002.bmp, etc.) and execute the command
ffmpeg -f image2 -i Render1_%04d.bmp Episode1.mpg
The three trailers can be concatenated by executing the following command:
copy /B Episode1.mpg+Episode2.mpg+Episode3.mpg Movie.mpg
That’s what we came up with:
In this Practical Guide we look into how to create our own animation film using a 3D model of a mechanism with components in motion. Similarly, using the RhinoAssembly plug-in and any rendering – plug-in it is possible to create high-quality trailers demonstrating objects in motion (a car with opening doors and folding-out roof, convertible furniture, industrial robots, etc.) Some of such trailers can be found at Videos.
Developers of the RhinoAssembly plug-in will be happy to answer all your questions regarding the terms of purchase and use, and will be grateful for any advice and recommendations on possible improvement and development of our product. Please write to Rhino@DrivingDimensions.com or take part in the on-line forum of the users of Driving Dimensions plug-ins: User Forums
How to Express Design Intent in Rhino 3D
Part I. Assembly Design and Kinematic Simulation
RhinoAssembly Basic Tasks
Assembling and Animation