I really want to but have not sorted out how to do so. Partially because of lack of understanding of how to set it up and git hub things.
Nice news…
That is great news!!
To answer your question, I don’t use this currently… I’ve been lurking around watching it develop over time though and I plan on using it soon, I just haven’t delved into the engine recently due to time constraints with work and the like but I have been sharing this with other people that have said they will be using it.
It will be great to get it distributed for the binary version too! Keep up the great work guys.
Kind Regards,
Patriick.
Crazy stuff. This would be a super workflow boost if fully featured.
I need to test it but this plugin, if works properly, will be one of the most usefull thing in Maya I’ve ever seen!
Quick question: are bones supported? I would like to stream a FPS view into UE4 from Maya
Unfortunately I have not had time to try and integrate it with C4D so no. I do hope to one day - maybe next year - under the pump on a (non UE) project
I’ll have a look at this for my next project Hopefully i’ll be able to make it work. It would be a great way to speed up some processes in the level designing.
still alive… have been in a do-nothing-mood since handing in my thesis
anyway, been working on the PySide based UI, so now you can set paths for the assets.
(again, current - hopefully working - state is in the **development branch **on bitbucket)
The PySide based UI of course requires PySide (integrated in Maya 2014 and newer)
Still there are more features to be implemented, but the main next step would be on the Editor-side again, allowing already existing Actors to be updated instead of always creating new actors for objects that are sent to the Editor. But before I add new features to the Plugin, I wanted to refactor the code.
@Gigantoad: thanks for keeping the thread alive
I don’t know how the pivot-issue you described looks like, but I guess since you fixed it, it doesn’t matter (I integrated your pull request) although, if you could describe the circumstances of “when” it happend, would be nice.
I am sorry, I currently don’t have enough internets (data volume) to download the newer versions of UE (still on a mobile connection).
I guess they moved the FbxImporter.h file to another place?
That is awesome, thanks. I already kind of forgot we had to make that change, because I didn’t upgrade my version on Windows since then (on Mac I’m still on 4.3)
Being able to distribute binaries would definitely make it much more convenient for artists to use the plugin.
MIT is the best choice, i think, so, yeah MIT it is
Bones in the sense of a skeletal rigged mesh, not yet. Generally you can simply attach maya’s default persp-camera to a bone and turn on camera-syncing. But this will probably not work for an animated scene yet, since the script jobs aren’t evaluated during playback. But it is a planned feature to sync camera and animations during playback, though I don’t know when I will come to implementing that
If your other project is Unity-based, you might be able to start working on the C4D integration with the m2u Unity plugin
Great to hear from you!
With each export to UE4, the pivot in Maya got reset. If you look at my code changes in mayaCommand.py you can see I just backed up the pivot
piv = pm.xform(name, piv=True, q=True, os=True) # backup pivot
and after export reset it
pm.xform(name, os=True, piv=(piv[0], piv[1], piv[2])) # reset pivot
I had also tried to actually keep the correct pivot in the UE4 editor, and while I got that working the down side was that there was now an offset in position between meshes in Maya and UE4 due to how UE4 requires to import a mesh with its pivot at world center. I was unable to come up with a solution without taking too much time.
Don’t think so, works fine here. Guess it won’t matter soon enough with a proper binary version.
Ha ha I wish, but no its porting someone else’s legacy game/editor to current gen consoles
Awesome! I remember hearing Autodesk is working on a live link feature as well, but have not seen anything of that publicly. I love these instant feedback workflows!
Ah, setting the matrix to identity using xform will remove any pivot offsets even if not explicitly telling xform to edit the pivot. I didn’t expect that and I guess I never tested exporting an object with a moved pivot. Now that all makes sense, thx
Btw, I forgot to mention that the UI stuff is now packed into submodules, so the code to show the UI changed:
import m2u
m2u.core.initialize("maya","ue4")
m2u.core.getProgram().ui.createUI()
and for people changing the code very often while developing, there is an easy way to ‘reset’ m2u without having to restart maya, just define the following function, execute it and do the import, initialize, show-ui steps again:
import sys
# remove all m2u modules from sys
def remove_m2u_modules():
mods = list()
for mod in sys.modules:
if "m2u" in mod:
mods.append(mod)
for mod in mods:
del sys.modules[mod]
m2u=None
If you have left-over script jobs that were created by m2u, you can kill them by killing all user-created script jobs:
# delete script jobs
import pymel.core as pm
pm.scriptJob(killAll=True)
there may still be occasions where you won’t get around restarting maya, for example if you have left-over registered callbacks lying around, unable to find the python code they were supposed to execute.
small update:
- Refactored a lot of the c++ code, the operations are now packed into classes.
- When sending objects to the Editor and an Actor with the same name already exists, it is updated (transformations currently only) instead of another object added on top. So sending the whole scene more than once should not generate unnecessary duplicates.
Cool, sounds like my “Export To Editor” button will be obsolete.
well, it is still there kind of, the second button in the Send/Export group will only do an export-and-import but no level-assembly, useful when you are just updating geometry.
The concept of the Send and Export-operations is to do as less work as possible (though not completely implemented that way yet, but i’m working on it! ), which means:
*Send Scene to Editor:
Goal: assemble the scene in the Editor, do as less work as possible
- show the Export-Window ONLY if ‘untagged’ assets or ‘tagged discrepancy’ were detected
- export to file-system ONLY if there are no files on disk yet for that asset
- import into Editor ONLY if the asset does not exist yet
*Export Asset to Editor
Goal: create or update the raw Asset-data (geometry)
- show the Export-Window ONLY if ‘untagged’ assets or ‘tagged discrepancy’ were detected
- export to file-system ALWAYS (overwrite!)
- import into Editor ALWAYS (or maybe do a timestamp-check on the file on disk and import only if newer)
The idea is to annoy the user as less as possible with more UI steps and to keep time-consuming operations (like writing files to disk) to a minimum.
Therefore, if all objects in the Maya-scene already are ‘tagged’ (have an Asset-Path), no exporting needs to take place when using “Send” because the goal is to assemble the scene, not export geometry.
Because sometimes you want to explicitly change the asset-path of a certain object you are exporting or so, the option to always show the Export-Window is available. Still the file-write tasks would be kept to a minimum. I might add the settings option to always force an export-to-file and import-to-editor for the Send-operation.
The main change now is that you don’t have to pay attention when you added new meshes and have already synced objects also selected when doing a Send.
Wow this looks sweet!
Oh ok, “instead of another object added on top” sounded a lot like what I got around with that new button, but I can see you’re taking this much further.
Here are my fixes for 4.6, for what it’s worth: Bitbucket
I don’t suppose a pull request will make sense now?
Nope, didn’t yet have the chance to access some real internet connection to do the update.
I mean, you can issue the pull-request, I will take a look at it, and the best option would generally be to encapsulate the changes in an
#if ENGINE_MINOR_VERSION == 6
if that is possible, so the code would still compile for lower versions.
Or wait until I have updated, then i will take a look at your changes and will implement it accordingly
Ok created a pull request. Very minor changes really, some are just cosmetic things even that I came across when checking the code. Do with it whatever you want.
Oh yeah and the editor change didn’t make it into 4.6. Next version then.
I have a little problem with the plugin, everything works fine, but when I use the Fast Fetch Selected does not work and the following message appears in Maya:
// Error: Use syntax: FBXImport -f “filename” -t take_index_zero_based] -e extract_folder] //
Traceback (most recent call last):
File “C: \ Users \ SagaGames \ Documents \ maya \ 2015-x64 \ scripts \ M2U \ EU4 \ ui \ ue4PSUIFetchWidget.py”, line 46, in fetchSelectedBtnClicked
Editor.ue4Export.fetchSelectedObjects # ()
File “C: \ Users \ SagaGames \ Documents \ maya \ 2015-x64 \ scripts \ M2U \ EU4 \ ue4Export.py”, line 32, in fetchSelectedObjects
Prog.importFile (path)
File “C: \ Users \ SagaGames \ Documents \ maya \ 2015-x64 \ scripts \ M2U \ maya \ mayaCommand.py”, line 60, in ImportFile
Pm.mel.eval (cmd)
File “C: \ Program Files \ Autodesk \ Maya2015 \ Python \ lib \ site-packages \ pymel \ core \ language.py”, line 835, in eval
Raise and message
Pymel.core.language.MelError #: # Error during execution of MEL script: Use syntax: FBXImport -f “filename” -t take_index_zero_based] -e extract_folder]
Script:
FBXImport -f “c: /users/sagaga~1/appdata/local/temp/m2uTempExport.fbx”
And the following message appears in the EU4 log:
LogM2U: Warning: Command not found: FetchSelected “c: \ users \ sagaga ~ 1 \ AppData \ Local \ Temp \ m2uTempExport.fbx”
Does anyone know how to solve this ??
One more thing, @ congratulations plugin is fantastic.