From BlenderWiki

Jump to: navigation, search

DupliVerts

Mode: Object mode

Panel: Anim Settings » DupliVerts

Hotkey: F7

DupliVerts are not a rock band nor a dutch word for something illegal (well maybe it is) but is a contraction for Duplication at Vertices, meaning the duplication of a base object at the location of the vertices of a mesh (or even a particle system). In other words, when using DupliVerts on a mesh, an instance of the base object is placed on every vertex of the mesh.

There are actually two approaches to modeling using DupliVerts. They can be used as an arranging tool, allowing us to model geometrical arrangements of objects (e.g. the columns of a Greek temple, the trees in a garden, an army of robot soldiers, the desks in a classroom). The object can be of any object type which Blender supports. The second approach is to use them to model an object starting from a single part of it (i.e.: the spikes in a club, the thorns of a sea-urchin, the tiles in a wall, the petals in a flower).

DupliVerts as an Arranging Tool

A simple scene to play with.

All you need is a base object (e.g. the tree or the column) and a pattern mesh with it’s vertices following the pattern you have in mind. In this section, we will use a simple scene for the following part. It consists of a camera, the lamps, a plane (for the floor) and a strange man I modeled after Magritte’s famous character (A simple scene to play with). If you don’t like surrealism you will find this part extremely boring…

A circle for a parent mesh.

