TouchEngine Plugin for Unreal Engine - Beta Release

Hello everyone!

We have a public beta available for everyone to try… right now!

To get started, here are a few useful links:

Latest stable release: Download | Derivative

Documentation, must-read - extensive documentation linked in page and on Github:
https://docs.derivative.ca/TouchEngine-UE4_Unreal_Engine_Plugin

Release packages:
Samples: Release TouchEngine-UE4 Plugin Samples v0.9.3 (BETA) · TouchDesigner/TouchEngine-UE4-Samples · GitHub
Plugin (required): Release TouchEngine-UE4 v0.9.3 (BETA) · TouchDesigner/TouchEngine-UE4 · GitHub

If you encounter issues, have questions or requests for improvements… etc please let us know on GitHub (especially for issues) or here!

Many thanks in advance for all feedback, and please show us what you create with this UE4 Plugin! :slight_smile:

Have fun,
Michel

9 Likes

I am crashing with the following error, placing the plugin in a new project and loading sample tox 01:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0x0000000000000020

UE4Editor_TouchEngineEditor!TouchEngineDynamicVariableStructDetailsCustomization::ToxFailedLoad() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngineEditor\Private\TouchEngineDynVarDetsCust.cpp:775]
UE4Editor_TouchEngineEditor!TBaseRawMethodDelegateInstance<0,TouchEngineDynamicVariableStructDetailsCustomization,void __cdecl(FString),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:467]
UE4Editor_TouchEngine!TMulticastDelegate<void __cdecl(FString),FDefaultDelegateUserPolicy>::Broadcast() [C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
UE4Editor_TouchEngine!FTouchEngineDynamicVariableContainer::ToxFailedLoad() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\TouchEngineDynamicVariableStruct.cpp:196]
UE4Editor_TouchEngine!TBaseRawMethodDelegateInstance<0,FTouchEngineDynamicVariableContainer,void __cdecl(FString),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:467]
UE4Editor_TouchEngine!TMulticastDelegate<void __cdecl(FString),FDefaultDelegateUserPolicy>::Broadcast() [C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
UE4Editor_TouchEngine!UFileParams::FailedLoad() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\TouchEngineSubsystem.cpp:270]
UE4Editor_TouchEngine!UFileParams::execFailedLoad() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Intermediate\Build\Win64\UE4Editor\Inc\TouchEngine\TouchEngineSubsystem.gen.cpp:31]
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_TouchEngine!TBaseUFunctionDelegateInstance<UFileParams,void __cdecl(FString),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:161]
UE4Editor_TouchEngine!TMulticastDelegate<void __cdecl(FString),FDefaultDelegateUserPolicy>::Broadcast() [C:\Program Files\Epic Games\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
UE4Editor_TouchEngine!UTouchEngine::loadTox() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\UTouchEngine.cpp:1160]
UE4Editor_TouchEngine!UTouchEngineInfo::load() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\TouchEngineInfo.cpp:81]
UE4Editor_TouchEngine!UTouchEngineSubsystem::LoadTox() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\TouchEngineSubsystem.cpp:209]
UE4Editor_TouchEngine!UTouchEngineSubsystem::GetParamsFromTox() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\TouchEngineSubsystem.cpp:85]
UE4Editor_TouchEngine!UTouchEngineComponentBase::LoadParameters() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\TouchEngineComponent.cpp:252]
UE4Editor_TouchEngine!UTouchEngineComponentBase::PostEditChangeProperty() [H:\_DERIVATIVE\Github\TE-UE4-Plugin-Release\0.9.1\TouchEngine-UE4\HostProject\Plugins\TouchEngine\Source\TouchEngine\Private\TouchEngineComponent.cpp:210]
UE4Editor_CoreUObject
UE4Editor_Engine
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
user32
user32
UE4Editor_ApplicationCore
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

Hey @tedpallas

Thanks for the report.

I’ve logged the issue for a developer to look into it.

It’s really occurring just on load of the first Sample ? or all of them ?

You can reproduce reliably?

edit: can you confirm that you installed the TouchDesigner build linked in that post (the dropbox link) ?

Thanks,
Michel

Issue: TouchEngine-UE4 #82

