multi-user/README.md

106 lines
3.7 KiB
Markdown
Raw Normal View History

2019-08-09 06:55:53 +08:00
# Multi-user blender addon
2019-09-26 22:13:50 +08:00
> Enable real-time collaborative workflow inside blender
2019-09-26 23:16:19 +08:00
:warning: Under development, use it at your own risks. Currently tested on Windows platform. :warning:
This tool aims to allow multiple users to work on the same scene over the network. Based on a Clients / Server architecture, the data-oriented replication schema replicate blender datablocks across the wire.
2019-09-26 22:13:50 +08:00
## Installation
1. Download lastest release here.
2. Install last_version.zip from your addon preferences
2019-09-30 23:51:42 +08:00
---
2019-09-26 22:13:50 +08:00
## Usage
2019-09-26 23:16:19 +08:00
Settings are under: `View3D -> Sidebar -> Multiuser`
2019-09-30 23:17:00 +08:00
### Before starting
#### 1. Set user infos
2019-09-26 22:13:50 +08:00
2019-09-30 23:01:56 +08:00
![settings](medias/user.png)
2019-09-30 22:52:05 +08:00
2019-09-30 23:01:56 +08:00
- **name**: username.
- **color**: color used to represent the user into other user workspaces.
2019-09-30 22:52:05 +08:00
2019-09-30 23:17:00 +08:00
#### 2. setup network
:warning: If you host a session over internet, special network configuration is needed :warning:
2019-09-30 23:01:56 +08:00
2019-09-30 23:17:00 +08:00
| Host | Join |
| :------------------------------------------- | :----------------------------- |
2019-09-30 23:51:42 +08:00
| asd |
2019-09-30 23:17:00 +08:00
| ![host_panel](medias/host.png) | ![join_panel](medias/join.png) |
| Start empty: Cleanup the file before hosting | IP: host ip |
| | Port: host port |
2019-09-30 23:51:42 +08:00
#### 2.1 Advanced pannel
2019-09-30 23:24:02 +08:00
![properties](medias/properties.png)
2019-09-30 23:51:42 +08:00
**Right strategy** (only host) enable you to choose between a strict and a relaxed pattern:
- **Strict**: Host is the king, by default the host own each properties, only him can grant modification rights.
- **Common**: Each properties are under common rights by default, on selection, a property is only modifiable by the owner.
_On each strategy, when a user is the owner he can choose to pass his rights to somemone else._
**Propertie frequency gird** allow to set a custom replication frequency for each type of datablock
2019-09-30 23:24:02 +08:00
### In-session
2019-09-30 23:17:00 +08:00
#### Connected users pannel
![users](medias/users.png)
This pannel displays all connected users, including you. The camera button allow you to focus your 3D viewport on a user.
2019-09-30 23:24:02 +08:00
#### Properties outliner pannel
2019-09-30 22:52:05 +08:00
2019-09-30 23:24:02 +08:00
![properties](medias/properties_in_session.png)
2019-09-26 22:13:50 +08:00
## Current development statut
2019-09-30 23:17:00 +08:00
Actually, not all datablock are supported for replication over the wire. The following list summarizes the status for each ones.
2019-09-26 22:13:50 +08:00
2019-09-26 23:16:19 +08:00
| Name | Statut | Comment |
| ---------- | :----------------: | :--------: |
| action | :x: | WIP |
| armature | :x: | WIP |
| camera | :white_check_mark: | |
| collection | :white_check_mark: | |
| curve | :white_check_mark: | Not tested |
| gpencil | :white_check_mark: | |
| image | :white_check_mark: | Local only |
| mesh | :white_check_mark: | |
| material | :white_check_mark: | |
| metaball | :x: | |
| object | :white_check_mark: | |
| scene | :white_check_mark: | |
| world | :white_check_mark: | |
### Performance issues
Since this addon is writen in pure python for a prototyping purpose, perfomance could be better from all perspective. Soon I will start to port the multi-user addon concept to a blender branch.
2019-09-26 22:00:26 +08:00
2019-01-24 18:49:44 +08:00
## Dependencies
2019-07-01 22:03:40 +08:00
| Dependencies | Version | Needed |
2019-09-26 22:00:26 +08:00
| ------------ | :-----: | -----: |
2019-07-01 22:03:40 +08:00
| ZeroMQ | latest | yes |
2019-09-26 22:00:26 +08:00
| msgpack | latest | yes |
2019-07-01 22:03:40 +08:00
| PyYAML | latest | yes |
2019-08-12 21:29:16 +08:00
2019-09-26 22:00:26 +08:00
2019-08-12 21:29:16 +08:00
## Contributing
1. Fork it (<https://gitlab.com/yourname/yourproject/fork>)
2. Create your feature branch (`git checkout -b feature/fooBar`)
3. Commit your changes (`git commit -am 'Add some fooBar'`)
4. Push to the branch (`git push origin feature/fooBar`)
2019-09-26 23:16:19 +08:00
5. Create a new Pull Request