[Super Beginner] Touchdesigner’s “UnrealEngine Plug-in Samples” Explained — CHOP Basics

miwa_maroon
4 min readOct 3, 2021

--

CHOP is powerful!

The most practical part of UE4 plugin samples is here!
That’s it.

CHOP!

No, not the one that attacks with your hands.
Apaman.
Yeah, that’s a shop.
You can do things like instancing in the beautiful world of UE4!

So, I’m explaining it again in this video!
Even if you don’t actually do it manually
It’s worth it just to watch!

Just the point of the video.

Now, I’ve explained the basics in the video.
I’ll just show you the important points here.
I’m going to introduce only the important points here.

What type is it?

Last time, we talked about type conversion in TOP.
What was the type of TOP in UnrealEngine?

Texture2D, right?

Then what is CHOP?
It is

Float Array!!

However, you need to specify the channel!
However, there are some people who don’t know what that means.
I’ll explain with a concrete example.

When the contents of the array is one

First, here!

This is a CHOP that has 30 channels.
In addition, it has one Float Array for each channel.

Think of an Array as an array (if you don’t know what an array is, I’ll explain later, so just think of it as something like that).
The array contains a single value.

This is what this CHOP is.
If you want to use this value!

First, specify channel 3 (Index is 2) and get the Float Array
TouchEngineComponent has a
GetChannel

and specify the channel number to use it.
Then, specify the 0th value of the obtained Float Array to get the value.

It’s called an array, but the value inside is a single value, so it’s no different from a normal Float value.

When the contents of an array are multiple

The difference between this CHOP and the previous one is that it holds multiple values for each channel.
Let’s say we want to get the value of this one.

The channel specification is the same as before.
Use GetChannel to specify Index2 and get the Float Array.
Now here is the difference.
This time, the Float Array contains 100 values.
Since we want to retrieve the 41st data
In the Float Array Get, specify 40 as the Index to get the value.

It’s surprisingly easy.

After all, what is an array ?

It is often said that a box that can hold a lot of value 📦
that can hold a lot of value.

A Yu-Gi-Oh pack can also be called an array.
It is an array with five values, and Index 4 is usually a rare card.
Index is a number. Basically, we count from zero.
Index 5 is Index 4.

Haichu is also an array.
The Sobu Line route map is also an array.

The world is full of arrays.
Is this an array, by any chance?
If you know of any, please comment!
Let’s make an array discovery team!

instancing

Maybe you’d like to know
About instancing!

You can do it with this CHOP!
But the way it works is a little different from the Touchdesigner workflow.
It’s not like Touchdesigner, where you can just throw a CHOP into a geometry comp and be done with it.

Rather, it’s a matter of iterating through the indexes I described earlier to get the values, and then setting them to the positions of each static mesh.

I’ll spare you the details as they are explained in the video.
The important points are

In the For each node, the index is repeated from 0 to 99, and
and the tx ty tz retrieved based on the index.

This is reflected in the position of each object.
It requires some knowledge of BP nodes, but
But it can be done this way.
The developers have been testing and testing and testing.
I think this node is the result of a lot of testing by the developers!

CHOP is still delicious.

CHOP has a system for physical calculations.
For example, Spring CHOP can calculate springs.
We’ll talk about it in the next advanced chapter!
See you soon!

--

--

miwa_maroon

I want to bring a smile to someone's life. Use Touchdesigner.