I rebuilt the plugin locally via the sample project, and can confirm I installed touchdesigner from the dropbox alongsied the old build. With the rebuilt plugin I get this error, which has all local paths:

Unhandled Exception: EXCEPTION_ACCESS_VIOLATION reading address 0xffffffffffffffff

VCRUNTIME140
UE4Editor_TouchEngineEditor!FString::operator=<FString &,0>() [D:\ueInstalls\UE_4.26\Engine\Source\Runtime\Core\Public\Containers\UnrealString.h:294]
UE4Editor_TouchEngineEditor!TouchEngineDynamicVariableStructDetailsCustomization::ToxFailedLoad() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngineEditor\Private\TouchEngineDynVarDetsCust.cpp:775]
UE4Editor_TouchEngineEditor!TBaseRawMethodDelegateInstance<0,TouchEngineDynamicVariableStructDetailsCustomization,void __cdecl(FString),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\ueInstalls\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:467]
UE4Editor_TouchEngine!TMulticastDelegate<void __cdecl(FString),FDefaultDelegateUserPolicy>::Broadcast() [D:\ueInstalls\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
UE4Editor_TouchEngine!FTouchEngineDynamicVariableContainer::ToxFailedLoad() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\TouchEngineDynamicVariableStruct.cpp:196]
UE4Editor_TouchEngine!TBaseRawMethodDelegateInstance<0,FTouchEngineDynamicVariableContainer,void __cdecl(FString),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\ueInstalls\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:467]
UE4Editor_TouchEngine!TMulticastDelegate<void __cdecl(FString),FDefaultDelegateUserPolicy>::Broadcast() [D:\ueInstalls\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
UE4Editor_TouchEngine!UFileParams::FailedLoad() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\TouchEngineSubsystem.cpp:270]
UE4Editor_TouchEngine!UFileParams::execFailedLoad() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Intermediate\Build\Win64\UE4Editor\Inc\TouchEngine\TouchEngineSubsystem.gen.cpp:31]
UE4Editor_CoreUObject
UE4Editor_CoreUObject
UE4Editor_TouchEngine!TBaseUFunctionDelegateInstance<UFileParams,void __cdecl(FString),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\ueInstalls\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:161]
UE4Editor_TouchEngine!TMulticastDelegate<void __cdecl(FString),FDefaultDelegateUserPolicy>::Broadcast() [D:\ueInstalls\UE_4.26\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:955]
UE4Editor_TouchEngine!UTouchEngine::loadTox() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\UTouchEngine.cpp:1160]
UE4Editor_TouchEngine!UTouchEngineInfo::load() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\TouchEngineInfo.cpp:81]
UE4Editor_TouchEngine!UTouchEngineSubsystem::LoadTox() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\TouchEngineSubsystem.cpp:209]
UE4Editor_TouchEngine!UTouchEngineSubsystem::GetParamsFromTox() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\TouchEngineSubsystem.cpp:85]
UE4Editor_TouchEngine!UTouchEngineComponentBase::LoadParameters() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\TouchEngineComponent.cpp:252]
UE4Editor_TouchEngine!UTouchEngineComponentBase::PostEditChangeProperty() [D:\Unreal\derivative\TouchEngine-UE4-Samples-main\Plugins\TouchEngine-UE4\Source\TouchEngine\Private\TouchEngineComponent.cpp:210]
UE4Editor_CoreUObject
UE4Editor_Engine
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_PropertyEditor
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_Slate
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
UE4Editor_ApplicationCore
user32
user32
UE4Editor_ApplicationCore
UE4Editor
UE4Editor
UE4Editor
UE4Editor
UE4Editor
kernel32
ntdll

@tedpallas

What TouchDesigner licence are you using ?

When recompiling, did you use the .bat file or Visual Studio ?

Thanks in advance, and apologies for the issue + all the questions !

I am using a Commercial license. I recompiled by launching the project and going through the automated build. Interestingly, the visual solution method wouldn’t load projects for me (0/2 Loaded).

No worries on the questions! Cheers for the rapid responses! Let’s get this cooking fam :sunglasses:

1 Like

Interestingly, the visual solution method wouldn’t load projects for me (0/2 Loaded).

Ok, that sounds familiar…

Can you try the following point from the doc, even if it is not the exact same issue:

