Comments (12)
Hi, thanks for your interest and for your idea ! Indeed an integration of Godot could be great (Maya too as mentionned in your other issue, but personally I prefer open source technologies haha).
We started reflections about how we can cleanly mix different client types. For now we only have Blender and VRtist, our internal VR app, and the architecture and the protocol has evolved according to our needs.
After only a few months we think it is already a bit bloated, and makes the code hard to read for an external developer. So before trying to add other clients types, we want to rework this. We'll be sure to think about other use case than ours, like Godot and Maya.
If you want to explore by yourself how to connect Godot to a Mixer session, feel free to fork Mixer and experiment things. If you want more details abour the protocol, you can read https://github.com/ubisoft/mixer/blob/master/doc/protocol.md.
To know more about how we synchronize data between Blender and VRtist, read this https://github.com/ubisoft/mixer/blob/master/doc/synchronization.md.
For the source code, you can focus on these files for client-server interactions:
- https://github.com/ubisoft/mixer/blob/master/mixer/broadcaster/apps/server.py
- https://github.com/ubisoft/mixer/blob/master/mixer/broadcaster/client.py
- https://github.com/ubisoft/mixer/blob/master/mixer/broadcaster/common.py
- https://github.com/ubisoft/mixer/blob/master/mixer/blender_client/__init__.py
- https://github.com/ubisoft/mixer/blob/master/mixer/handlers.py
from mixer.
As mentioned in #6, closing this issue in favor of https://gitlab.com/ubisoft-animation-studio/mixer/-/issues/8.
from mixer.
Blender itself has tons of import / export addons shipped with it by default that py or a button click can call.
using the BPY api + a little time I am sure you can set something up that is one click to export and run a project like UPBGE.
basically everything you need already exists within blender I believe, you just need a little addon to call all the pieces that is calibrated correctly for that export pipe*
gltf format, etc.
from mixer.
I don't understand.
The synchronisation mechanism was originally developed for our VRtist software that include a Unity VR client. As a consequence, the data that are synchronised for VRtist are selected for their relevance to VRtist and the the synchronization "cooks" Blender data into VRtist related messages.
I was referring to this protocol.
from mixer.
As far as I know Unity has horrific support for glTF2. FBX support is painful to implement and Blender doesn't support the full format. Not sure how this is done.
from mixer.
fire - you can use blender in VR -> create your assets in VR -> export them in any format to godot -> open them in godots VR tools / engine
you need to wrap this process -
Blender is not near ready yet for all this yet though
they are still at the 'scene inspection stage' - https://developer.blender.org/T68998
from mixer.
You are not answering the question. This is a issue for the mixer protocol. I can do your process in any possible way. The question is for mixer's protocol which was noted to exist.
No. I don't care about the blender VR process. Exporting the blender plugin as gltf2 will run into the slow export bug in glTF2. It will take several minutes as noted in KhronosGroup/glTF-Blender-IO#1120 and may use up to several gigabytes of ram.
I'm expecting some sort of walk-through of the mixer protocol in tcp/ip and maybe some insight in Ubisoft's Unity VRtist app.
from mixer.
This response is excellent.
Did you document the way bpy.types.Mesh is serialized?
I am trying to understand how one node's mesh is sent game engine. I was wondering if I need to decode the mesh format into one the Godot Game engine understands.
I would also like to support animations.
from mixer.
No we have no documentation for this part right now, but most of the code for meshes sync is in https://github.com/ubisoft/mixer/blob/master/mixer/blender_client/mesh.py
Right now we send two meshes for each Blender mesh (with options to disable one or the other, for dev purpose): one triangulated and one "original". The triangulated is for consumption by VRtist, and I guess Godot might want one triangulated too. The other one is for Blender and also encodes Blender related data such as vertex weights, bevels, vertex groups, etc...
In the future the code for the triangulated one will probably be moved to a VRtist plugin, and the "original" one handling will be replaced by mechanics of our generic sync system (https://github.com/ubisoft/mixer/tree/master/mixer/blender_data). That is to say that right now you can use this code to experiment and test the system, but it will evolve a lot in the next weeks/months so you should expect required changes in your code too.
from mixer.
Hi, I was prototyping a python based version of the Mixer client in Godot Python. https://github.com/touilleMan/godot-python
Uploading Mixer Project.zip…
You have to extract and copy the python addon into the folder and use a Godot Engine executable with this zip.
- https://github.com/touilleMan/godot-python/releases/tag/v0.40.0
- https://godotengine.org/download/windows
The above is the extracted client, but I was hoping to see if the https://github.com/ubisoft/mixer/tree/master/mixer/broadcaster directory aka the protocol is more permissively licensed. This would really help.
This is currently missing the send scene "content" part of the protocol. So it hangs. Here's a screenshot.
See #6
from mixer.
I have a task to write design for integrating Mixer with Godot Engine.
from mixer.
Status update: waiting on Blender to be workable on LTS Blender 2.93.
from mixer.
Related Issues (20)
- Ubisoft Mixer HOT 1
- Blender 2.93.1 Cannot enter room, read-only AttributeError HOT 7
- Room layers HOT 1
- Crashes When Joining Room on 2.93.1 HOT 4
- Crashes When Joining Room on 2.92.0
- Blender 2.93.5 crashes when joining a room HOT 4
- Blender 2.93.5 crashes with Mixer 1.1.0-alpha2 HOT 2
- Convert six assignment statements to augmented source code
- Blender 2.93.6 Crash HOT 1
- Blender 3.0 release breaks HOT 2
- blender crashing when trying to use this addon HOT 1
- Cannot Connect (Missing Attribute) HOT 9
- Blender crashes after I or another people edit something
- Ignore
- Blender 3.0 Crash Upon clicking Join Room HOT 3
- Can't turn on Mixer
- no attribute 'binary_path_python' HOT 6
- my team and I have difficult connecting to the Mixer add on
- bpy.app object has no atribute "binary_path_python HOT 2
- Blender always crashes after joining a room (2.93) HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from mixer.