getavalon / core

The safe post-production pipeline - https://getavalon.github.io/2.0
MIT License
213 stars 48 forks source link

Unreal Engine Integration #498

Open BigRoy opened 4 years ago

BigRoy commented 4 years ago

Issue

Film and animation production is shifting more and more to using real time game engines, like Unreal Engine 4 for virtual production, previsualisation and even full film productions. As such, adoption at production houses for film and VFX is increasing for Unreal Engine.

It would be perfect if Avalon can provide an integration to support UE4 users and ease transition for film studios to adopt Unreal Engine in their production pipeline. Additionally, it could even offer a great workflow for indie or small game teams that don't have a dedicated pipeline for getting their assets into UE4 yet.

Implementation


References:

antirotor commented 4 years ago

I could not find a way in current (4.24.1) Unreal Python API to add custom menu items into main menu. There is lack of documentation there and by the way Shotgun integration works I think the best way to approach it is with small Unreal plugin wrapping this basic setup into C++ calls where we can create such menu with ease. Problem with it is that it will not be self-contained - user will have to enable Avalon plugin per project.

BigRoy commented 4 years ago

Thanks, that was my expectation. I guess for getting started that should be fine, especially since it's project-wide so you'd do it once per plugin.

There does seem to be a EnabledByDefault descriptor mentioned here. Maybe that would do the trick?

antirotor commented 4 years ago

FYI I've just done initial version of Unreal Editor plugin:

https://github.com/antirotor/avalon-unreal-integration

Annotation 2020-01-18 231548

How does it work:

You need to copy content of repository to your project "Plugins/Avalon" (just create it if it doesn't exists). Run Unreal Editor and it should ask you if you want to rebuild plugin (you need Visual Studio installed for this). You also need Python Editor Script Plugin enabled.

Right now, clicking on those Avalon menu items will crash Unreal Editor :)

To not to crash Unreal, you need to implement whats pointed in init_unreal.py - this script must be run by Unreal during startup because it is actually implementing empty functions defined in plugin.

This is just start of it, no real code exists for Avalon Unreal part yet. But this can be used as start for next development, allowing to run custom python code from Unreal Editor menu.

ddesmond commented 4 years ago

Great stuff! cant wait to see more!