Overview
CopyPoints is copying points/polygons/segments and other structure from any point object(s) or generator(s) to editable Polygon or Spline Object.
As a result you'll get editable source structure with read-only state of point positions.
Supports Primitives, Cloners, Volume Meshers, Tracers and many other point/polygon/spline generators.
Gives control over specific type of structure or attributes to be copied.
Change log
1.9.0 (2023-11-26) — Cinema4D 2024 compatible release.
1.8.4 (2022-02-06) — New attributes to copy. New option to transfer attributes by sampling 3D space.
1.6.11 (2021-12-29) — Performance optimizations. Better processing of source with complex generators tree.
1.6.9 (2021-12-16) — Performance issues resolved. Updated UI/UX.
1.6.6 (2021-12-08) — Source attributes copying. Updated UI/UX. R21-S22 support is added (but with weaken performance).
1.4.2 (2021-11-30) — Updated UI/UX.
1.3.1 (2021-11-25) — First public release.
Tag properties
Right click on any object with point structure (polygon or spline) in object manager and choose CopyPoints tag.
Hold Ctrl/Cmd key while adding a new tag to create a new editable polygon target object and assign chosen object as a Source. Tag would be attached to a newly created target object.
Hold Shift key while adding a new tag to create a new editable spline target object and assign chosen object as a Source. Tag would be attached to a newly created target object.
Hold Alt key additionally to Ctrl/Cmd or Shift while adding a new tag to leave it on a chosen object as a source.
Buttons Add Polygon Target Add Spline Target
Buttons appear if CopyPoints tag has no target.
Creates target Editable Polygon or Spline object correspondingly, assign current object as the Source and swap CopyPoints tag onto newly created editable object.
Hold Alt key while pressing button to leave tag on existing source object.
Buttons Add Vertex Map Add Vertex Color
Buttons appear if CopyPoints tag is having editable Polygon Object target.
Creates on a target Vertex Weight Map or Vertex Color correspondingly.
Object Link
Drop here any Null with sub-objects tree or a Generator as a source.
Or Editable Polygon or Spline as a target.
Direction
Set Object Link role as a source, or as a target.
Copy from Source
Treat Object Link as source, and tag-owner as target.
Copy to Target
Treat Object Link as target, and tag-owner as source.
Space
Target generation space.
Global
The source point structure would exactly replicated in the Target object in the world coordinates.
Generated points wouldn't be affected by Target's transformation.
Local
The source point structure will be positioned relative to the Target Object.
Generated points would be affected by Target's transformation.
Pos & Rot
The source point structure will be positioned relative to the Target Object.
Additionally Target's Axis would be linked to Source Axis, excluding Scale value.
PSR
The source point structure will be positioned relative to the Target Object.
Additionally Target's Axis would be linked to Source Axis, including Scale value.
Attributes
Keep Self Attributes
Keep target's self attributes.
If source have no attributes with same title, this option would keep these attributes no matter what options are selected below.
UVW
Deal with Source UVW tag.
If source have multiple UVW tags all of them would be copied.
Skip
Do not handle Source UVWs, existing UVWs would applied automatically where possible.
Exact
Exactly replicates Source UVWs.
Off
Delete Target's UVWs.
Exist
Replicates only UVWs that exist in both Source and Target objects.
Normals
Deal with Source Normals tag.
Skip
Do not handle Source Normals, existing Normals would applied automatically where possible.
Exact
Exactly replicates Source Normals.
Off
Delete Target's Normals.
Exist
Replicates Normals if it exist in both Source and Target objects.
Phong
Deal with Source Phong tag.
Skip
Do not handle Source Phong, existing Phong would applied automatically where possible.
Exact
Exactly replicates Source Phong.
Off
Delete Target's Phong.
Exist
Replicates Phong if it exist in both Source and Target objects.
Point Sel.
Deal with Source Point Selections (built-in selections are also supported).
Skip
Do not handle Source Point Selections, existing Point Selections would remain.
Exact
Exactly replicates Source Point Selections.
Off
Delete Target's Point Selections.
Exist
Replicates only Point Selections that exist in both Source and Target objects.
Edge Sel.
Deal with Source Edge Selections (built-in selections are also supported).
Skip
Do not handle Source Edge Selections, existing Edge Selections would remain.
Exact
Exactly replicates Source Edge Selections.
Off
Delete Target's Edge Selections.
Exist
Replicates only Edge Selections that exist in both Source and Target objects.
Polygon Sel.
Deal with Source Polygon Selections (built-in selections are also supported).
Skip
Do not handle Source Polygon Selections, existing Polygon Selections would remain.
Exact
Exactly replicates Source Polygon Selections.
Off
Delete Target's Polygon Selections.
Exist
Replicates only Polygon Selections that exist in both Source and Target objects.
Vertex Weight
Deal with Source Vertex Weights (built-in vertex weights are also supported).
Skip
Do not handle Source Vertex Weights, existing Vertex Weights would remain.
Exact
Exactly replicates Source Vertex Weights.
Off
Delete Target's Vertex Weights.
Exist
Replicates only Vertex Weights that exist in both Source and Target objects.
Vertex Color
Deal with Source Vertex Colors (built-in vertex colors are also supported).
Skip
Do not handle Source Vertex Colors, existing Vertex Colors would remain.
Exact
Exactly replicates Source Vertex Colors.
Off
Delete Target's Vertex Colors.
Exist
Replicates only Vertex Colors that exist in both Source and Target objects.
Object ID
Generate Object IDs Vertex Weight Map (useful in case if Source includes other objects in subtree).
Object Color
Generate Object Color Vertex Color Map (support Display and Clone colors).
Segment ID
Generate Segment IDs Vertex Weight Map. Each Mesh Segment piece would have own Weight in map.
Segment Alt ID
Generate Segment IDs Vertex Weight Map. Each Mesh Segment piece would have own Weight in map.
Similar to Segment ID, but tries to keep ranges for segments per object.
Transfer
This is an experimental feature which is sampling Point or Clone attributes from different Origins in 3D Space.
Whole feature makes sense for Polygonal Target Objects only.
Currently it doesn't perform well, so in case if it produce suitable results it's better to bake result into Alembic and then delete Object/Tag or disable Tag execution at the least.
Enable Transfer
As transferring feature is very resource consuming it might be a handy feature to enable/disable transferring but keep all the settings.
Source Switcher
Switching between single Master Source and Separate Sources.
Master
Enables single Source for all available attributes.
Separate
Enables separate source per each attribute.
Master Source
Shown if Source Switcher is set as Master.
Link to Origin. It might be Polygon, Generator, Matrix, Cloner objects. As well as UVW, Vertex Weight and Vertex Color maps.
Point Radius
0..1,000 m
Defines Origin's point/clone radius.
Comparable to Cinema 4D Fields built-in Sampling where point/clone radius is 0, here it possible to set radius of the points to retrieve attributes from the Origin more accurate.
0 radius has better performance.
Use Scale
Only works with MoGraph Matrix & Cloner objects. Multiplies point radius by clone scale value (takes maximum of X, Y, Z scale values).
Search Radius
0..100,000 m
Defines search radius around Target's points.
It's relatively the same option as Cinema 4D Fields built-in Sampling radius.
Search Method
Defines search method.
Nearest
Searches for nearest Origin samples in the Search Radius with the given Threshold value.
Average
Takes all Origin samples in the Search Radius.
Caution: This might freeze Cinema 4D app for a long time if Search Radius is too high and/or Origin has a lot of samples and/or Target has a lot of points. Use with care, make a backups.
Threshold
0..100 m
Defines threshold value for Nearest Search Method.
Keep it smallest possible.
UVW
-
Origin Polygon Object with texture
-
Relative position in space
-
Target Object with texture on it
-
Origin Matrix Grid Object (Might have no colors at all)
-
Relative position in space
-
Target Object with texture on it
On
Enables UV transferring process.
UVW Tag
Link to the target's UV map where transferred data would be stored.
Mix Method
Method to mix sampled values.
Normal
Calculates arithmetical average.
Min
Takes minimal sampled value.
Max
Takes maximum sampled value.
Exist Tag Data
It might happen not all the Target points will find samples in the Search Radius.
This option would set zero values to nan-sampled points, or keep existed data.
Clean
Set all non-sampled points with UV coordinates (0,0).
Keep
Leave non-sampled point values as is.
This means data might be kept from previous sampling, or copied from the Source Object if it was exist there.
UVW Source
Shown if Source Switcher is set as Separate.
Link to UV Origin. It might be Polygon, Generator, Matrix, Cloner objects. As well as UVW map.
Attributes description is the same as in Master Source.
Weight
-
Origin Polygon Object with weight map
-
Relative position in space
-
Target Object with weight map
-
Origin Matrix Grid Object (Display Weight is enabled)
-
Relative position in space
-
Target Object with weight map
On
Enables Weight transferring process.
Vertex Weight Tag
Link to the target's Vertex Weight map where transferred data would be stored.
Mix Method
Method to mix sampled values.
Normal
Calculates arithmetical average.
Min
Takes minimal sampled value.
Max
Takes maximum sampled value.
Exist Tag Data
It might happen not all the Target points will find samples in the Search Radius.
This option would set zero values to nan-sampled points, or keep existed data.
Clean
Set all non-sampled points with weight of 0.
Keep
Leave non-sampled point values as is.
This means data might be kept from previous sampling, or copied from the Source Object if it was exist there.
Weight Source
Shown if Source Switcher is set as Separate.
Link to UV Origin. It might be Polygon, Generator, Matrix, Cloner objects. As well as Weight map.
Attributes description is the same as in Master Source.
Color
-
Origin Polygon Object with color map
-
Relative position in space
-
Target Object with color map
-
Origin Matrix Grid Object
-
Relative position in space
-
Target Object with color map
On
Enables Color transferring process.
Vertex Color Tag
Link to the target's Vertex Color map where transferred data would be stored.
Mix Method
Method to mix sampled values.
Normal
Calculates arithmetical average.
Min
Takes minimal sampled value.
Max
Takes maximum sampled value.
Exist Tag Data
It might happen not all the Target points will find samples in the Search Radius.
This option would set zero values to nan-sampled points, or keep existed data.
Clean
Set all non-sampled points with color of black.
Keep
Leave non-sampled point values as is.
This means data might be kept from previous sampling, or copied from the Source Object if it was exist there.
Color Source
Shown if Source Switcher is set as Separate.
Link to UV Origin. It might be Polygon, Generator, Matrix, Cloner objects. As well as Color map.
Attributes description is the same as in Master Source.
Details
Cell Size
0..100,000 m
This value is used internally for calculations.
Advanced
Method
Defines structure replicating method.
It's quite important to adjust tag's execution priority in order to get proper structure.
Basically these three options might give proper look: Expression+0, Generators+0, Generators+401.
But feel free to experiment.
CSTO
Creates same point structure as built-in command Current State to Object.
In certain cases you might have wrong geometry to be generated. So you'll need to change tag's priority to Generator+401 you might have identical to Source Object look. But somehow performance would be decreased.
Has nice balance between performance and capabilities.
Cache
Retrieves real representation of the source object, including spline dynamics deformation and some other specific modifiers.
Normally you would get one frame delay.
When tag's priority is set to Generator+401 it might have identical to Source Object look. But somehow performance would be decreased.
Optimization
Defines optimization method.
That's not mentioned in public space, but Cinema4D app tries to force update generators on every user interaction, even on Mouse Move event.
So I made decision to provide optimization option, what would help to deal with super-hi-poly structures with ease.
None
No optimization. Target object would be redrawn based on Cinema4D app own algorithms.
Redraw frequency: often.
Smart
Combination of Per Frame and Dirty, whatever happens earlier.
Doesn't work well with Voronoi Fracture with Effectors as Source Object.
Redraw frequency: average.
Frame
Only redraw Target Object once per frame. That's recommended option for final rendering.
Redraw frequency: once per frame.
Dirty
Redraw Target Object based on comparing last and current object attributes and hierarchy changes.
Doesn't work well with Voronoi Fracture with Effectors as Source Object.
Redraw frequency: rare.
Structure
Limit source structure type, like polygon, spline or point.
Same type
Replicates Source structure of the same type as Target.
If Source doesn't have same type of the structure, Target would be empty.
Fallback
Replicates Source structure of the same type as Target.
If Source doesn't have same type of the structure, alternative structure would be used as a Source.
Polygons/Segments
Deal with Source Polygons for the Polygon object, or Source Segments for the Spline object.
Skip*
Do not handle Source Polygons/Segments, existing Polygons/Segments would applied automatically where possible.
* Unstable, might crash Cinema4D app.
Exact
Exactly replicates Source Polygons/Segments.
Off
Delete Target's Polygons/Segments.
Exist*
Replicates Polygons/Segments if it exist in both Source and Target objects.
* Unstable, might crash Cinema4D app.