Hotspot Mapping: islands won’t extend beyond trim 0–1 space

Hi Zen team,

I’m trying to reproduce the Hotspot Mapping behavior shown in the official tutorial, where the UV islands are allowed to extend beyond the trim bounds (and effectively beyond the 0–1 trim space) when using Fit Axis = Min via Use Trim Settings.

In the tutorial, the trims appear to be inside 0–1, but the mapped island scales past the trim bounds when he switches to Use Trim Settings and the trim’s Fit Axis is set to Min.

Tutorial Video timestamp: https://youtu.be/f9meGzMGx2k?t=639

Docs I’ve been using:


What I’m trying to achieve

I’m using a tileable trim sheet workflow, and I want hotspot mapping to:

  • snap/fit the island correctly into the chosen trim hotspot

  • but allow the island to extend beyond the trim bounds on the non-fitted axis (like the tutorial shows), so I can utilize tiling better


My trim creation method

I created my trims using the workflow:

  1. Created a Plane mesh.

  2. UV’d it / laid out the plane’s faces in the UV editor.

  3. Cut up the plane into rectangles representing trim regions.

  4. In Zen UV Trim Sheet tools, I used the faces as the base for creating/assigning trims (basically generating trims from those mesh faces).

So my trims are derived from actual mesh faces, not drawn manually.


Steps I took

  1. Create trim sheet trims (inside 0–1 UV space) using the plane-face method described above.

  2. Create an object with UV islands I want to map into a specific trim.

  3. Open Hotspot Mapping.

  4. Ensure the trim has settings like in the tutorial (especially Fit Axis).

  5. In my case, I tried these combinations:

Attempt A

  • Hotspot Mapping Fit Axis: Automatic

  • Result: island fits inside trim (expected)

Attempt B (the tutorial path)

  • Hotspot Mapping Fit Axis: Use Trim Settings

  • Trim Settings Fit Axis: Min

  • Result I get: island still remains clamped and squashed inside the trim / 0–1

  • Result in tutorial: island extends beyond the trim bounds

  1. I also tried manually switching Fit Axis to Min / Max / U / V directly in the Hotspot Mapping options (not relying on Trim Settings), but no combination has allowed the “overflow” behavior the tutorial shows.

What’s confusing me

  • In the tutorial, switching to Use Trim Settings + Fit Axis = Min makes the island scale beyond the trim bounds (at least visually).

  • In my case, the island always stays clamped within the trim/0–1 region.


My settings: [See attached] :backhand_index_pointing_down:

My result: Islands clamped inside the 0-1 space when using hotspot mapping [See attached] :backhand_index_pointing_down:

Expected outcome: Islands should go beyond the 0-1 space (this was manually edited to go beyond the bounds) [See attached] :backhand_index_pointing_down:


So I’m trying to understand:

  1. Is there a setting that clamps hotspot mapping to trim bounds / 0–1 that I might have enabled without realizing?

  2. Does the “create trims from mesh faces” method create trims with additional constraints vs manually created trims?

  3. Is overflow dependent on island orientation / rotation / aspect ratio (or a specific “Rotation allowed” type setting)?

  4. Does Zen UV require trims to be created a certain way (or require a certain mapping mode) for Min/Max overflow to work?

  5. Could this be version-specific behavior? If yes, what version introduced the change?


If anyone can clarify what exact conditions allow the “extend beyond trim bounds” behavior (and why mine is clamped), I’d really appreciate it.

Thanks!

Hey. Thank you for the detailed description of the problem. With this kind of approach, it is much easier to understand the issue, and it also helps us identify bugs in the code or missing information in the documentation, which ultimately makes our addon better.
Now you have also contributed to this process.

I will answer all of your questions in order, following the flow of your reasoning. However, this is not critically important, because the final answer is actually quite simple, and I will get to it later.

First of all, a Trim itself is a very simple thing. It is just an area in the UV Editor that has certain properties.
These properties are quite basic and exist so that operators can understand what this area is intended for.

