# TiNA - Transfer Normals Add-on

**URL:** <https://blenderartists.org/t/tina-transfer-normals-add-on/1124593>\
**Category:** Released Add-ons and Extensions\
**Tags:** modeling, add-ons, free\
**Created:** [August 29, 2018, 4:11pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593 "2018-08-29T16:11:58Z")\
**Posts on this page:** 20\
**Page:** 1

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [August 29, 2018, 4:11pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/1 "2018-08-29T16:11:58Z")

</div>

![TiNA logo](https://blenderartists.org/uploads/default/original/4X/8/a/4/8a4415d8361bb57d9feddc8d8ceb15c49e6237e8.png)

After [finding out](https://blenderartists.org/t/editing-normals/368427/5) how to transfer normals to another object I created my first Blender add-on which makes this an easy feat. The add-on provides the ability to _Transfer Normals_ between objects in Object Mode using **Alt+N** and **Shift+Alt+N**. Optionally vertex colours can be transferred as well.

 ![Screenshot_2018-10-02_01-23-50](https://blenderartists.org/uploads/default/original/4X/7/d/9/7d9b7a6585e02309cdadd1bf29ae04893331768b.png)

### All you need

[TiNA.py](https://gitlab.com/Modanung/TiNA/raw/master/TiNA.py?inline=false)  
[TiNA.py (Blender 2.80)](https://gitlab.com/Modanung/TiNA/raw/b2.80/TiNA.py?inline=false)

### GitLab repository

> **[LucKey Productions / Tools / TiNA · GitLab](https://gitlab.com/luckeyproductions/tools/TiNA)**
>
> A Blender add-on for quickly transferring normals between objects

### Clarification

The add-on allows you to (more easily) make separate objects connect seamlessly without joining them, which can be useful when creating elements for your game worlds.

| Hotkey | Operation |
| --- | --- |
| **Alt+N** | Transfer normals from selection to active object |
| **Shift+Alt+N** | Transfer normals from active object to all other selected objects |
| **Ctrl+Shift+Alt+N** | Clear custom normals data for entire selection |
| **Alt+W** | Wrap normals |

 ![image](https://blenderartists.org/uploads/default/original/4X/9/1/b/91b41ad01134eab5b9361ee1712c5e754900b8e9.jpeg) ![image](https://blenderartists.org/uploads/default/original/4X/b/3/8/b38c56424784d324631e4599e9224eae3e89b34c.jpeg)

### Test scene

To try out the add-on without the need to create a suitable set of meshes you can download this blend file:  
[TestScene.blend](https://gitlab.com/Modanung/TiNA/raw/master/TestScene.blend)

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [August 30, 2018, 3:39pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/2 "2018-08-30T15:39:56Z")

</div>

I created a repository on GitLab for this add-on so I can more easily update it while implementing the points on the to-do list as well as to allow for forks and pull requests.

---

<div class="post-metadata">

**Author:** ![kabu](https://blenderartists.org/user_avatar/blenderartists.org/kabu/32/782110_2.png) [@kabu](https://blenderartists.org/u/kabu)\
**Post date:** [August 30, 2018, 3:59pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/3 "2018-08-30T15:59:55Z")

</div>

Hey, nice to see you here.

> [@Modanung](#):
>
> For clarity: This allows you make separate objects connect seamlessly while keeping them separate.

Ok, now you nailed it. Gonna try it.  
You should add some funky video to show what it does. Blenderheads like that. 🐄

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [August 30, 2018, 4:09pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/4 "2018-08-30T16:09:32Z")

</div>

Hey @kabu! I’d noticed your avatar in a cloth modelling thread yesterday. 🙂  
Hope you like the add-on. I’m now working on the option to apply normals _from_ the active object _to_ all other selected objects. (edit: done)

And before creating a video I’d like to implement the current points on the to-do list and create some pretty models that really suffer from those seams. 😉  
EDIT: For now an image of the test blocks will do.

---

<div class="post-metadata">

**Author:** ![kabu](https://blenderartists.org/user_avatar/blenderartists.org/kabu/32/782110_2.png) [@kabu](https://blenderartists.org/u/kabu)\
**Post date:** [August 30, 2018, 4:57pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/5 "2018-08-30T16:57:08Z")

</div>

Yes, you’re right. Some ironing to do.😀

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 3, 2018, 7:00pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/6 "2018-09-03T19:00:33Z")

</div>

Default hotkeys are now set when loading the add-on: Alt+N and Shift+Alt+N for transferring normals _to_ and _from_ the active object respectively.

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 5, 2018, 7:55pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/7 "2018-09-05T19:55:53Z")

</div>

Vertex colours can now optionally be transferred along with the normals.

---

<div class="post-metadata">

**Author:** ![burnin](https://blenderartists.org/user_avatar/blenderartists.org/burnin/32/443042_2.png) [@burnin](https://blenderartists.org/u/burnin)\
**Post date:** [September 5, 2018, 8:52pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/8 "2018-09-05T20:52:48Z")

</div>

Gonna check this.  
Thank you.

BTW  
Your GitLab link is broken.  
So here it is, for all those who wish to join the venture:

> **[LucKey Productions / Tools / TiNA · GitLab](https://gitlab.com/luckeyproductions/tools/TiNA)**
>
> A Blender add-on for quickly transferring normals between objects

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 5, 2018, 10:06pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/9 "2018-09-05T22:06:25Z")

</div>

> [@burnin](#):
>
> Your GitLab link is broken.

That’s odd. I moved the link to the first post as a onebox.

---

<div class="post-metadata">

**Author:** ![kabu](https://blenderartists.org/user_avatar/blenderartists.org/kabu/32/782110_2.png) [@kabu](https://blenderartists.org/u/kabu)\
**Post date:** [September 6, 2018, 4:30pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/10 "2018-09-06T16:30:22Z")

</div>

Nothing happens with Alt-N in my case (it’s probably bound to something else…?)  
Panel please. T - something or N - something.  
🤖

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 6, 2018, 5:35pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/11 "2018-09-06T17:35:33Z")

</div>

You can search by Key-Binding under _input_ in the user preferences to find out.  
Make sure you are in object mode. Also, is your setup similar to this example?  
[BasicNormalsTransfer.blend](https://blenderartists.org/uploads/default/original/4X/7/0/d/70d381f82311b2069a8df113faeca0850f624c8e.blend) (472.4 KB)

I added a button to the _Tools_ panel. The shortcut isn’t showing up there either. Could this be related? Or is something else required for this?

---

<div class="post-metadata">

**Author:** ![kabu](https://blenderartists.org/user_avatar/blenderartists.org/kabu/32/782110_2.png) [@kabu](https://blenderartists.org/u/kabu)\
**Post date:** [September 7, 2018, 8:42am UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/12 "2018-09-07T08:42:24Z")

</div>

Bump the blend example in the first post of the thread, so people can find it more easily.

I do:

 ![10](https://blenderartists.org/uploads/default/original/4X/b/2/2/b226005d9f365acab9e7671be99c2b515c129caf.png)

(you can always find an operator by space and typing its name, even if no UI appears).

then Blender shows the modal:

 ![24](https://blenderartists.org/uploads/default/original/4X/8/4/b/84b37a740efaceaf6b0dc5db8684bbc428e3abcd.png)

and then:

 ![55](https://blenderartists.org/uploads/default/original/4X/e/0/a/e0a67070e85395bf83f3d36009bbf7991adc4207.png)

this happens irrespective if I do select the first, apply it, select the second, apply it, select both, apply it.

Still operativity is unclear. Video, video.

HTH

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 7, 2018, 11:35am UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/13 "2018-09-07T11:35:37Z")

</div>

You probably have non-model objects selected (which is no longer a problem), like the camera and light. It currently creates modifiers for these as well, but cannot set the source object. This makes it fail during a later step and leaves a messy modifier stack.  
I plan to add a check for this, but until then I will not know how. 🙂  
Pull requests are welcome.

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 7, 2018, 1:57pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/15 "2018-09-07T13:57:14Z")

</div>

I added an improved test scene to the original post. Without lights or cameras.

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 7, 2018, 3:02pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/16 "2018-09-07T15:02:04Z")

</div>

The add-on now skips non-model objects and shows an error message when not enough model objects have been selected.

---

<div class="post-metadata">

**Author:** ![kabu](https://blenderartists.org/user_avatar/blenderartists.org/kabu/32/782110_2.png) [@kabu](https://blenderartists.org/u/kabu)\
**Post date:** [September 7, 2018, 3:15pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/17 "2018-09-07T15:15:55Z")

</div>

[BasicNormalsTransfer\_edited.blend](https://blenderartists.org/uploads/default/original/4X/0/0/2/0024009e9ee7d1bc7d8df05ffb3e798fdb11570c.blend) (1010.1 KB)

Oh sorry. Didn’t noticed the to\_active flag in the beginning.  
Now it’s clearer. I’ve set up things to be easier and added a note quick go.  
🐅

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 7, 2018, 5:13pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/18 "2018-09-07T17:13:01Z")

</div>

The add-on now includes an extra operation to clear the custom normals data for the entire selection. By default the hotkey for this is set to **Ctrl+Shift+Alt+N**.

---

<div class="post-metadata">

**Author:** ![jpthrash](https://blenderartists.org/letter_avatar_proxy/v4/letter/j/3e96dc/32.png) [@jpthrash](https://blenderartists.org/u/jpthrash)\
**Post date:** [September 9, 2018, 8:48am UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/19 "2018-09-09T08:48:41Z")

</div>

This looks great, thanks. Any plans on expanding it to work also for selected vertices?

---

<div class="post-metadata">

**Author:** ![Modanung](https://blenderartists.org/user_avatar/blenderartists.org/modanung/32/520974_2.png) [@Modanung](https://blenderartists.org/u/Modanung)\
**Post date:** [September 9, 2018, 10:32am UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/20 "2018-09-09T10:32:06Z")

</div>

I have considered relaying the modifiers’ _vertex group_ parameter. But so far the _Max Distance_ parameter works well enough for me. Could you mention example situations where this precision is necessary?

@kabu What do you think of the latest test scene, btw?

---

<div class="post-metadata">

**Author:** ![kabu](https://blenderartists.org/user_avatar/blenderartists.org/kabu/32/782110_2.png) [@kabu](https://blenderartists.org/u/kabu)\
**Post date:** [September 9, 2018, 12:47pm UTC](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593/21 "2018-09-09T12:47:49Z")

</div>

In my setup (Mac Os) using Alt- doesn’t work.

In a most general way, in Blender, relying on a key combo setup for the main function is not a good thing imho, because everyone has a different keybindings and keys “real estate”, given the many functions, is scarce.

Normally, I use the Outliner to “select active”. I tried selecting with B but I don’t know how to “select active” that way. If I click on an item, just one part of it gets selected.

You can have a single object with Ctrl-J join all of them in a single one.

The scene is nice. Using trees as a classic test case for normals is a good idea.

[Next page](https://blenderartists.org/t/tina-transfer-normals-add-on/1124593.md?page=2)
