[plugin] Freetrack

Since nobody seems to have made freetrack plugin yet, here’s my attempt.

Usage is simple, just link camera translation and rotation to “get freetrack data”, like this:

And… that’s it. Start freetrack client, start your game, look around.

To make it work with packaged projects, freetrackclient64.dll (or freetrackclient.dll if it’s 32bit) needs to be manually copied to ProjectName/plugins/freetrack
(does anyone know of a way to make Unreal do this automatically?)

Tested with OpenTrack, but should also work with FaceTrackNoIR, Freetrack or anything else using freetrack 2.0 protocol.
It only works on Windows at the moment, if someone wants to port it to other platforms, fix any bugs, or make any other modification, feel free to do so, source code is included.

Have fun.

P.S. this is my first UE4 plugin, so sorry if i’m doing anything wrong.


Oh very nice!

This will be super helpful for my project :slight_smile:

Hi moookiexl ,
your work is super cool!!
what version of unreal are you using?
and are you working on Windows (7, 8, 10…)?
'cause I am working for my thesis and this could be a good help!

any chance this could be updated to be compatible with 4.10? I’m getting an error when trying to load it.

bfenty: It just needs to be recompiled with VS2015 to make it work with 4.10
I’ll update it as soon as I finish downloading 4.10

kevin_alexander: it was made with win7 64bit. It should work with all versions of Windows, but I didn’t test it.

There you go, recompiled for 4.10

There were no changes in actual code, so for C++ projects you can keep using old one, it’ll work just fine.

hei… how do you call the camera variable in the blueprint, I mean, how do you find your webcam among the variables?
should I create one on my own? (and in case how?)

It’s your in-game camera, nothing to do with your physical webcam (that’s all done in your freetrack client, Unreal doesn’t need to know that). Just add a camera component to your player character and link it to that.

It’s working! thank you :slight_smile:

Hi there
I’m using the plugin you offered (the one compiled for 4.10), however after enabling the plugin and restarting my project it just keeps crashing before my project even loads up, any clue how I can fix this? I’m really hoping to get this working with Trinus VR.

Here is the crash report I keep getting.


Unknown exception - code 00000001 (first/second chance not available)

"Fatal error: [File:E:\unrealProjects\fttest\fttest\Plugins\freetrack\Source\freetrack\Private\freetrackBPLibrary.cpp] [Line: 23]

UE4Editor_Core!FDebug::AssertFailed() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\misc\outputdevice.cpp:374]
UE4Editor_CoreUObject!UClass::CreateDefaultObject() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\class.cpp:2657]
UE4Editor_CoreUObject!UObjectLoadAllCompiledInDefaultProperties() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:658]
UE4Editor_CoreUObject!ProcessNewlyLoadedUObjects() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\coreuobject\private\uobject\uobjectbase.cpp:752]
UE4Editor_CoreUObject!TBaseStaticDelegateInstance<void cdecl(void)>::ExecuteIfSafe() [d:\buildfarm\buildmachine++depot+ue4-releases+4.10\engine\source\runtime\core\public\delegates\delegateinstancesimpl_variadics.inl:921]
UE4Editor_Core!TBaseMulticastDelegate<void>::Broadcast() [d:\buildfarm\buildmachine
UE4Editor_Core!FModuleManager::LoadModuleWithFailureReason() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\core\private\modules\modulemanager.cpp:426]
UE4Editor_Projects!FModuleDescriptor::LoadModulesForPhase() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\projects\private\moduledescriptor.cpp:370]
UE4Editor_Projects!FPluginManager::LoadModulesForEnabledPlugins() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\projects\private\pluginmanager.cpp:454]
UE4Editor!FEngineLoop::LoadStartupModules() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launchengineloop.cpp:1989]
UE4Editor!FEngineLoop::PreInit() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launchengineloop.cpp:1495]
UE4Editor!GuardedMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\launch.cpp:110]
UE4Editor!GuardedMainWrapper() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:126]
UE4Editor!WinMain() [d:\buildfarm\buildmachine_++depot+ue4-releases+4.10\engine\source\runtime\launch\private\windows\launchwindows.cpp:200]
UE4Editor!__scrt_common_main_seh() [f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:264]

Salina_Energy’s problem fixed via PM. For everyone else: if you get same error, make sure the plugin is copied to to plugins folder of your project, not the engine, and that you copied freetrackclient64.dll as well.

this will be very helpful to me thanks a lot

I load my Game and i get a message: Plugin ‘freetrack’ failed to load becouse module ‘freetrack’ does not appear to be compatible with the current version of the engine. The Plugin may need to be recompiled.

Can u pls fix this? :slight_smile:

Sorry, i dont saw ur Update, its work fine with VR Streamer! THX !

Binaries for UE4.11: freetrack_411.zip - Google Drive

Awesome Will test soon and let you know.
Quick Question : Where should i link the data to , make a blueprint for the camera and link it to that or in the whole project blueprint one?

Depends on what kind of project is it. It should be the same camera that is currently active.

Awesome, I’ll try soon. Thanks for sharing.
However I’m looking into projections off-axis and motion parallax and all sort of things, have you tried before?

I haven’t tried it, but I see no reason why it shouldn’t work. You’ll probably have to play with sensitivity a bit.

Just tried it with Trinus VR on an Huawei P8 Lite, and it works good. I need to works on sensitivity but with “Freetrack” mode on Trinus Server, and Sensor Mode B on the phone the plugin recieve datas correctly.
Thanks for this !