The Unreal related options are missing from the context menu when right clicking the Unreal project file, what should I do ?

This seems to be an install bug, we encountered it on our end as well. With luck, the Epic Games Launcher will show up with a message mentioning to “Fix the project files”, clicking “Fix now” should solve the issue. If the message doesn’t show up, another solution is to open your project using right click → Open with… and open the project with the UnrealVersionSelector.exe located in your Epic Games Launcher install folder (by default, C:\Program Files (x86)\Epic Games\Launcher\Engine\Binaries\Win64)

It feels like something is not linked properly somewhere.

Do you have Visual Studio 2019 installed?

I am using VS2019, yes. I can generate a Solutions file, but don’t get any projects able to load through that solution.

that’s one of best days of my life. (virtualive is a very hard bridged system between td and ue4…this means work totally on unreal passing parameters with zero lags or extra routing to send and recieve data)
Thanks derivative you have saved my life. (hours of extra work <3)

i hope to try it soon <3

2 Likes

Hey @tedpallas

This is really an odd one. We have a potential fix that will come in the next beta release, early next week.

Meanwhile, you could try it on the dev branch of the Github repositories if you are comfortable with that.

It should prevent the crash from happening, but the crash itself seems to be caused possibly by an issue with the install… I wonder if (not a joke) you tried to reboot your computer ? What about starting VS 2019 as admin ?

I was also unable to get the plugin to work. I have the correct Unreal Engine version and followed the directions exactly for installing the plugin- The plugins were in the project…I was told to restart to enable the plugins…but when i tried to restart I got the message that the modules were missing but I could rebuild them Upon trying that the error I always got was the project could not be compiled, Try building from the source manually- not exactly sure how to do that.

Hey @audri

Building from source should be fairly straightforward following this

Please let me know if there is any issues,

Best,
Michel

Hello everyone,

Update 0.9.2 is now available for both plugin and samples.

Changes in v0.9.2:

  • New DAT specific features, see the Plugin documentation for details
  • Fixing an issue where building the plugin as Release would fail
  • Fixing an issue where the plugin would cause a crash of Unreal Engine when loading a TouchEngine
  • Added documentation of C++ for Plugin specific objects and methods
  • Minor fixes and tweaks to code, as well as some optimization

@tedpallas - maybe you can give it another go and see if your issue is now fixed :slight_smile: thanks!

2 Likes

Is anyone else having trouble getting DAT input working? Using BP_TE_UESample03_Parameters from the sample project to send an array of strings into a DAT input does not seem to work. TOPs and CHOPs work just fine when sending data through and printing it back out in Unreal, but not DATs. When reading back the cell with Get Cell, I get the error “Accessed None trying to read property DAT”

Here is a link to a test BP that uses UESample03_Parameters.tox from the sample

Also this is on 14010 and TouchEngine-UE4 0.9.2, UE 4.26.2

Hello @cerspense

Thanks for the report.

I will add an issue to our repository for a developer to look into it. I will get back to you.

Thanks,
Michel

Issue: TouchEngine-UE4-Samples #33

1 Like

To everyone having problems rebuilding, make sure you have Visual Studio 2019 installed and have the .NET SDK 4.6.2 installed. After I installed these both on a machine, I was able to build it and open the samples project without any problems.

2 Likes

Can a tox file including compute shader of glsl TOP work in UE4 ??
I just tried that using TouchEngine component, but it seems it doesn’t reflect correctly…

Hey @3710tomoya

It should be. Can you elaborate?

You are not getting the expected result once the texture is in Unreal?

Thanks,
Michel

Well, I tried loading with the tox file attached here.
At first, it seems not to work a function like a imageLoad(mTDComputeOutputs[0], ivec2(gl_GlobalInvocationID.xy)).
So I put feedbackTOP instead.But, I couldn’t see same texture of Touchdesigner COMP out in UE4.
I also attached the video here. It’s the result of that.
computeshader.tox (1.6 KB)
computeshaderInUE4

Hey @3710tomoya

Thanks for the details.

I played around with your file and was unable to get it to work as expected as well.

I’ve added an issue to the project tracker for a developer to look into it.

Thanks,
Michel

Issue: TouchEngine-UE4 #83

1 Like