Anyway, the man will be my base object. It is a good idea that he will be at the center of the coordinate system, and with all rotations cleared. Move the cursor to the base object’s center (this one being selected, do ⇧ ShiftS → Cursor -> Selection), and from Top view add a mesh (the example uses a circle as a pattern, with 12 vertices or so (A circle for a parent mesh). The pattern object can be a two-dimensional primitive (plane or circle), or even a three-dimensional primitive mesh (cube, tube, sphere) or a curve (two dimensional, or a three-dimensional path), or even your own custom mesh, so long as it has vertices (you cannot use a camera, for example, but you can use a large landscape mesh if you want to plant trees - trees being your base object).

The man is parented to the circle.

In Object mode, select the base object and add the circle to the selection (order is very important here). Parent the base object to the circle by pressing CtrlP. Now, the circle is the parent of the character (The man is parented to the circle).

Anim settings panel.

Now select only the circle, switch the Buttons window to the Object context (via Manual-Part-I-Interface-Context-Object.png or F7) and select the DupliVerts button in the (Anim settings panel).

In every vertex of the circle a man is placed.

Wow, isn’t it great? Don’t worry about the object at the center (In every vertex of the circle a man is placed). It is still shown in the 3D views, but it will not be rendered. You can now select the base object, edit it in Edit mode (scale, rotate,… – be careful with the Object mode: scaling, among others, might bring up some problems when applying rotation to DupliVerts, as we will see soon), and all DupliVerted objects will reflect the changes. But the more interesting thing to note is that you can also edit the parent circle.

Note
The base object is not rendered if DupliVerted on a mesh but it is rendered if DupliVerted on a particle system! This doesn’t appear to be true on Blender 2.45 and later.


Changing the size of the circle in Edit mode.

Select the circle and scale it. You can see that the mysterious men are uniformly scaled with it. Now enter the Edit mode (⇆ Tab) for the circle, select all vertices (A) and scale it up about three times. Leave Edit mode and the DupliVerted objects will update (Changing the size of the circle in Edit mode.). This time they will still have their original size but the distance between them will have changed. Not only can we scale in Edit mode, but we can also delete or add vertices to change the arrangement of men.

A second row of Magritte’s men.

Select all vertices in Edit mode and duplicate them (⇧ ShiftD). Now scale the new vertices outwards to get a second circle around the original. Leave Edit mode, and a second circle of men will appear (A second row of Magritte’s men.).

Until now all Magritte’s men were facing the camera, ignoring each other. We can get more interesting results using the Rot button next to the DupliVerts button in the Anim settings panel. With this toggle button active, we can rotate the DupliVerted objects according to the normals of the parent object. More precisely, the DupliVerted objects axis are aligned with the normal at the vertex location. Which axis is aligned (X, Y or Z) with the parent mesh normal depends on what is indicated in the TrackX, Y, Z buttons and the UpX, Y, Z buttons top in the Anim settings panel. Trying this with our surrealist buddies, will lead to weird results depending on these settings.

The best way to figure out what will happen is first of all aligning the “base” and “parent” objects’ axis with the World axis. This is done selecting both objects and pressing CtrlA, and click the Apply Size/Rot? menu.

Show object’s axis to get what you want.

Then make the axis of the base object and the axis and normals in the parent object visible (Show object’s axis to get what you want – in this case, being a circle with no faces, a face must be defined first for the normal to be visible – actually to exist at all). Now select the base object (our Magritte’s man) and play a little with the tracking buttons. Note the different alignment of the axis with the different combinations of UpX, Y, Z and TrackX, Y, Z (Negative Y Axis is aligned to vertex normal (pointing to the circle’s center), Positive Y axis is aligned to normal, Positive X axis is aligned to normal, Positive Z axis is aligned to normal (weird, huh?)).

Negative Y Axis is aligned to vertex normal (pointing to the circle’s center).
Positive Y axis is aligned to normal.
Positive X axis is aligned to normal.
Positive Z axis is aligned to normal (weird, huh?).


DupliVerts to Model a Single Object

Very interesting models can be made using DupliVerts and a standard primitive. Starting from a cube in Front view, and extruding a couple of times I have modeled something which looks like a tentacle when SubSurfs are activated (Strange tentacle and SubSurfed version). Then I added an icosphere with 2 subdivisions.

Strange tentacle and SubSurfed version.
Local reference of the tentacle.

I had to take special care to be sure that the tentacle was located at the sphere center, and that both the tentacle axis and the sphere axis were aligned with the world axis as above (Local reference of the tentacle).

Now, I simply make the icosphere the parent of the tentacle. Select the icosphere alone and made it DupliVert in the Anim settings panel (DupliVerts not rotated).

Press the Rot button to rotate the tentacles (DupliVerts rotated).

DupliVerts not rotated.
DupliVerts rotated.

Once again to make the tentacle point outwards we have to take a closer look to it’s axis. When applying Rot, Blender will try to align one of the tentacle’s axis with the normal vector at the parent mesh vertex. We didn’t care about the parent circle for Magritte’s men, but here we should care about the sphere, and you will soon notice that it is not rendered. You probably would like to add an extra renderable sphere to complete the model. You can experiment in Edit mode with the tentacle, moving it’s vertices off the center of the sphere, but the object’s center should always be at the sphere’s center in order to get a symmetrical figure. However take care not to scale up or down in one axis in Object mode since it would lead to unpredictable results in the DupliVerted objects when applying the Rot button.

Our model complete.

Once you’re done with the model and you are happy with the results, you can select the tentacle and press Ctrl⇧ ShiftA and click on the Make duplis real ? menu to turn your virtual copies into real meshes (Our model complete).

See also

Other duplication methods are listed here.



Introduction
What is Blender?
Introduction
Blender’s History
License
Blender’s Community
About this Manual
What's changed with Blender 2.4
Installing Blender
Introduction
Python
Installing on Windows
Installing on GNU/Linux
Installing on Mac
Installing on other Operating Systems
Configuring Blender
Directory Layout
Starting
The Interface
Introduction
Keyboard and Mouse
Window System
Arranging frames
Headers
Console window
Window Types
Screens (Workspace Layouts)
Scenes
Configuration
Modes
Contexts
Menus
Panels
Buttons and Controls
Internationalization
Your First Animation
1/2: A static Gingerbread Man
2/2: Animating the Gingerbread Man
The Vital Functions
Quick render
Undo and Redo
Default scene
Screenshots
Help!
Setting Preferences
Configuring Preferences
Interface
Editing
Themes
File
System
Interaction in 3D
Introduction
Introduction
Navigation
Introduction
3D View
3D View Options
3D View Usage
Camera View
Layers
Local or Global View
Sketch in 3D Space
Introduction to Grease Pencil
Drawing sketches
Layers and Animation
Converting sketches to geometry
Transformations
Introduction
Basics
- Grab/Move
- Rotate
- Scale
- Gestures
Advanced
- Mirror
- To Sphere
- Shear
- Warp
- Push/Pull
Transform Control
Introduction
Precision of Transformations
Numeric Transformations
Transform Properties
Reset Object Transforms
Manipulators
Transform Orientations
Axis Locking
Pivot Point
- Active object
- Individual Centers
- 3D Cursor
- Median Point
- Bounding Box Center
Snapping
Snap to Mesh
Proportional Edit
Data System and Files
Blender's Data System
Blender's Library and Data System
Blender's Datablocks
Scenes
Working with Scenes
The Outliner Window
Appending and Linking
File operations
Introduction
Opening blender files
Saving blender files
Modeling
Introduction
Introduction
Objects
Objects
Selecting Objects
Editing Objects
Groups and Parenting
Tracking
Duplication
- DupliVerts
- DupliFaces
- DupliGroup
- DupliFrames
Mesh Objects
Meshes
- Mesh Structures
- Mesh Primitives
Selecting
- Selectable Elements
- Selection Basics
- Advanced Selecting
- Selecting Edges
- Selecting Faces
Editing
Basic Editing
- Translation, Rotation, Scale
- Adding Elements
- Deleting Elements
- Creating Faces and Edges
- Mirror editing
Vertex Editing
Edge Editing
Face Editing
Deforming Tools
- Mirror
- Shrink/Fatten Along Normals
- Smooth
- Noise
Duplicating Tools
- Duplicate
- Extrude
- Extrude Dup
- Spin
- Spin Dup
- Screw
Subdividing Tools
- Subdivide
- Subdivide fractal
- Subdivide smooth
- Loop Subdivide
- Knife Subdivide
- Bevel
Miscellaneous Tools
Retopo Tool
Sculpt Mode
Multi Resolution Mesh
Vertex Groups
Weight Paint
Mesh Smoothing
Curve Objects
Curves
Selecting
Editing
Advanced Editing
Surface Objects
Surfaces
Selecting
Editing
Text Objects
Texts
Editing
Meta Objects
Metas
Editing
Empty Objects
Empties
Group Objects
Groups
Scripts
Modeling Scripts
Modifiers and Deformation
Introduction
Introduction
Modifiers Stack
Modify
UVProject
Generate
Array
Bevel
Booleans
Build
Decimate
EdgeSplit
Mask
Mirror
Subsurf
Deform
Armature
Cast
Curve
Displace
Hooks
Lattice
MeshDeform
Shrinkwrap
SimpleDeform
Smooth
Wave
Simulate
Cloth
Collision
Explode
Fluid
Particle Instance
Particle System
Soft Body
Lighting
Introduction
Introduction
Lights
Introduction
Light Properties
Light Attenuation
Light Textures
What Light Affects
Lights In Other Contexts
Shadows
Introduction
Shadow Properties
Raytraced Shadow Properties
Volumetric Lights
Introduction
Lamps
Introduction
Lamp Light
- Raytraced Shadows
Spot Light
- Raytraced Shadows
- Buffered Shadows
- Halos
Area Light
- Raytraced Shadows
Hemi Light
Sun Light
- Raytraced Shadows
- Sky & Atmosphere
Lighting Rigs
Radiosity
Introduction
Rendering
Baking
Scene Light
Ambient Light
Ambient Occlusion
Exposure
Exposure
Materials
Introduction
Introduction to Shading
Materials Introduction
Usage
Assigning a material
Material Preview
Material Options
Multiple Materials
Properties
Diffuse Shaders
Specular Shaders
Ambient Light Effect
Color Ramps
Raytraced Reflections
Raytraced Transparency
Subsurface Scattering (SSS)
Strands
Node Materials
Material Nodes
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Material Node Types
- Input Nodes
- Output
- Color
- Vector
- Convertor
- Dynamic
Vertex Paint
Using Vertex Paint
Halos
Halos
Textures
Introduction
Introduction
UV/Image Editor
Common Options
Texture Stack
Texture Types
Texture Types
Procedural Textures
Image Textures
Video Textures
Texture Nodes
- Nodes Editor
- Node Controls
- Nodes usage
- Nodes Groups
-- Textures Input Nodes
-- Textures Output Nodes
-- Textures Color Nodes
-- Textures Patterns Nodes
-- Textures Textures Nodes
-- Textures Convertor Nodes
-- Textures Distort Nodes
Texture Plugins
Texture Painting
Painting the Texture
- Projection Paint
Mapping
Mapping
Environment Maps
UV Unwrapping Explained
- Unwrapping a Mesh
- Managing the UV Layout
- Editing the UV Layout
- Applying an Image
Influence
Influence
- Material
-- Bump and Normal
-- Displacement
- Particles
- World
World and Ambient Effects
World
Introduction
World Background
Ambient Effects
Mist
Stars
Rigging
Introduction
Introduction to Rigging
Armatures
Armature Objects
Panels overview
Bones
Visualization
Structure
Selecting
Editing
- Bones
- Properties
- Sketching
- Templating
Skinning
Introduction
Linking Objects to Bones
Skinning to Objects’ Shapes
Retargeting
Posing
Introduction
Visualization
Editing Poses
Pose Library
Using Constraints
Inverse Kinematics
Constraints
Introduction
Introduction
Constraints Common Interface
Constraints’ Stack
Transform Constraints
Copy Location
Copy Rotation
Copy Scale
Limit Distance
Limit Location
Limit Rotation
Limit Scale
Transformation
Tracking Constraints
Clamp To
IK Solver
Locked Track
Stretch To
Track To
Relationship Constraints
Action
Child Of
Floor
Follow Path
Null
Rigid Body Joint
Script
Shrinkwrap
Animation
Introduction
Introduction
The Timeline
Markers
3D Views
Animation Editors
Animation Editors
Ipo Editor
Ipo Curves and Keyframes
Ipo Datablocks
Ipo Types
Ipo Editor Interface
Editing
- Ipo Curves
- Keyframes
Ipo Drivers
Action Editor
Editing Action Channels
NLA Editor
Editing NLA Strips
Strip Modifiers
Animation Techniques
Introduction
Animating Objects
- Using Constraints
- Moving Objects on a Path
Animating Shapes
- Shape Keys
- Editing Shape Keys
- Animating Shape Keys
- Shape Keys Examples
Indirect Shape Animation
Animating Armatures
- Stride
Animating Lamps
Animating Cameras
Animating Materials
Animating Textures
Animating World
Physical Simulation
Introduction
Introduction
Dynamics
Force Fields
Collisions
Particles
Particles
Types
Physics
- Newtonian
- Keyed
- Boids
Visualization
Controlling Emission, Interaction and Time
Cache & Bake
Hair
Children
Vertex Groups
Particle Mode
Soft Body
Introduction
Exterior Forces
Interior Forces
Collisions
Simple Examples
Combination with Armatures
Combination with Hair Particles
Reference
Cloth
Introduction
Fluids
Fluid
Using the Game Engine
Using the Game Engine
Rendering
Introduction
Introduction
Camera
The Camera
Perspective (Vanishing points)
Depth Of Field
Render
Displaying Renders
Basic Options
Antialiasing (Oversampling)
Rendering Animations
Panoramic
Render Baking
Using the Command Line
Output
Output
Video Output
Effects and Post Processing
Introduction
Render Layers
Render Passes
Edges & Toon
Stamp
Color Management & Exposure
Depth Of Field
Motion Blur
Render Performance
Rendering Performance
Distributed Rendering
External Render Engines
Introduction
YafRay
Compositing with nodes
Composite Nodes
Introduction
Nodes Editor
Node Controls
Nodes usage
Nodes Groups
Composite Node types
Composite Node types
Input Nodes
Output Nodes
Color Nodes
Vector Nodes
Filter Nodes
Convertor Nodes
Matte Nodes
Distortion Nodes
Editing Sequences
Introduction
Introduction
The sequencer
Usage
Sequencer Modes
Sequence Screen Layout
Effects
Built-in Effects
Plugin Effects
Audio
Audio Sequences
Extending Blender
Introduction
Introduction
Python Scripting
Python Scripting in Blender
Setting up Python
The Text Editor
A working example
References
Python Scripts
Script Catalog
Bundled Scripts
Plugins
Blender's Plugins System
Texture plugins specifications
Sequence plugins specifications
Game Engine
Introduction
Introduction
The Logic Editor
Usage
Game Properties
Sensors
Introduction
Sensor Types
Controllers
Introduction
Expressions
Actuators
Introduction
Action
Camera
CD
Constraint
Edit Object
Ipo
2D Filters
Game
Message
Motion
Parent
Property
Random
Scene
Shape Action
Sound
State
Visibility
Cameras
Cameras
Dome Camera
Physics
Physics Engine
Material Physics
Object Types
- Static
- No Collision
- Dynamic
- Rigid Body
- Soft Body
- Occluder
- Sensor
Python API
Bullet physics
VideoTexture
Various resources
List of Features
External resources
Game Engine Basics (BSoD Tutorial)
FAQ