Compare commits
230 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 03ad7c0066 | |||
| 0681b53141 | |||
| 6f02b38b0e | |||
| 92c773dae9 | |||
| f48ade6390 | |||
| 63c4501b88 | |||
| 06e21c86ce | |||
| 9d484b00e9 | |||
| de9255f71c | |||
| 99528ea3e0 | |||
| bb342951a5 | |||
| 438a79177b | |||
| 08fc49c40f | |||
| d7e25b1192 | |||
| 1671422143 | |||
| a9620c0752 | |||
| 583beaf6fe | |||
| 126d2338f2 | |||
| 24b0c0ed8a | |||
| 07fc1cf000 | |||
| 8e0131b3a8 | |||
| 912a2d524c | |||
| 82a5124d64 | |||
| cca5bf903b | |||
| 4c0d4cb1c7 | |||
| ca64797641 | |||
| a49d9ee437 | |||
| 4c1cd6b8f8 | |||
| d6cda709a6 | |||
| 4bc0feb3a5 | |||
| 59aab7159a | |||
| 0a798bb21b | |||
| beaafce4fa | |||
| 6f77337832 | |||
| 07252d62df | |||
| ac615cd134 | |||
| a4f9f6e051 | |||
| 10de88cdc9 | |||
| e4fa34c984 | |||
| 0dd685d009 | |||
| 3e8c30c0ab | |||
| 21cc3cd917 | |||
| 81e620ee3d | |||
| fb9bd108bd | |||
| 4846fbb589 | |||
| cab6625399 | |||
| 1b81251a11 | |||
| cf44e547a2 | |||
| 0269363c63 | |||
| 4ffca17c54 | |||
| 77bf269fb5 | |||
| 1e675132d4 | |||
| 781287c390 | |||
| fc91b252f4 | |||
| 41c7c569ca | |||
| a82d263f05 | |||
| d4476baa1b | |||
| 467e98906e | |||
| 64a25f94a3 | |||
| e6996316be | |||
| cf4cd94096 | |||
| e9ab633aac | |||
| 297639e80f | |||
| f0cc63b6f0 | |||
| d433e8f241 | |||
| 963a551a1e | |||
| d01a434fb7 | |||
| 3a5a5fc633 | |||
| 8926ab44e1 | |||
| a8f96581c5 | |||
| 440a4cc1cd | |||
| a207c51973 | |||
| e706c8e0bf | |||
| e590e896da | |||
| 4140b62a8e | |||
| 6d9c9c4532 | |||
| e9e1911840 | |||
| ab350ca7bc | |||
| 0a8f0b5f88 | |||
| 2238a15c11 | |||
| de73f022e6 | |||
| f517205647 | |||
| f33c3d8481 | |||
| 71c69000ec | |||
| de1e684b3c | |||
| d87730cffb | |||
| 3f005b86ab | |||
| 5098e5135d | |||
| 37cfed489c | |||
| 9003abcd18 | |||
| a199e0df00 | |||
| 3774419b7e | |||
| 3e552cb406 | |||
| 9f381b44c8 | |||
| ad795caed5 | |||
| 504dd77405 | |||
| 82022c9e4d | |||
| d81b4dc014 | |||
| 63affa079f | |||
| fcf5a12dd0 | |||
| b0529e4444 | |||
| bdfd89c085 | |||
| ff1630f9cc | |||
| 5830fe1abb | |||
| c609f72080 | |||
| a28a6f91bd | |||
| a996f39d3b | |||
| 7790a16034 | |||
| 836fdd02b8 | |||
| 7cb3482353 | |||
| 041022056c | |||
| 05f3eb1445 | |||
| 17193bde3a | |||
| a14b4313f5 | |||
| b203d9dffd | |||
| f64db2155e | |||
| e07ebdeff5 | |||
| 3d6453f7a2 | |||
| 7421511079 | |||
| bc24525cec | |||
| 699cf578e2 | |||
| e9b4afb440 | |||
| 0c6491590e | |||
| b87e733ddc | |||
| cb0962b484 | |||
| 1fc25412ac | |||
| b5405553dc | |||
| a1b6fb0533 | |||
| b6a8a2ec01 | |||
| 3e41b18af1 | |||
| f7c4f5d1fe | |||
| c616054878 | |||
| 5c08493774 | |||
| af8a138b4f | |||
| 6d9216f14a | |||
| fc4fb088bb | |||
| 98553ba00c | |||
| 1e15a12b10 | |||
| 569543650f | |||
| 07358802f7 | |||
| a059fafe12 | |||
| 297f68ccfe | |||
| c9c70d1e08 | |||
| a34f58ef3f | |||
| e7b7f38991 | |||
| 392e0aaaa3 | |||
| 4c774d5d53 | |||
| 4c4cf8a970 | |||
| 211d0848c2 | |||
| c9665c4719 | |||
| 431fe0d840 | |||
| df7ca66ad8 | |||
| c2d2db78e6 | |||
| ad89a4e389 | |||
| 6ca6d4443d | |||
| 81c9b5fc06 | |||
| 9fddfe084c | |||
| ca40523393 | |||
| 76e28ced21 | |||
| 55c6002b28 | |||
| 8d5c8aded3 | |||
| 8ebba80b97 | |||
| 50d6c6b3c8 | |||
| f0b03c50f2 | |||
| 28e83a38e6 | |||
| 2e261cd66b | |||
| 3f6e4f7333 | |||
| 49fadf084a | |||
| e2e0dc31c1 | |||
| 389bbd97d5 | |||
| 19602691d3 | |||
| 2e2ff5d4bf | |||
| fef6559ce0 | |||
| 5f669fd49a | |||
| 330ff08fd3 | |||
| f3be8f9623 | |||
| ffb70ab74c | |||
| 26140eefb2 | |||
| cdf0433e8a | |||
| acd70f73bf | |||
| 36c3a9ab0b | |||
| cfb1afdd72 | |||
| 4eeb80350e | |||
| fb1c985f31 | |||
| 689c2473d6 | |||
| 41620fce90 | |||
| 249bcf827b | |||
| d47eab4f26 | |||
| f011089d82 | |||
| acc58a1c9f | |||
| 24d850de9f | |||
| b045911a59 | |||
| a67be76422 | |||
| 32033c743c | |||
| 5da8650611 | |||
| aec5096f87 | |||
| fba39b9980 | |||
| 6af3e4b777 | |||
| 58d639e9d8 | |||
| 0efe5d5a10 | |||
| 2ad93cf304 | |||
| 771d76a98b | |||
| 1e83241494 | |||
| 1bcbff3ed4 | |||
| 9a45fe7125 | |||
| 207901afdd | |||
| c6eb1ba22f | |||
| ba4168d0fd | |||
| 00e7adf022 | |||
| d9d8ca7ca0 | |||
| e8cd271bd8 | |||
| e71af6402c | |||
| dd1c6a4fc7 | |||
| 7fe1ae83b1 | |||
| a7ad9d30c3 | |||
| 14779be1ed | |||
| a36c3740cc | |||
| d2108facab | |||
| e5651151d9 | |||
| 3a02711baa | |||
| c7e8002fed | |||
| f4e7ec6be8 | |||
| 235db712fd | |||
| 647ac46c01 | |||
| 8e3c86561f | |||
| dba19e831d | |||
| 93df5ca5fa | |||
| b17104c67e | |||
| 875b9ce934 | |||
| 2d638ef76f |
@@ -13,4 +13,5 @@ multi_user_updater/
|
||||
_build
|
||||
|
||||
# ignore generated zip generated from blender_addon_tester
|
||||
*.zip
|
||||
*.zip
|
||||
libs
|
||||
@@ -8,3 +8,5 @@ build:
|
||||
name: multi_user
|
||||
paths:
|
||||
- multi_user
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
|
||||
@@ -5,6 +5,7 @@ deploy:
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
|
||||
services:
|
||||
- docker:19.03.12-dind
|
||||
|
||||
@@ -3,3 +3,5 @@ test:
|
||||
image: slumber/blender-addon-testing:latest
|
||||
script:
|
||||
- python3 scripts/test_addon.py
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
@@ -0,0 +1,3 @@
|
||||
[submodule "multi_user/libs/replication"]
|
||||
path = multi_user/libs/replication
|
||||
url = https://gitlab.com/slumber/replication.git
|
||||
|
||||
@@ -186,4 +186,34 @@ All notable changes to this project will be documented in this file.
|
||||
- Exception access violation during Undo/Redo
|
||||
- Sync missing armature bone Roll
|
||||
- Sync missing driver data_path
|
||||
- Constraint replication
|
||||
- Constraint replication
|
||||
|
||||
## [0.4.0] - 2021-07-20
|
||||
|
||||
### Added
|
||||
|
||||
- Connection preset system (@Kysios)
|
||||
- Display connected users active mode (users pannel and viewport) (@Kysios)
|
||||
- Delta-based replication
|
||||
- Sync timeline marker
|
||||
- Sync images settings (@Kysios)
|
||||
- Sync parent relation type (@Kysios)
|
||||
- Sync uv project modifier
|
||||
- Sync FCurves modifiers
|
||||
|
||||
### Changed
|
||||
|
||||
- User selection optimizations (draw and sync) (@Kysios)
|
||||
- Improved shapekey syncing performances
|
||||
- Improved gpencil syncing performances
|
||||
- Integrate replication as a submodule
|
||||
- The dependencies are now installed in a folder(blender addon folder) that no longer requires administrative rights
|
||||
- Presence overlay UI optimization (@Kysios)
|
||||
|
||||
### Fixed
|
||||
|
||||
- User selection bounding box glitches for non-mesh objects (@Kysios)
|
||||
- Transforms replication for animated objects
|
||||
- GPencil fill stroke
|
||||
- Sculpt and GPencil brushes deleted when joining a session (@Kysios)
|
||||
- Auto-updater doesn't work for master and develop builds
|
||||
|
||||
@@ -11,9 +11,8 @@ This tool aims to allow multiple users to work on the same scene over the networ
|
||||
|
||||
## Quick installation
|
||||
|
||||
1. Download latest release [multi_user.zip](https://gitlab.com/slumber/multi-user/-/jobs/artifacts/master/download?job=build).
|
||||
2. Run blender as administrator (dependencies installation).
|
||||
3. Install last_version.zip from your addon preferences.
|
||||
1. Download [latest build](https://gitlab.com/slumber/multi-user/-/jobs/artifacts/develop/download?job=build) or [stable build](https://gitlab.com/slumber/multi-user/-/jobs/artifacts/master/download?job=build).
|
||||
2. Install last_version.zip from your addon preferences.
|
||||
|
||||
[Dependencies](#dependencies) will be automatically added to your blender python during installation.
|
||||
|
||||
@@ -29,35 +28,35 @@ See the [troubleshooting guide](https://slumber.gitlab.io/multi-user/getting_sta
|
||||
|
||||
Currently, not all data-block are supported for replication over the wire. The following list summarizes the status for each ones.
|
||||
|
||||
| Name | Status | Comment |
|
||||
| -------------- | :----: | :----------------------------------------------------------: |
|
||||
| action | ✔️ | |
|
||||
| armature | ❗ | Not stable |
|
||||
| camera | ✔️ | |
|
||||
| collection | ✔️ | |
|
||||
| curve | ❗ | Nurbs surfaces not supported |
|
||||
| gpencil | ✔️ | |
|
||||
| image | ✔️ | |
|
||||
| mesh | ✔️ | |
|
||||
| material | ✔️ | |
|
||||
| node_groups | ❗ | Material & Geometry only |
|
||||
| geometry nodes | ✔️ | |
|
||||
| metaball | ✔️ | |
|
||||
| object | ✔️ | |
|
||||
| textures | ❗ | Supported for modifiers/materials/geo nodes only |
|
||||
| texts | ✔️ | |
|
||||
| scene | ✔️ | |
|
||||
| world | ✔️ | |
|
||||
| lightprobes | ✔️ | |
|
||||
| compositing | ❌ | [Planned](https://gitlab.com/slumber/multi-user/-/issues/46) |
|
||||
| texts | ❌ | [Planned](https://gitlab.com/slumber/multi-user/-/issues/81) |
|
||||
| nla | ❌ | |
|
||||
| volumes | ✔️ | |
|
||||
| particles | ❗ | The cache isn't syncing. |
|
||||
| speakers | ❗ | [Partial](https://gitlab.com/slumber/multi-user/-/issues/65) |
|
||||
| vse | ❗ | Mask and Clip not supported yet |
|
||||
| physics | ❌ | [Planned](https://gitlab.com/slumber/multi-user/-/issues/45) |
|
||||
| libraries | ❗ | Partial |
|
||||
| Name | Status | Comment |
|
||||
| -------------- | :----: | :---------------------------------------------------------------------: |
|
||||
| action | ✔️ | |
|
||||
| camera | ✔️ | |
|
||||
| collection | ✔️ | |
|
||||
| gpencil | ✔️ | |
|
||||
| image | ✔️ | |
|
||||
| mesh | ✔️ | |
|
||||
| material | ✔️ | |
|
||||
| node_groups | ✔️ | Material & Geometry only |
|
||||
| geometry nodes | ✔️ | |
|
||||
| metaball | ✔️ | |
|
||||
| object | ✔️ | |
|
||||
| texts | ✔️ | |
|
||||
| scene | ✔️ | |
|
||||
| world | ✔️ | |
|
||||
| volumes | ✔️ | |
|
||||
| lightprobes | ✔️ | |
|
||||
| physics | ✔️ | |
|
||||
| textures | ✔️ | |
|
||||
| curve | ❗ | Nurbs surfaces not supported |
|
||||
| armature | ❗ | Only for Mesh. [Planned for GPencil](https://gitlab.com/slumber/multi-user/-/issues/161). Not stable yet |
|
||||
| particles | ❗ | The cache isn't syncing. |
|
||||
| speakers | ❗ | [Partial](https://gitlab.com/slumber/multi-user/-/issues/65) |
|
||||
| vse | ❗ | Mask and Clip not supported yet |
|
||||
| libraries | ❌ | |
|
||||
| nla | ❌ | |
|
||||
| texts | ❌ | [Planned for v0.5.0](https://gitlab.com/slumber/multi-user/-/issues/81) |
|
||||
| compositing | ❌ | [Planned for v0.5.0](https://gitlab.com/slumber/multi-user/-/issues/46) |
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -19,10 +19,10 @@ import sys
|
||||
|
||||
project = 'multi-user'
|
||||
copyright = '2020, Swann Martinez'
|
||||
author = 'Swann Martinez, with contributions from Poochy'
|
||||
author = 'Swann Martinez, Poochy, Fabian'
|
||||
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = '0.2.0'
|
||||
release = '0.5.0-develop'
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 70 KiB After Width: | Height: | Size: 365 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 320 KiB |
|
After Width: | Height: | Size: 7.3 KiB |
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
After Width: | Height: | Size: 3.2 KiB |
@@ -108,36 +108,69 @@ Before starting make sure that you have access to the session IP address and por
|
||||
1. Fill in your user information
|
||||
--------------------------------
|
||||
|
||||
Follow the user-info_ section for this step.
|
||||
Joining a server
|
||||
=======================
|
||||
|
||||
----------------
|
||||
2. Network setup
|
||||
----------------
|
||||
--------------
|
||||
Network setup
|
||||
--------------
|
||||
|
||||
In the network panel, select **JOIN**.
|
||||
The **join sub-panel** (see image below) allows you to configure your client to join a
|
||||
collaborative session which is already hosted.
|
||||
|
||||
.. figure:: img/quickstart_join.png
|
||||
:align: center
|
||||
:alt: Connect menu
|
||||
.. figure:: img/server_preset_image_normal_server.png
|
||||
:align: center
|
||||
:width: 200px
|
||||
|
||||
Connection panel
|
||||
Connection pannel
|
||||
|
||||
Fill in the fields with your information:
|
||||
|
||||
- **IP**: the host's IP address.
|
||||
- **Port**: the host's port number.
|
||||
- **Connect as admin**: connect yourself with **admin rights** (see :ref:`admin` ) to the session.
|
||||
|
||||
.. Maybe something more explicit here
|
||||
|
||||
.. note::
|
||||
Additional configuration settings can be found in the :ref:`advanced` section.
|
||||
|
||||
Once you've configured every field, hit the button **CONNECT** to join the session !
|
||||
When the :ref:`session-status` is **ONLINE** you are online and ready to start co-creating.
|
||||
|
||||
.. note::
|
||||
|
||||
If you want to have **administrator rights** (see :ref:`admin` ) on the server, just enter the password created by the host in the **Connect as admin** section
|
||||
|
||||
.. figure:: img/server_preset_image_admin.png
|
||||
:align: center
|
||||
:width: 200px
|
||||
|
||||
Admin password
|
||||
|
||||
---------------
|
||||
Server presets
|
||||
---------------
|
||||
|
||||
You can save your server presets in a preset list below the 'JOIN' and 'HOST' buttons. This allows you to quickly access and manage your servers.
|
||||
|
||||
To add a server, first enter the ip address and the port (plus the password if needed), then click on the + icon to add a name to your preset. To remove a server from the list, select it and click on the - icon.
|
||||
|
||||
.. figure:: img/server_preset_exemple.gif
|
||||
:align: center
|
||||
:width: 200px
|
||||
|
||||
.. warning:: Be careful, if you don't rename your new preset, or if it has the same name as an existing preset, the old preset will be overwritten.
|
||||
|
||||
.. figure:: img/server_preset_image_report.png
|
||||
:align: center
|
||||
:width: 200px
|
||||
|
||||
.. note::
|
||||
|
||||
Two presets are already present when the addon is launched:
|
||||
|
||||
- The 'localhost' preset, to host and join a local session quickly
|
||||
- The 'public session' preset, to join the public sessions of the multi-user server (official discord to participate : https://discord.gg/aBPvGws)
|
||||
|
||||
.. note::
|
||||
Additional configuration settings can be found in the :ref:`advanced` section.
|
||||
|
||||
.. note::
|
||||
When starting a **dedicated server**, the session status screen will take you to the **LOBBY**, awaiting an admin to start the session.
|
||||
|
||||
@@ -182,8 +215,10 @@ One of the most vital tools is the **Online user panel**. It lists all connected
|
||||
users' information including your own:
|
||||
|
||||
* **Role** : if a user is an admin or a regular user.
|
||||
* **Location**: Where the user is actually working.
|
||||
* **Username** : Name of the user.
|
||||
* **Mode** : User's active editing mode (edit_mesh, paint,etc.).
|
||||
* **Frame**: When (on which frame) the user is working.
|
||||
* **Location**: Where the user is actually working.
|
||||
* **Ping**: user's connection delay in milliseconds
|
||||
|
||||
.. figure:: img/quickstart_users.png
|
||||
@@ -240,6 +275,7 @@ it draw users' related information in your viewport such as:
|
||||
|
||||
* Username
|
||||
* User point of view
|
||||
* User active mode
|
||||
* User selection
|
||||
|
||||
.. figure:: img/quickstart_presence.png
|
||||
@@ -374,15 +410,6 @@ Network
|
||||
|
||||
Advanced network settings
|
||||
|
||||
**IPC Port** is the port used for Inter Process Communication. This port is used
|
||||
by the multi-user subprocesses to communicate with each other. If different instances
|
||||
of multi-user are using the same IPC port, this will create conflict !
|
||||
|
||||
.. note::
|
||||
You only need to modify this setting if you need to launch multiple clients from the same
|
||||
computer (or if you try to host and join from the same computer). To resolve this, you simply need to enter a different
|
||||
**IPC port** for each blender instance.
|
||||
|
||||
**Timeout (in milliseconds)** is the maximum ping authorized before auto-disconnecting.
|
||||
You should only increase it if you have a bad connection.
|
||||
|
||||
|
||||