Open BigRoy opened 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.
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?
FYI I've just done initial version of Unreal Editor plugin:
https://github.com/antirotor/avalon-unreal-integration
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.
Great stuff! cant wait to see more!
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
init_unreal.py
as a startup script to initialize things for the editor, like AvalonUnreal Python
plugin there's alsoUnrealEnginePython
which mentioned here also allows building custom interfaces and customizing menus - this makes me unsure whether that's also possible withUnreal Python
to add an Avalon menu entry.References: