{"id":50415440,"url":"https://github.com/itsloopyo/assassins-creed-unity-headtracking","last_synced_at":"2026-05-31T05:30:57.874Z","repository":{"id":360804060,"uuid":"1222549242","full_name":"itsloopyo/assassins-creed-unity-headtracking","owner":"itsloopyo","description":"An OpenTrack compatible head tracking mod for Assassins Creed Unity","archived":false,"fork":false,"pushed_at":"2026-05-27T22:40:24.000Z","size":2730,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-28T00:26:44.521Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itsloopyo.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-27T13:26:09.000Z","updated_at":"2026-05-27T22:40:28.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/itsloopyo/assassins-creed-unity-headtracking","commit_stats":null,"previous_names":["itsloopyo/assassins-creed-unity-headtracking"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/itsloopyo/assassins-creed-unity-headtracking","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fassassins-creed-unity-headtracking","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fassassins-creed-unity-headtracking/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fassassins-creed-unity-headtracking/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fassassins-creed-unity-headtracking/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itsloopyo","download_url":"https://codeload.github.com/itsloopyo/assassins-creed-unity-headtracking/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itsloopyo%2Fassassins-creed-unity-headtracking/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33720897,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-31T05:30:57.816Z","updated_at":"2026-05-31T05:30:57.867Z","avatar_url":"https://github.com/itsloopyo.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Assassin's Creed Unity Head Tracking\n\nHead tracking for Assassin's Creed Unity. Turning your head nudges the camera on top of the normal third-person orbit, so you can peek around corners and lean into rooftop drops without taking your hands off the mouse or controller. No VR headset required.\n\n\u003c!-- ![Mod GIF](https://raw.githubusercontent.com/itsloopyo/assassins-creed-unity-headtracking/main/assets/readme-clip.gif) --\u003e\n\n## Features\n- **Head-driven camera nudge** - layered on top of the normal third-person orbit; mouse and controller still drive aim and Arno's facing.\n- **6DOF positional tracking** - lean and peek with head position, tuned to ACU's tight follow camera.\n\n## Requirements\n- A legitimate copy of [Assassin's Creed Unity on Steam](https://store.steampowered.com/app/289650/Assassins_Creed_Unity/) (or Ubisoft Connect).\n- A head-tracking source that outputs OpenTrack UDP, such as [OpenTrack](https://github.com/opentrack/opentrack) with a webcam, a VR headset, or a phone app.\n- Windows 10 or 11, 64-bit.\n\n## Installation\n1. Download the latest installer ZIP from the [Releases page](https://github.com/itsloopyo/assassins-creed-unity-headtracking/releases).\n2. Extract it anywhere.\n3. Double-click `install.cmd`.\n4. Configure OpenTrack (or your tracker) to send UDP output to `127.0.0.1:4242`.\n5. Launch the game normally via Steam or Ubisoft Connect.\n\nIf the installer cannot find your game, point it at the install folder explicitly with either an environment variable or a positional argument:\n\n```powershell\nset ASSASSINS_CREED_UNITY_PATH=D:\\Games\\Assassin's Creed Unity\ninstall.cmd\n```\n\nor\n\n```powershell\ninstall.cmd \"D:\\Games\\Assassin's Creed Unity\"\n```\n\n### Manual Installation\nFor users who prefer to place files by hand, extract the Nexus ZIP into the folder containing `ACU.exe`:\n\n1. Install the [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader) yourself, kept as `dinput8.dll` next to `ACU.exe`.\n2. Copy `AssassinsCreedUnityHeadTracking.asi` into the same folder.\n3. `HeadTracking.ini` is written next to `ACU.exe` on first launch.\n\n## Setting Up OpenTrack\nWhatever your tracking source, the output configuration is the same:\n\n- **Output**: `UDP over network`\n- **IP**: `127.0.0.1`\n- **Port**: `4242`\n\n### VR Headset Setup\n1. Connect your headset to the PC over Air Link or Virtual Desktop.\n2. Start SteamVR.\n3. In OpenTrack, set the input to `SteamVR` (the OpenTrack SteamVR input plugin), and the output to UDP `127.0.0.1:4242` as above.\n\n### Webcam Setup\n1. In OpenTrack, set the input to the `neuralnet` tracker.\n2. Position your webcam so your face is well lit and centered.\n3. Set the output to UDP `127.0.0.1:4242`.\n\n### Phone App Setup\nIf your phone app smooths its own output and can send OpenTrack UDP directly, point it at your PC's IP on port `4242` and skip OpenTrack entirely. If you want OpenTrack's curve mapping and filtering, have the app feed OpenTrack instead and let OpenTrack relay UDP to `127.0.0.1:4242`.\n\n## Controls\n\nTwo equivalent binding sets - use whichever your keyboard has:\n\n| Action              | Nav-cluster | Chord           |\n|---------------------|-------------|-----------------|\n| Recenter            | `Home`      | `Ctrl+Shift+T`  |\n| Toggle tracking     | `End`       | `Ctrl+Shift+Y`  |\n| Cycle tracking mode | `Page Up`   | `Ctrl+Shift+G`  |\n| Toggle yaw mode     | `Page Down` | `Ctrl+Shift+H`  |\n\n`Page Up` / `Ctrl+Shift+G` cycles tracking mode:\n\n1. Normal head-tracked gameplay\n2. Positional tracking disabled, rotational tracking enabled\n3. Rotational tracking disabled, positional tracking enabled\n4. Back to normal\n\n`Page Down` / `Ctrl+Shift+H` toggles yaw between **world-space** (horizon-locked, default) and **camera-local**.\n\n## Configuration\nThe mod writes `HeadTracking.ini` next to `ACU.exe` on first launch. All settings are annotated in-line; the defaults are below.\n\n```ini\n[Network]\n; UDP port for OpenTrack data\nUDPPort=4242\n\n[Sensitivity]\nYawMultiplier=1.0\nPitchMultiplier=1.0\n; Roll reduced for third-person. ACU is a parkour game and unchecked\n; roll whips the horizon on rooftop landings. Raise to 1.0 for more tilt.\nRollMultiplier=0.5\n; 0.0 = minimum (a 0.15 floor is applied internally to kill jitter).\n; 1.0 = heavy smoothing (~5s settling).\nSmoothing=0.0\n\n[Position]\nSensitivityX=1.0\nSensitivityY=1.0\nSensitivityZ=1.0\n; Positional limits in meters, kept conservative for ACU's tight follow camera.\nLimitX=0.20\nLimitY=0.15\nLimitZ=0.25\nLimitZBack=0.05\nSmoothing=0.15\nInvertX=false\nInvertY=false\nInvertZ=false\nEnabled=true\n\n[Hotkeys]\n; Virtual key codes in hex. Nav-cluster defaults:\nToggleKey=0x23        ; End\nRecenterKey=0x24      ; Home\nPositionToggleKey=0x21; Page Up\nYawModeKey=0x22       ; Page Down\n; Chord alternatives (Ctrl+Shift+\u003cletter\u003e):\nChordToggleKey=0x59   ; Y\nChordRecenterKey=0x54 ; T\nChordPositionKey=0x47 ; G\nChordYawModeKey=0x48  ; H\n\n[General]\nAutoEnable=true\n; Horizon-locked yaw (true) is best for third-person games.\nWorldSpaceYaw=true\nCameraHookLogging=false\n\n[Culling]\n; Widens actor visibility culling so head turns do not reveal empty crowd edges.\n; This does not change the rendered FOV. Ctrl+Shift+J toggles it in-game.\nGuardEnabled=true\n; Side-plane outward bias in metres.\nGuardBiasMeters=500.0\n```\n\n## Troubleshooting\n- **Mod not loading** - confirm `dinput8.dll` and `AssassinsCreedUnityHeadTracking.asi` sit next to `ACU.exe`. A `HeadTracking.log` file appearing next to them is a good sign; include it if you file an issue. If the game crashes on launch, removing those two files restores vanilla behavior.\n- **No tracking response** - check that your tracker is outputting UDP to `127.0.0.1:4242` and that the port matches `UDPPort` in `HeadTracking.ini`.\n- **Jittery or unstable tracking** - raise `[Sensitivity] Smoothing` toward `0.3`. A 0.15 floor is always applied, which is usually enough for wired trackers; wireless or WiFi trackers may want more.\n- **Wrong rotation / horizon whipping** - lower `[Sensitivity] RollMultiplier`, or set `[General] WorldSpaceYaw=true` for horizon-locked yaw. Use the invert options in `[Position]` if an axis moves the wrong way.\n- **NPCs disappear while turning your head** - keep `[Culling] GuardEnabled=true`. Raise `GuardBiasMeters` if crowd edges still pop; lower it if you need to test performance impact.\n\n## Updating\nDownload the new release and run `install.cmd` again. Your config is preserved.\n\n## Uninstalling\nRun `uninstall.cmd`. This removes the mod DLLs. The Ultimate ASI Loader is only removed if the installer put it there. Use `uninstall.cmd /force` to remove it anyway.\n\n## Building from Source\nPrerequisites: Visual Studio 2022 with the C++ workload, CMake 3.20+, git, and [pixi](https://pixi.sh).\n\n```powershell\ngit clone --recurse-submodules https://github.com/itsloopyo/assassins-creed-unity-headtracking\ncd assassins-creed-unity-headtracking\npixi run build-release\npixi run package\n```\n\n## License\nMIT - see [LICENSE](LICENSE). Copyright (c) 2026 itsloopyo.\n\n## Credits\n- **Ubisoft Montreal / Ubisoft** - Assassin's Creed Unity and the AnvilNext engine.\n- **ThirteenAG** - [Ultimate ASI Loader](https://github.com/ThirteenAG/Ultimate-ASI-Loader).\n- **TsudaKageyu** - [MinHook](https://github.com/TsudaKageyu/minhook).\n- **Stanisław Halik et al.** - [OpenTrack](https://github.com/opentrack/opentrack).\n- Built on the shared [cameraunlock-core](https://github.com/itsloopyo/cameraunlock-core) library.\n\n## Disclaimer\nThis mod is not affiliated with, endorsed by, or supported by Ubisoft. It modifies only what you see on your own machine; aim, hitboxes, and game logic are unchanged. Tracking is client-side, but keep it off in co-op out of courtesy. Use at your own risk.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsloopyo%2Fassassins-creed-unity-headtracking","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitsloopyo%2Fassassins-creed-unity-headtracking","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitsloopyo%2Fassassins-creed-unity-headtracking/lists"}