All trim properties are visible in the panel. A trim may also have some properties that you do not see, but those are very specific and are mainly required for proper interaction between the trim and Blender itself.

  1. A trim does not have any hidden properties that could clamp or restrict an island inside the trim. However, not all island operations are possible under certain combinations of different option settings.

  2. All trims are created in exactly the same way, whether manually or automatically, except for the case when trims are created from mesh polygons. In that case, the Normal parameter of the trim can also be created automatically by writing the polygon’s normal vector from the mesh into the trim.
    However, this does not affect the current question and is only used for Directional Hotspot.

  3. Rotation Allowing and the other parameters you mentioned do not affect how the island is placed inside the trim. If rotation is allowed, it is applied first, and only after that the island is positioned inside the trim.

  4. You can create trims in any way that is convenient for you and use them however you like. You can even use them purely as visual markers for certain areas and not use them for mapping at all. Trims only instruct operators how to act and do not interact with Blender’s native mapping tools.

  5. This is not version-specific behavior. That said, we never rule out the possibility of a bug, because the Trim system is actually quite complex, and some combinations of properties can lead to unexpected results. Tracking all of these cases purely in a testing environment is not always possible.

Now let’s return to the explanation of why you cannot place the island into the trim in such a way that it extends beyond the trim boundaries.

The reason lies in how operators work in Blender—and, in general, in most 3D modeling packages.

When you run an operator, it first collects the initial input data. This can be anything—for example, the camera view from which the operator was executed, the object’s size, how many red-colored vertices exist in the lower part of the mesh, etc. Anything, depending on what the operator was designed to do.

After that, the operator becomes self-contained and executes the algorithm defined by the developer.
Once finished, it enters a waiting state and waits until you change its parameters.
If you change a parameter, the same algorithm is executed again, but with the new parameters.

However, the operator never returns to the initial data-gathering stage.
So even if the operator itself changes something in the scene (for example, the number of red vertices at the bottom of the mesh), it will not take that into account and will simply execute again based on the already collected input data.

This behavior is fundamental to how the Undo system works, and it cannot be done differently.

Now you can understand why changing trim properties does not affect the result of an already running operator.
Those changes are simply outside the operator’s scope once it has been launched.

So all you need to do after changing trim properties is to run the operator again.
During initialization and input data collection, it will then receive the updated trim properties.

The Hotspot Mapping operator is quite complex and is designed for advanced, multi-step processing. Although it may look like magic, it still requires careful preparation of trims and thoughtful setup.

If you only need to place several islands, I recommend using the Fit to Trim operator. It is much simpler, but performs its task very well and is more visually intuitive.

Anticipating your next question, I will answer it in advance.

For the Allow Offset Variation parameter to work, Fit Axis must be set to Min, because this behavior is not possible in other modes.
This information is currently missing both from the documentation and from the tooltip shown when hovering over the property. This is our oversight, and I will add this information later.

1 Like

Hi Valeriy,

Thanks for the clarification. Your explanation about Blender operators caching input on start-up makes sense, and rerunning Hotspot Mapping after changing trim settings solved my confusion.

I noticed something else and wanted to confirm if it is expected.

In Blender, when multiple items are selected, you can sometimes apply the same value across all of them by holding Alt while changing a property. I tried this with trims because I have about 30 trim regions I want to set to Fit Axis = Min.

Steps:

  1. Select all trims in the trim list

  2. Try to change Fit Axis to Min for all selected trims

What I see:

  • When multiple trims are selected, the Fit Axis control becomes greyed out

  • Even if I hold Alt and set it to Min, it does not propagate across all selected trims

Is this by design, or is there another way to batch-apply a trim property like Fit Axis across many trims without editing them one by one?

One more question. Is there any way to preserve texel density during Hotspot Mapping, or at least prevent TD from getting heavily distorted if an island gets mapped to the wrong trim? Sometimes the TD ends up far off after mapping, and I want to understand if there is a recommended workflow or setting for keeping TD consistent.

Thanks again.

How to set properties for multiple trims is described in this article.

The main thing Hotspot Mapping does is find trims that match the proportions of the island. Therefore, you need to be sure that there is a trim with the appropriate proportions and the required TD. You can also influence the TD match using some operator properties. This is the Priority mode set in Area. Or the Area Matching type that works in any Priority mode.