Use a Custom Shape for a 3D replicator

In a 3D scene, let's suppose a replicator of vertical objects (text elements) has to conform to a specific horizontal area (when seen from above). How is this possible?

-Use the corresponding custom shape in the replicator specs can't do this because you don't have the Fill option (the elts will "toe the line")

-So I tried to use an image (draw the white shape, then camera>Frame object, then export this in color+alpha, background=black=solid) and use this in the well of the replicator >Image. I simply can't seem to manage it: the outlines of the used shape can't be seen once in the replicator, and how can I relate the 1920x1080 format of the image once in a huge y0000 x z0000 px scene. How is the thing applied inside the replicator? Playing with the replicator scale doesn't really help to get a sense of what needs to be done nor do the rotation settings of the replicator.

Doees anyone have clear guidelines to be able to manage the distribution of the cells in such a case?

Thank you.

Posted on Oct 12, 2022 12:27 PM

Reply
Question marked as Top-ranking reply

Posted on Oct 13, 2022 11:10 AM

You can make a "random fill" path inside a regular path and use the "scribble" as the Geometry source. (Use a secondary regular shape as a guide.)



Geometry tends to use the shape's outline for the replicated objects whether the shape is filled or not.


You can use Bézier shapes that are filled as a source for the Image option (no need to export images and bring them back in). Using Image, you will have access to the Arrangement options of Tile, Outline and Random fills.


Whichever option you choose, there are drawbacks:


It's hard to create a "random fill path" and not have elements overlap each other — it generally means taking some time to edit the points of the path to get the replicated objects that overlap others to separate — or, you can lengthen the overall path to spread out the number of elements you've used — or, you can simply limit the number of replicated objects so that there is no overlap.


With Image, the only control you have with random fill is to keep randomizing the arrangement until all elements are separate.


I'm not exactly clear about what you want to accomplish, so it's hard to make more specific recommendations.

10 replies
Question marked as Top-ranking reply

Oct 13, 2022 11:10 AM in response to joelle184

You can make a "random fill" path inside a regular path and use the "scribble" as the Geometry source. (Use a secondary regular shape as a guide.)



Geometry tends to use the shape's outline for the replicated objects whether the shape is filled or not.


You can use Bézier shapes that are filled as a source for the Image option (no need to export images and bring them back in). Using Image, you will have access to the Arrangement options of Tile, Outline and Random fills.


Whichever option you choose, there are drawbacks:


It's hard to create a "random fill path" and not have elements overlap each other — it generally means taking some time to edit the points of the path to get the replicated objects that overlap others to separate — or, you can lengthen the overall path to spread out the number of elements you've used — or, you can simply limit the number of replicated objects so that there is no overlap.


With Image, the only control you have with random fill is to keep randomizing the arrangement until all elements are separate.


I'm not exactly clear about what you want to accomplish, so it's hard to make more specific recommendations.

Oct 14, 2022 02:53 PM in response to fox_m

(Cheezy quick example offering:)



No attempt made to resemble reality... (makes a fairly decent illustration though, if I do say so myself!)


Snow ground is a rectangle character with Generic Substance + Distress and a Clouds generator used to create a landscape.

The "plateaus" are hexagon shaped characters (there are two) with Bevel edges and the same Clouds generator used for Distress. The corners are rounded by increasing the Width parameter and setting the Inside Corners to round. Distress Bump Map Gain is increased to around 1500%. (Gaussian blur added to Clouds to smooth out otherwise lo-res gradient.)

Trees are two circle characters in one text object (this is a slick trick because they have two separate sets of 3D attributes).

The "mound" in the back is just a flat bezier shape.


