So I’ve been playing with the Python scripting workflow quite a lot the last couple of days and thought it might be useful to give some feedback.
Doesn’t look there’s a thread for it already so here’s one to get us started!
[HR][/HR]The Good
- Being able to automate importing CAD with Python is a brilliant idea.
- Existing functionality works very well.
- The [FONT=courier new]unrealPython module is well organised and the API itself is well commented for inspection with [FONT=courier new]help().
- The progress bar integration for sub-functions such as deleting assets is a nice touch.
The Bad
-
Why have Epic made their own Python plugin instead of joining forces with the existing, open-source, much more powerful plugin?
-
Some functions prone to crashing the editor, mostly due to issues around deleting actors or assets.
-
Need a way to check if ObjectInstance is null.
-
Python 2. Why?
-
No documentation on splitting large scripts into multiple modules.
-
No web documentation on the API. This would be very easy to autogenerate.
-
Pythonic indexing doesn’t work with ArrayProperties (e.g. x-1] for last element).
The Ugly (feature requests!)
-
The Construct -> Process -> Import workflow for CAD doesn’t seem to work as well as it does for .udatasmith files.
-
Can’t manipulate meshes (e.g.) merge before importing into the level. This means that to merge large assemblies you have to first build the static mesh assets for each, import all the subparts into a level, merge the actors into a new asset, delete the leftover actors and delete the old mesh assets. This is laborious and prone to error and crashes.
-
Using command line interface for running scripts is not optimal; they should be a proper asset which can be run from the context menu or something.
-
Being able to create custom slate windows / buttons for entering arguments and running would be ideal; the third-party Python plugin does this very well.
-
Long running scripts (e.g. importing hundreds of assemblies) give no progress of indication.
-
Add a hook for manually setting the progress bar percentage?
-
No development environment -> no autocompletion.
[HR][/HR]
Hope that list doesn’t sound too negative, the headline is that the Python scripting is awesome!