Overall optical effect is create mainly by "perspective" (landscape and trees arranged to appear *on* the mounds but they are in reality "before" the mounds (like I said: a *quick* offering). With more attention to detail, everything could be lined up more properly.

Oct 16, 2022 05:19 PM in response to joelle184


Not sure though what you mean with "two circle characters in one text object". Do you mean the text element contains two circles (one for the trunk, the other for the foliage ??), you move one upon the other with Format>Offset ? but don't you still have to make this "Face camera"?

Actually, the text is "0 0" and the two circle characters are edited separately by selecting the individual characters, then when finished setting up their textures, the inner spaces are deleted. The two shapes on the left are ONE text object and the one on the right is what they look like when the inner spaces are removed.



To clarify a little, the shapes fonts I use have Zero-Width characters (character centers are at the Baseline point and with Equal "Side-bearings" with no width). Zero Width characters will not advance the text cursor. In 3D modeling, it is extremely convenient to be able to line up characters at their common position point. There's no need to deal with trying to set or reset Anchor Points or using offsets to align shapes.


Using two different shape characters with zero width in one text object requires that spacing between the two are provided. It is impossible to individually select the characters while they are aligned on each other, but they can be individually selected with the spacing provided in between. (Selections must be made in the Canvas! The Text in the Format inspector does not make individual character selections.)


This technique is difficult to execute... you have to select the text in the canvas, use the arrow key to move the cursor to one end or the other then shift arrow (left on the right end or right on the left end) to select the individual shape character. Once selected, you can use all the 3D Text attribute parameters to create the substance/texture of the character. Also, if after you have removed the inner spaces and want to make further updates, you must add spaces back in between the shape characters again.


The **benefit** of this technique is that Sequence Replicator is applied to the single text object and so a compound model and these will not require duplicated Sequence Replicators for each part.


—————————


In general, the 3D Text support in Motion is not overly burdonsome, although, as with just about everything else, generators like Emitters and Replicators will slow things down quite a bit depending on the numbers of emitted or replicated items there are. You may find better performance duplicating text objects and individually placing treating their variations manually may help speed things up a little. Keep model counts down until you're ready to publish to keep performance up, then populate scenes as needed. You can also turn off groups of items while developing.







Oct 13, 2022 08:51 AM in response to joelle184

If I understand correctly, you are trying to use a shape as a sort of "bounding box" to limit the expanse of a replicator.

I could be wrong, but I don't think there is an easy way to achieve that - it's a kind of Boolean combination of shapes, as one might find in a ray tracing program - a true 3D program. Motion has some nice 3D features, but is not a 3D modeler or tracer.


Perhaps I misunderstood your goal, or perhaps there is a nice and elegant solution. In the latter case, I am sure our great expert Fox M will share some more of his great wisdom, and we will learn some more.

Oct 14, 2022 07:57 AM in response to fox_m

Thank you for these answers.

My goal is to randomly scatter 3D objects on a fixed, given area. This is "half" Boolean since height is not a factor (BTW, some boolean operations are possible in Motion if you use Image masks with 3D targets... which may create raterisation problems... which may be solved by layer reordering). Practical examples could be the surface distribution of natural elements as flowers, boulders, trees etc (though it seems that Motion's replicators are not able to randomly distribute the multiple cells you feed it, as you would randomly pick them in a common tank, correct me if I'm wrong). I take fox' solution (scribble as a distribution line) for a possible fix. It remains odd that Motion can distribute the cells on an shape's outlines (Geometry) and doesn't offer the possibility to fill this very same shape as it seems.

Oct 14, 2022 11:13 AM in response to joelle184

Although geometry paths are flat, you *can* vary the vertical "distributions" of elements by applying a Sequence Replicator behavior.


Apply a Position parameter and set the Position Z to some elevation.


Set the Sequencing to Through (to apply the displacements through the "middle" of the replicated objects -- you can play with this setting more later -- read on...)


Set the Spread to some value (this will depend on how complicated you'd like to make this).


Set the Traversal to Custom and apply a Location to create the elevation effect to the elements. These will NOT animate!


To get more complicated or "sophisticated", you can continue to add MORE Sequence Replicators (or duplicate your first one) and change the Position > Z, Sequencing (to, from, through or even through inverted -- you might even experiment with keyframing elevations over the sequence), change the spread to a smaller amount (or 0 to control individual element elevations) and adjust the Locations to control a subrange of the original sequence.


You can use positive or negative Z values with subsequent Sequence Replicators because the values are **ADDITIVE**.


Rely on scene perspective for background placements to provide the illusion of "coherence". You might be able to build elevated sections with some basic shape characters and distort them with Text > Format > Advanced controls (irregular scales, offsets, rotations and slant).


HTH





Oct 16, 2022 03:36 PM in response to fox_m

Thank you for this.

Not sure though what you mean with "two circle characters in one text object". Do you mean the text element contains two circles (one for the trunk, the other for the foliage ??), you move one upon the other with Format>Offset ? but don't you still have to make this "Face camera"?

With this in mind, would it be possible to get better 3D-looking characters by doing the same with a text element having those soft values (Text Appearance) we know give a burgeonning 3D shape? The idea is to put two similar characters in the text element, align one on the other with Format>Offset, rotate one by 90° (RotY)... The problem is the Text>Appearance settings are not really symetrical and ruin the result... Would there be a workaround ? (apart from using two text elements of course but this would double up the CPU/GPU load)



Do you mean: take the tree character, make sure its anchor point is at its base, duplicate it and apply RotY=90 to the duplicate, all this with the soft values (Text>Appearance) we know can give a beginning 3D impression to the character. Well i've tried it, and it works quite well. That said, it doubles the number of such text elements in the scene and I generally keep to the "Face camera" trick.

Oct 17, 2022 09:32 AM in response to fox_m

Oh, I was completely unaware of the possibility to put two differentiated 3D characters in one text element. I knew about the bonusses that selecting in the canvas offers, because I had experimented it with kerning, spacing and so on, but I never had the idea of superimposing one character upon an other...

I just tried it and here are some complementary conclusions:

-you can use different fonts for different characters for this matter (inside the one text elt)

-Having zero width fonts make things easier but is not compulsory, you can use offset numbers to bring one character upon an other one

-You can indeed give different textures to the superimposed characters but... I can't seem to be able to use Motion's presets for this as it mostly crashes. So, select the character, go to Appearance, and choose Substance>Generic.

-There's another But: if you use different textures for different characters inside the text elt, the view in the canvas stutters when I rotate the camera, hence in my case the signal of possible crashes...

-My biggest questions remain:

1) Is there any gain in terms of processor power saving between using this one-text-elt only solution compared with the standard two text elt one ?

2) With this solution, do you notice any change with this pesky problem of intersection lines/traces between 3D characters (in particular when using masks on textures)?

Thank you again for this enhanced knowledge of the software you give me here.

Oct 18, 2022 11:13 AM in response to joelle184

As far as I can tell, there is no benefit to using multiple 3D shapes in one text object except when using a Replicator or Emitter for compound models (and for the sake of sanity, they should be as simple as possible!!). The problem of intersection trace lines is still there. As for using presets: try applying the preset to a standalone character, then copy and paste that character into another text object after adding a few spaces (I haven't tried this yet, myself, but it might help if the character is "prepped" before adding to the compound text object.)


Stuttering textures is typically due to dynamic changes in texture object size that will "bleed" past the boundaries of the object used (especially if blurs are used). If you're using "inline" (made in Motion) textures as I typically do, then the best method is to place the texture objects in a 2D Fixed Resolution group (of any size/dimension) and use the 2DFR Group as the texture. Imported images (with no filters or masks added) can be used directly as textures because their dimensions are "fixed".


You might be able to improve performance by exporting textures to JPG or PNG (and save the projects for future use) to be imported into your 3D Text projects.


It has been painfully obvious since its introduction that 3D Text was *not* intended for modelling. The 3D structure is relatively "low-poly" and there are some serious shortcuts that were taken. It was made even more painful when Apple added "3D Objects" support (and you still can't do anything serious with it, at least **inside** Motion) — that clarifies that they intended something completely different for text. No matter. I continue on... ;)

This thread has been closed by the system or the community team. You may vote for any posts you find helpful, or search the Community for additional answers.

Use a Custom Shape for a 3D replicator

Welcome to Apple Support Community
A forum where Apple customers help each other with their products. Get started with your Apple Account.