Compare commits
676 Commits
datablock_
...
248-object
Author | SHA1 | Date | |
---|---|---|---|
edfcdd8867 | |||
bdd6599614 | |||
047bd47048 | |||
d32cbb7b30 | |||
adabce3822 | |||
62f52db5b2 | |||
745f45b682 | |||
f84860f520 | |||
c7ee67d4dd | |||
7ed4644b75 | |||
e0c4a17be9 | |||
2a6181b832 | |||
0f7c9adec5 | |||
f094ec097c | |||
2495b5b0e7 | |||
cc829b66d1 | |||
97cec4f9af | |||
102eb3ded0 | |||
bea6373f03 | |||
8c3845349a | |||
9256d78d3c | |||
bb952a507f | |||
3669aafcff | |||
dfcfb84c20 | |||
5390e1a60c | |||
2910ea654b | |||
ff2ecec18b | |||
7555b1332a | |||
690e450349 | |||
3e7e3a9b19 | |||
e27a16975c | |||
44f1dc1aa8 | |||
c62ed63de3 | |||
de32bd89e3 | |||
50e86aea15 | |||
c05a12343c | |||
a09193fba2 | |||
60e21f2b8e | |||
421f00879f | |||
5ac61b5348 | |||
189e5c6cf1 | |||
964e6a8c63 | |||
80c81dc934 | |||
563fdb693d | |||
a64eea3cea | |||
03ad7c0066 | |||
d685573834 | |||
0681b53141 | |||
6f02b38b0e | |||
92c773dae9 | |||
f48ade6390 | |||
63c4501b88 | |||
06e21c86ce | |||
e28d3860da | |||
7b247372fb | |||
bc47ef951a | |||
de7417f0da | |||
9d484b00e9 | |||
de9255f71c | |||
61cdfd7eca | |||
99528ea3e0 | |||
bb342951a5 | |||
438a79177b | |||
947e9044c6 | |||
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 | |||
fb61b380b6 | |||
e538752fbc | |||
53eaaa2fcd | |||
a7e9108bff | |||
570909a7c4 | |||
736c3df7c4 | |||
8e606068f3 | |||
eb631e2d4b | |||
70641435cc | |||
552c649d34 | |||
d9d5a34653 | |||
12acd22660 | |||
826a59085e | |||
5ee4988aca | |||
cb85a1db4c | |||
5e30e215ab | |||
9f167256d0 | |||
4e19c169b2 | |||
9c633c35ec | |||
9610b50a49 | |||
67d18f08e2 | |||
9d0d684589 | |||
2446df4fe3 | |||
07862f1cf0 | |||
3a02711baa | |||
c7e8002fed | |||
f4e7ec6be8 | |||
480818fe85 | |||
b965c80ba5 | |||
235db712fd | |||
647ac46c01 | |||
8e3c86561f | |||
dba19e831d | |||
93df5ca5fa | |||
b17104c67e | |||
b66d0dd4ce | |||
9487753307 | |||
df1257ca4c | |||
875b9ce934 | |||
2d638ef76f | |||
cc5a87adb8 | |||
19c56e590b | |||
d0e80da945 | |||
0ccd0563ea | |||
1c3394ce56 | |||
d2b63df68e | |||
3d9c78c2f9 | |||
4726a90a4a | |||
73b763d85f | |||
5e29c6fe26 | |||
113ab81cbf | |||
d2215b662c | |||
238a34d023 | |||
55ca8a7b84 | |||
7049c1723d | |||
6586647eac | |||
fb6f170d60 | |||
c1c39438e3 | |||
317fc03f87 | |||
505f3ab770 | |||
209062af4f | |||
88bab2a4c6 | |||
a91bae3506 | |||
0a96643a9f | |||
261d4d9610 | |||
3293741969 | |||
3eee8db1ae | |||
031b143843 | |||
7dd6e38e3f | |||
1dd0235061 | |||
cdcb2de786 | |||
0b88631250 | |||
c00b2a2d7d | |||
1f0f44fdbf | |||
8262fb9d4e | |||
c2114b593e | |||
7e28ca3fa1 | |||
d0bd4193d9 | |||
d09479fd47 | |||
07cfb85561 | |||
cf0d7a1122 | |||
3f335c7031 | |||
2180db5206 | |||
e6110b4cea | |||
819598ebd9 | |||
1be43f0336 | |||
6a5ff9a097 | |||
86cb3d29fb | |||
589702dab7 | |||
ed76210270 | |||
75c4f42796 | |||
1fd54769b9 | |||
c4484b4b51 | |||
4eb787cc0f | |||
c855b5a424 | |||
ee4083c134 | |||
0325e9d0bd | |||
21dc95b5a7 | |||
d8161f22f3 | |||
94f8bff231 | |||
d3a1094cc2 | |||
d08e0a80a4 | |||
26148e9934 | |||
0a7be03c6f | |||
b6449a7da2 | |||
36038effdf | |||
cb90c196a5 | |||
ae3c9fe43e | |||
2983195af4 | |||
4d69faf186 | |||
2304563b6e | |||
1cfb4e797e | |||
8f95158f08 | |||
5949e3c5cc | |||
790f145022 | |||
ec40862dd0 | |||
9cc1c92e0e | |||
7a716b4c37 | |||
a4ef8a6344 | |||
c5e20085f0 | |||
f4463f9cfe | |||
a212445927 | |||
89a8891073 | |||
52ebb874b0 | |||
2913e6d5a7 | |||
6a00b58600 | |||
2bde136bb6 | |||
f5c77fec3a | |||
d3211199c4 | |||
2d90ea7679 | |||
abd846fc8d | |||
e3bd7ea445 | |||
12bd4a603b | |||
3c31fb5118 | |||
c24f70fad5 | |||
ca2d8e49b5 | |||
4b1499f6ae | |||
f0c1fe9c87 | |||
dfaf1be4ff | |||
51cb099c4c | |||
64731a9198 | |||
213523c8d6 | |||
4fdb72f874 | |||
1412fc638c | |||
7920f67aea | |||
a0c0f781e2 | |||
ec74ea0038 | |||
2c016833fd | |||
3d9da73ab0 | |||
2f4e30f432 | |||
cd1e535a56 | |||
8a8cc0b322 | |||
1e64e17ff4 | |||
66b6c06a2c | |||
45fbc46d8d | |||
39e3c1dbd5 | |||
f043b03128 | |||
ffe419a46e | |||
d4a0f782aa | |||
9273adbd01 | |||
03b92eb5e7 | |||
d0dc61bf66 | |||
056b3524e5 | |||
16fc4b8c54 | |||
e62f0682a2 | |||
f463cb82e7 | |||
54f416e8c3 | |||
682c983a64 | |||
8015881e29 | |||
6e2d36cd00 | |||
affab2414c | |||
af6d54296a | |||
2ab0a75608 | |||
ccb9e55920 | |||
31254d13c0 | |||
6fddbb6f5e | |||
9ee3f26b80 | |||
19c5ca0928 | |||
4bc35d7da4 | |||
8d19ffd52f | |||
4f506c461a | |||
49fcc40db9 | |||
8492b537a8 | |||
e6e4f6ab7a | |||
e073182028 | |||
78eb5d948c | |||
ac9a0f3733 | |||
4e7ade8f38 | |||
0b25264375 | |||
1d03fe4975 | |||
1273ab2371 | |||
7dd2ee5e70 | |||
c72bb21f20 | |||
5b43520353 | |||
7e25ca4c84 | |||
4a4cd5db50 | |||
7f19d45b71 | |||
37b3d6d094 | |||
64bb715aff | |||
3024b479d3 | |||
abf4462da6 | |||
aa6827303f | |||
254e8e8ca1 | |||
a63bf66023 | |||
983c5f9020 | |||
9f61335a85 | |||
ed0c5d9431 | |||
46414aef13 | |||
3841ed3330 | |||
47a281faff | |||
f0442861a8 | |||
039225a41c | |||
f1ffe37ac7 | |||
6ca7b42ab4 | |||
fbb32147b9 | |||
d85db295a5 | |||
0f1850bf2c | |||
8f4de7adbf | |||
320745aab3 | |||
40cec39d27 | |||
498616147b | |||
30b2f5d32e | |||
f7e98abb59 | |||
4022f300b3 | |||
cef45dad3c | |||
30d734c2c1 | |||
4391510d7b | |||
04a4f7668a | |||
908c0fa4af | |||
c718e62b33 | |||
2f34bba1fd | |||
db4e495183 | |||
c00a7184ff | |||
9c83df45fc | |||
17949003f7 | |||
371d793a13 | |||
c710111887 | |||
664f7635cc | |||
babecf5ae7 | |||
0bad6895da | |||
66e55a7eec | |||
4e2377cd7f | |||
f90c12b27f | |||
3573db0969 | |||
92bde00a5a | |||
2c82560d24 | |||
6f364d2b88 | |||
760b52c02b | |||
4dd932fc56 | |||
ba1a03cbfa | |||
18b5fa795c | |||
1a82ec72e4 | |||
804747c73b | |||
7ee705332f | |||
bed33ca6ba | |||
716c78e380 | |||
5e4ce4556f | |||
aa9ea08151 | |||
f56890128e | |||
8865556229 | |||
5bc9b10c12 | |||
7db3c18213 | |||
ff35e34032 | |||
9f8222afa7 | |||
1828bfac22 | |||
3a1087ecb8 | |||
b398541787 | |||
f0b33d8471 | |||
5a282a3e22 | |||
4283fc0fff | |||
753f4d3f27 | |||
9dd02b2756 | |||
c74d12c843 | |||
e1d9982276 | |||
8861986213 | |||
1cb9fb410c | |||
c4a8cc4606 | |||
187f11071c | |||
530fae8cb4 | |||
6771c371a1 | |||
c844c6e54f | |||
a4d0b1a68b | |||
2fdc11692d | |||
dbfca4568f | |||
069a528276 | |||
030f2661fd | |||
e589e3eec4 | |||
04140ced1b | |||
0d9ce43e74 | |||
d3969b4fd4 | |||
e21f64ac98 | |||
b25b380d21 | |||
1146d9d304 | |||
51b60521e6 | |||
035f8a1dcd | |||
cefaef5c4b | |||
4714e60ff7 | |||
3eca25ae19 | |||
96346f8a25 | |||
a258c2c182 | |||
6862df5331 | |||
f271a9d0e3 | |||
bdff6eb5c9 | |||
b661407952 | |||
d5eb7fda02 | |||
35e8ac9c33 | |||
4453d256b8 | |||
299e330ec6 | |||
34b9f7ae27 | |||
9d100d84ad | |||
2f677c399e | |||
e967b35c38 | |||
7bd0a196b4 | |||
7892b5e9b6 | |||
f779678c0e | |||
629fc2d223 | |||
724c2345df | |||
673c4e69a4 | |||
fbfff6c7ec | |||
f592294335 | |||
8e7be5afde | |||
fc76b2a8e6 | |||
1a8bcddb74 | |||
60fba5b9df | |||
be0eb1fa42 | |||
93d9bea3ae | |||
022b7f7822 | |||
ae34846509 | |||
d328077cb0 | |||
0c4740eef8 | |||
d7b2c7e2f6 | |||
efbb9e7096 | |||
e0b56d8990 | |||
7a94c21187 | |||
0687090f05 | |||
920744334c | |||
dfa7f98126 | |||
ea530f0f96 | |||
c3546ff74f | |||
83aa9b57ec | |||
28a265be68 | |||
7dfabb16c7 | |||
ea5d9371ca | |||
3df73a0716 | |||
ae3c994ff1 | |||
bd73b385b6 | |||
f054b1c5f2 | |||
d083100a2a | |||
b813b8df9e | |||
d0e966ff1a | |||
56cbf14fe1 | |||
8bf55ebd46 | |||
edbc5ee343 | |||
4a92511582 | |||
b42df2cf4a | |||
7549466824 | |||
423e71476d | |||
3bc4b20035 | |||
9966a24b5e | |||
577c01a594 | |||
3d72796c10 | |||
edcbd7b02a | |||
b368c985b8 | |||
cab1a71eaa | |||
33cb188509 | |||
0a3dd9b5b8 | |||
7fbdbdcc21 | |||
8f9d5aabf9 | |||
824d4d6a83 | |||
5f4bccbcd9 | |||
8e8e54fe7d | |||
04b13cc0b7 | |||
ba98875560 | |||
a9fb84a5c6 | |||
2f139178d3 | |||
e466f81600 | |||
cb836e30f5 | |||
152e356dad | |||
7b13e8978b | |||
e0839fe1fb | |||
aec3e8b8bf | |||
a89564de6b | |||
e301a10456 | |||
cfc6ce91bc | |||
4f731c6640 | |||
9b1b8f11fd | |||
e742c824fc | |||
6757bbbd30 | |||
f6a39e4290 | |||
410d8d2f1a | |||
bd64c17f05 | |||
dc063b5954 | |||
0ae34d5702 | |||
167b39f15e | |||
9adc0d7d6e | |||
fb622fa098 | |||
c533d4b86a | |||
6c47e095be | |||
f992d06b03 | |||
af3afc1124 | |||
b77ab2dd05 | |||
150054d19c | |||
56ea93508c | |||
5f95eadc1d | |||
40ad96b0af |
3
.gitignore
vendored
@ -13,4 +13,5 @@ multi_user_updater/
|
||||
_build
|
||||
|
||||
# ignore generated zip generated from blender_addon_tester
|
||||
*.zip
|
||||
*.zip
|
||||
libs
|
@ -1,7 +1,13 @@
|
||||
stages:
|
||||
- test
|
||||
- build
|
||||
- deploy
|
||||
- doc
|
||||
|
||||
|
||||
|
||||
include:
|
||||
- local: .gitlab/ci/test.gitlab-ci.yml
|
||||
- local: .gitlab/ci/build.gitlab-ci.yml
|
||||
- local: .gitlab/ci/build.gitlab-ci.yml
|
||||
- local: .gitlab/ci/deploy.gitlab-ci.yml
|
||||
- local: .gitlab/ci/doc.gitlab-ci.yml
|
||||
|
@ -1,15 +1,12 @@
|
||||
build:
|
||||
stage: build
|
||||
needs: ["test"]
|
||||
image: debian:stable-slim
|
||||
script:
|
||||
- rm -rf tests .git .gitignore script
|
||||
|
||||
artifacts:
|
||||
name: multi_user
|
||||
paths:
|
||||
- multi_user
|
||||
only:
|
||||
refs:
|
||||
- master
|
||||
- develop
|
||||
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
|
21
.gitlab/ci/deploy.gitlab-ci.yml
Normal file
@ -0,0 +1,21 @@
|
||||
deploy:
|
||||
stage: deploy
|
||||
needs: ["build"]
|
||||
image: slumber/docker-python
|
||||
variables:
|
||||
DOCKER_DRIVER: overlay2
|
||||
DOCKER_TLS_CERTDIR: "/certs"
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
||||
|
||||
services:
|
||||
- docker:19.03.12-dind
|
||||
|
||||
script:
|
||||
- RP_VERSION="$(python scripts/get_replication_version.py)"
|
||||
- VERSION="$(python scripts/get_addon_version.py)"
|
||||
- echo "Building docker image with replication ${RP_VERSION}"
|
||||
- docker build --build-arg replication_version=${RP_VERSION} --build-arg version={VERSION} -t registry.gitlab.com/slumber/multi-user/multi-user-server:${VERSION} ./scripts/docker_server
|
||||
- echo "Pushing to gitlab registry ${VERSION}"
|
||||
- docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY
|
||||
- docker tag registry.gitlab.com/slumber/multi-user/multi-user-server:${VERSION} registry.gitlab.com/slumber/multi-user/multi-user-server:${CI_COMMIT_REF_NAME}
|
||||
- docker push registry.gitlab.com/slumber/multi-user/multi-user-server
|
16
.gitlab/ci/doc.gitlab-ci.yml
Normal file
@ -0,0 +1,16 @@
|
||||
pages:
|
||||
stage: doc
|
||||
needs: ["deploy"]
|
||||
image: python
|
||||
script:
|
||||
- pip install -U sphinx sphinx_rtd_theme sphinx-material
|
||||
- sphinx-build -b html ./docs public
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
refs:
|
||||
- master
|
||||
- develop
|
||||
|
||||
|
@ -3,8 +3,5 @@ test:
|
||||
image: slumber/blender-addon-testing:latest
|
||||
script:
|
||||
- python3 scripts/test_addon.py
|
||||
|
||||
only:
|
||||
refs:
|
||||
- master
|
||||
- develop
|
||||
variables:
|
||||
GIT_SUBMODULE_STRATEGY: recursive
|
3
.gitmodules
vendored
@ -0,0 +1,3 @@
|
||||
[submodule "multi_user/libs/replication"]
|
||||
path = multi_user/libs/replication
|
||||
url = https://gitlab.com/slumber/replication.git
|
||||
|
173
CHANGELOG.md
@ -65,24 +65,185 @@ All notable changes to this project will be documented in this file.
|
||||
- Unused strict right management strategy
|
||||
- Legacy config management system
|
||||
|
||||
## [0.0.4] - preview
|
||||
## [0.1.0] - 2020-10-05
|
||||
|
||||
### Added
|
||||
|
||||
- Dependency graph driven updates [experimental]
|
||||
- Optional Edit Mode update
|
||||
- Edit Mode updates
|
||||
- Late join mechanism
|
||||
- Sync Axis lock replication
|
||||
- Sync collection offset
|
||||
- Sync camera orthographic scale
|
||||
- Logging basic configuration (file output and level)
|
||||
- Sync custom fonts
|
||||
- Sync sound files
|
||||
- Logging configuration (file output and level)
|
||||
- Object visibility type replication
|
||||
- Optionnal sync for active camera
|
||||
- Curve->Mesh conversion
|
||||
- Mesh->gpencil conversion
|
||||
|
||||
### Changed
|
||||
|
||||
- Auto updater now handle installation from branches
|
||||
- use uuid for collection loading
|
||||
- Use uuid for collection loading
|
||||
- Moved session instance to replication package
|
||||
|
||||
### Fixed
|
||||
|
||||
- Prevent unsuported datatypes to crash the session
|
||||
- Modifier vertex group assignation
|
||||
- Prevent unsupported data types to crash the session
|
||||
- Modifier vertex group assignation
|
||||
- World sync
|
||||
- Snapshot UUID error
|
||||
- The world is not synchronized
|
||||
|
||||
## [0.1.1] - 2020-10-16
|
||||
|
||||
### Added
|
||||
|
||||
- Session status widget
|
||||
- Affect dependencies during change owner
|
||||
- Dedicated server managment scripts(@brybalicious)
|
||||
|
||||
### Changed
|
||||
|
||||
- Refactored presence.py
|
||||
- Reset button UI icon
|
||||
- Documentation `How to contribute` improvements (@brybalicious)
|
||||
- Documentation `Hosting guide` improvements (@brybalicious)
|
||||
- Show flags are now available from the viewport overlay
|
||||
|
||||
### Fixed
|
||||
|
||||
- Render sync race condition (causing scene errors)
|
||||
- Binary differentials
|
||||
- Hybrid session crashes between Linux/Windows
|
||||
- Materials node default output value
|
||||
- Right selection
|
||||
- Client node rights changed to COMMON after disconnecting from the server
|
||||
- Collection instances selection draw
|
||||
- Packed image save error
|
||||
- Material replication
|
||||
- UI spelling errors (@brybalicious)
|
||||
|
||||
|
||||
## [0.2.0] - 2020-12-17
|
||||
|
||||
### Added
|
||||
|
||||
- Documentation `Troubleshouting` section (@brybalicious)
|
||||
- Documentation `Update` section (@brybalicious)
|
||||
- Documentation `Cloud Hosting Walkthrough` (@brybalicious)
|
||||
- Support DNS name
|
||||
- Sync annotations
|
||||
- Sync volume objects
|
||||
- Sync material node_goups
|
||||
- Sync VSE
|
||||
- Sync grease pencil modifiers
|
||||
- Sync textures (modifier only)
|
||||
- Session status widget
|
||||
- Disconnection popup
|
||||
- Popup with disconnection reason
|
||||
|
||||
|
||||
### Changed
|
||||
|
||||
- Improved GPencil performances
|
||||
|
||||
### Fixed
|
||||
|
||||
- Texture paint update
|
||||
- Various documentation fixes section (@brybalicious)
|
||||
- Empty and Light object selection highlights
|
||||
- Material renaming
|
||||
- Default material nodes input parameters
|
||||
- blender 2.91 python api compatibility
|
||||
|
||||
## [0.3.0] - 2021-04-14
|
||||
|
||||
### Added
|
||||
|
||||
- Curve material support
|
||||
- Cycle visibility settings
|
||||
- Session save/load operator
|
||||
- Add new scene support
|
||||
- Physic initial support
|
||||
- Geometry node initial support
|
||||
- Blender 2.93 compatibility
|
||||
### Changed
|
||||
|
||||
- Host documentation on Gitlab Page
|
||||
- Event driven update (from the blender deps graph)
|
||||
|
||||
### Fixed
|
||||
|
||||
- Vertex group assignation
|
||||
- Parent relation can't be removed
|
||||
- Separate object
|
||||
- Delete animation
|
||||
- Sync missing holdout option for grease pencil material
|
||||
- Sync missing `skin_vertices`
|
||||
- Exception access violation during Undo/Redo
|
||||
- Sync missing armature bone Roll
|
||||
- Sync missing driver data_path
|
||||
- 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
|
||||
|
||||
## [0.5.0] - 2022-02-10
|
||||
|
||||
### Added
|
||||
|
||||
- New overall UI and UX (@Kysios)
|
||||
- Documentation overall update (@Kysios)
|
||||
- Server presets (@Kysios)
|
||||
- Server online status (@Kysios)
|
||||
- Draw connected user color in the user list
|
||||
- Private session (access protected with a password) (@Kysios)
|
||||
|
||||
### Changed
|
||||
|
||||
- Dependencies are now installed in the addon folder and correctly cleaned during the addon removal process
|
||||
|
||||
### Fixed
|
||||
|
||||
- Python 3.10 compatibility (@notfood)
|
||||
- Blender 3.x compatibility
|
||||
- Skin vertex radius synchronization (@kromar)
|
||||
- Sequencer audio strip synchronization
|
||||
- Crash with empty after a reconnection
|
||||
|
||||
## [0.5.1] - 2022-02-10
|
||||
|
||||
### Fixed
|
||||
|
||||
- Auto updater breaks dependency auto installer
|
||||
- Auto updater update from tag
|
66
README.md
@ -11,41 +11,53 @@ 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.
|
||||
|
||||
## Usage
|
||||
|
||||
See the [documentation](https://multi-user.readthedocs.io/en/latest/) for details.
|
||||
See the [documentation](https://slumber.gitlab.io/multi-user/index.html) for details.
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
See the [troubleshooting guide](https://slumber.gitlab.io/multi-user/getting_started/troubleshooting.html) for tips on the most common issues.
|
||||
|
||||
## Current development status
|
||||
|
||||
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 | ❗ | Not stable |
|
||||
| armature | ❗ | Not stable |
|
||||
| camera | ✔️ | |
|
||||
| collection | ✔️ | |
|
||||
| curve | ✔️ | Nurbs surface don't load correctly |
|
||||
| gpencil | ✔️ | |
|
||||
| image | ❗ | Not stable yet |
|
||||
| mesh | ✔️ | |
|
||||
| material | ✔️ | |
|
||||
| metaball | ✔️ | |
|
||||
| object | ✔️ | |
|
||||
| scene | ✔️ | |
|
||||
| world | ✔️ | |
|
||||
| lightprobes | ✔️ | |
|
||||
| particles | ❌ | [On-going](https://gitlab.com/slumber/multi-user/-/issues/24) |
|
||||
| speakers | ❌ | [Planned](https://gitlab.com/slumber/multi-user/-/issues/65) |
|
||||
| vse | ❌ | [Planned](https://gitlab.com/slumber/multi-user/-/issues/45) |
|
||||
| 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) |
|
||||
|
||||
|
||||
|
||||
### Performance issues
|
||||
@ -57,13 +69,13 @@ I'm working on it.
|
||||
|
||||
| Dependencies | Version | Needed |
|
||||
| ------------ | :-----: | -----: |
|
||||
| Replication | latest | yes |
|
||||
| Replication | latest | yes |
|
||||
|
||||
|
||||
|
||||
## Contributing
|
||||
|
||||
See [contributing section](https://multi-user.readthedocs.io/en/latest/ways_to_contribute.html) of the documentation.
|
||||
See [contributing section](https://slumber.gitlab.io/multi-user/ways_to_contribute.html) of the documentation.
|
||||
|
||||
Feel free to [join the discord server](https://discord.gg/aBPvGws) to chat, seek help and contribute.
|
||||
|
||||
|
17
docs/about/community.rst
Normal file
@ -0,0 +1,17 @@
|
||||
=========
|
||||
Community
|
||||
=========
|
||||
|
||||
Discord
|
||||
=======
|
||||
|
||||
Feel free to join our `discord server <https://discord.gg/aBPvGws>`_ !
|
||||
|
||||
You will find help, a way to take part in the project, public collaborative sessions, people to create with, information about the addon's progress and much more.
|
||||
|
||||
.. TODO: Make a call on discord get a link / image for evry contributor ?
|
||||
|
||||
Contributors
|
||||
============
|
||||
|
||||
Swann, Fabian, NotFood, Poochyc, Valentin, Adrien, Tanguy, Bruno, Gorgio, Axel, Ultr-X, Wuaieyo, Softyoda, Staz, Ikxi, Kysios.
|
32
docs/about/features.rst
Normal file
@ -0,0 +1,32 @@
|
||||
============
|
||||
Key Features
|
||||
============
|
||||
|
||||
Multi-User is a free and open source blender addon.
|
||||
It 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 data-blocks across the wire.
|
||||
|
||||
.. warning::
|
||||
The addon is still in development Be carefull when using it.
|
||||
|
||||
On rare occasions, it can happen that your blender scenes become corrupted, think of making backups to avoid losing your projects.
|
||||
|
||||
Collaboration
|
||||
=============
|
||||
|
||||
Multi-User allows a strong collaborative workflow between users. Being able to collaborate in this way has opened up new opportunities:
|
||||
|
||||
|
||||
- Being able to create together and in real time on the same 3D scene, with instant feedback.
|
||||
- Being able to teach directly in the same 3D environment in real time, facilitating communication between the teacher and these students.
|
||||
- To be able to experiment with several people, to make challenges or simply to have fun.
|
||||
- And much more !
|
||||
|
||||
Easier communication
|
||||
====================
|
||||
|
||||
Thanks to *presence*, the overlay system that Multi-User provides, it is possible to see other users in the 3D space. The *presence* overlay is customizable to match your preferences (visibility, names, options).
|
||||
|
||||
Session management
|
||||
==================
|
||||
|
||||
The addon works on a session system. The creator of the session and the administrators have rights that allow them to easily manage the session (backups, user management). In addition, there is a management of datablock rights so that each user can collaborate as they wish.
|
@ -1,8 +1,10 @@
|
||||
About
|
||||
=====
|
||||
================
|
||||
About Multi-User
|
||||
================
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:name: toc-about
|
||||
:maxdepth: 2
|
||||
|
||||
introduction
|
||||
features
|
||||
community
|
||||
|
@ -1,7 +1,6 @@
|
||||
============
|
||||
Introduction
|
||||
============
|
||||
|
||||
========
|
||||
The idea
|
||||
========
|
||||
|
||||
A film is an idea carved along the whole production process by many different peoples. A traditional animation pipeline involve a linear succession of tasks. From storyboard to compositing by passing upon different step, its fundamental work flow is similar to an industrial assembly line. Since each step is almost a department, its common that one person on department B doesn't know what another person did on a previous step in a department A. This lack of visibility/communication could be a source of problems which could produce a bad impact on the final production result.
|
||||
|
||||
@ -12,4 +11,4 @@ A film is an idea carved along the whole production process by many different pe
|
||||
|
||||
Nowadays it's a known fact that real-time rendering technologies allows to speedup traditional linear production by reducing drastically the iteration time across different steps. All majors industrial CG solutions are moving toward real-time horizons to bring innovative interactive workflows. But this is a microscopic, per-task/solution vision of real-time rendering benefits for the animation production. What if we step-back, get a macroscopic picture of an animation movie pipeline and ask ourself how real-time could change our global workflow ? Could-it bring better ways of working together by giving more visibility between departments during the whole production ?
|
||||
|
||||
The multi-user addon is an attempt to experiment real-time parallelism between different production stage. By replicating blender data blocks over the networks, it allows different artists to collaborate on a same scene in real-time.
|
||||
The multi-user addon is an attempt to experiment real-time parallelism between different production stage. By replicating blender data blocks over the networks, it allows different artists to collaborate on a same scene in real-time.
|
67
docs/conf.py
@ -12,17 +12,16 @@
|
||||
#
|
||||
import os
|
||||
import sys
|
||||
# sys.path.insert(0, os.path.abspath('.'))
|
||||
|
||||
|
||||
# -- Project information -----------------------------------------------------
|
||||
|
||||
project = 'multi-user'
|
||||
project = 'Multi-User 0.5.0 Documentation'
|
||||
copyright = '2020, Swann Martinez'
|
||||
author = 'Swann Martinez'
|
||||
author = 'Swann Martinez, Poochy, Fabian'
|
||||
|
||||
# The full version, including alpha/beta/rc tags
|
||||
release = '0.0.2'
|
||||
version_release = '0.5.1-develop'
|
||||
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
@ -42,12 +41,15 @@ source_suffix = ".rst"
|
||||
# The master toctree document.
|
||||
master_doc = "index"
|
||||
|
||||
# General information about the projet
|
||||
projet = 'Multi-User %s Doc' % version_release
|
||||
|
||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||
# for a list of supported languages.
|
||||
#
|
||||
|
||||
# This is also used if you do content translation via gettext catalogs.
|
||||
# Usually you set "language" from the command line for these cases.
|
||||
language = 'python'
|
||||
language = 'en'
|
||||
|
||||
# List of patterns, relative to source directory, that match files and
|
||||
# directories to ignore when looking for source files.
|
||||
@ -60,28 +62,59 @@ exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store']
|
||||
# on_rtd is whether we are on readthedocs.org, this line of code grabbed from docs.readthedocs.org
|
||||
on_rtd = os.environ.get('READTHEDOCS', None) == 'True'
|
||||
|
||||
import sphinx_rtd_theme
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
html_theme_path = [sphinx_rtd_theme.get_html_theme_path()]
|
||||
html_theme = "default"
|
||||
|
||||
try:
|
||||
import sphinx_rtd_theme
|
||||
html_theme = 'sphinx_rtd_theme'
|
||||
del sphinx_rtd_theme
|
||||
except ModuleNotFoundError:
|
||||
pass
|
||||
|
||||
if on_rtd:
|
||||
using_rtd_theme = True
|
||||
|
||||
# Theme options
|
||||
|
||||
# Theme options are theme-specific and customize the look and feel of a theme
|
||||
# further. For a list of options available for each theme, see the
|
||||
# documentation.
|
||||
html_theme_options = {
|
||||
# 'typekit_id': 'hiw1hhg',
|
||||
# 'analytics_id': '',
|
||||
# 'sticky_navigation': True # Set to False to disable the sticky nav while scrolling.
|
||||
# 'logo_only': True, # if we have a html_logo below, this shows /only/ the logo with no title text
|
||||
'collapse_navigation': False, # Collapse navigation (False makes it tree-like)
|
||||
# 'display_version': True, # Display the docs version
|
||||
# 'navigation_depth': 4, # Depth of the headers shown in the navigation bar
|
||||
}
|
||||
|
||||
# Add any paths that contain custom themes here, relative to this directory.
|
||||
html_theme_path = []
|
||||
|
||||
if html_theme == "sphinx_rtd_theme":
|
||||
html_theme_options = {
|
||||
"analytics_id": "UA-1418081-1",
|
||||
# included in the title
|
||||
"display_version": False,
|
||||
"collapse_navigation": True,
|
||||
"navigation_depth": -1,
|
||||
}
|
||||
|
||||
extensions.append('sphinx_rtd_theme')
|
||||
|
||||
# The name for this set of Sphinx documents.
|
||||
# "<project> v<release> documentation" by default.
|
||||
html_title = "Multi-User Doc"
|
||||
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_logo = "resources/logo.png"
|
||||
html_favicon = "ressources/favicon.ico"
|
||||
html_static_path = ["resources"]
|
||||
|
||||
|
||||
if html_theme == "sphinx_rtd_theme":
|
||||
html_css_files = ["css/theme_overrides.css"]
|
||||
|
||||
# -- Options for HTMLHelp output ------------------------------------------
|
||||
|
||||
# Output file base name for HTML help builder.
|
||||
htmlhelp_basename = 'multiusrdoc'
|
||||
htmlhelp_basename = 'Multi-User Manual'
|
||||
|
||||
# sphinx-notfound-page
|
||||
# https://github.com/readthedocs/sphinx-notfound-page
|
||||
|
BIN
docs/general_settings/img/quickstart_import_session_data.png
Normal file
After Width: | Height: | Size: 106 KiB |
After Width: | Height: | Size: 20 KiB |
After Width: | Height: | Size: 80 KiB |
BIN
docs/general_settings/img/sidepannel_cache.png
Normal file
After Width: | Height: | Size: 9.3 KiB |
BIN
docs/general_settings/img/sidepannel_general_settings.png
Normal file
After Width: | Height: | Size: 7.7 KiB |
BIN
docs/general_settings/img/sidepannel_logging.png
Normal file
After Width: | Height: | Size: 3.0 KiB |
BIN
docs/general_settings/img/sidepannel_network.png
Normal file
After Width: | Height: | Size: 5.0 KiB |
BIN
docs/general_settings/img/sidepannel_replication.png
Normal file
After Width: | Height: | Size: 8.7 KiB |
BIN
docs/general_settings/img/sidepannel_userinfo.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
117
docs/general_settings/index.rst
Normal file
@ -0,0 +1,117 @@
|
||||
################
|
||||
General Settings
|
||||
################
|
||||
|
||||
This section contains optional settings to configure before a session.
|
||||
|
||||
.. figure:: img/sidepannel_general_settings.png
|
||||
:align: center
|
||||
|
||||
General Settings pannel
|
||||
|
||||
---------
|
||||
User info
|
||||
---------
|
||||
|
||||
.. figure:: img/sidepannel_userinfo.png
|
||||
:align: center
|
||||
|
||||
User Info settings
|
||||
|
||||
The **User Info** pannel is here to change your user name and use color.
|
||||
|
||||
-------
|
||||
Network
|
||||
-------
|
||||
|
||||
.. figure:: img/sidepannel_network.png
|
||||
:align: center
|
||||
|
||||
Network settings
|
||||
|
||||
**Timeout (in milliseconds)** is the maximum ping authorized before auto-disconnecting.
|
||||
You should only increase it if you have a bad connection.
|
||||
|
||||
-----
|
||||
Cache
|
||||
-----
|
||||
|
||||
.. figure:: img/sidepannel_cache.png
|
||||
:align: center
|
||||
|
||||
Cache settings
|
||||
|
||||
|
||||
Multi-user allows you to replicate external dependencies such as images (textures, hdris, etc...), movies, and sounds.
|
||||
On each client, the files will be stored in the multi-user cache folder.
|
||||
|
||||
|
||||
|
||||
**Cache directory** choose where cached files (images, sound, movies) will be saved.
|
||||
|
||||
**Clear memory filecache** will save memory space at runtime by removing the file content from memory as soon as it has been written to the disk.
|
||||
|
||||
**Clear cache** will remove all files from the cache folder.
|
||||
|
||||
.. warning:: Clearing the cache could break your scene images/movies/sounds if they are used in a blend file! Try saving the blend file and choosing 'Pack all into blend' before clearing the cache.
|
||||
|
||||
-------
|
||||
Logging
|
||||
-------
|
||||
|
||||
.. figure:: img/sidepannel_logging.png
|
||||
:align: center
|
||||
|
||||
Advanced log settings
|
||||
|
||||
**log level** allows you to set the level of detail captured in multi-user's logging output. Here is a brief description on the level of detail for each value of the logging parameter:
|
||||
|
||||
+-----------+-----------------------------------------------+
|
||||
| Log level | Description |
|
||||
+===========+===============================================+
|
||||
| ERROR | Shows only critical errors |
|
||||
+-----------+-----------------------------------------------+
|
||||
| WARNING | Shows only errors (of all kinds) |
|
||||
+-----------+-----------------------------------------------+
|
||||
| INFO | Shows only status-related messages and errors |
|
||||
+-----------+-----------------------------------------------+
|
||||
| DEBUG | Shows all possible information |
|
||||
+-----------+-----------------------------------------------+
|
||||
|
||||
|
||||
-----------------
|
||||
Save session data
|
||||
-----------------
|
||||
|
||||
.. danger::
|
||||
This is an experimental feature, it is still recommended to use regular .blend save.
|
||||
|
||||
The save session data allows you to create a backup of the session data.
|
||||
|
||||
When you hit the **save session data** button, the following popup dialog will appear.
|
||||
It allows you to choose the destination folder and if you want to run an auto-save.
|
||||
|
||||
.. figure:: img/quickstart_save_session_data_dialog.png
|
||||
:align: center
|
||||
|
||||
Save session data dialog.
|
||||
|
||||
If you enabled the auto-save option, you can cancel it from the **Cancel auto-save** button.
|
||||
|
||||
.. figure:: img/quickstart_save_session_data_cancel.png
|
||||
:align: center
|
||||
|
||||
Cancel session autosave.
|
||||
|
||||
|
||||
To import session data backups, use the following **Multiuser session snapshot** import dialog
|
||||
|
||||
.. figure:: img/quickstart_import_session_data.png
|
||||
:align: center
|
||||
|
||||
Import session data dialog.
|
||||
|
||||
.. note::
|
||||
It is not yet possible to start a session directly from a backup.
|
||||
|
||||
.. _advanced:
|
@ -1,59 +0,0 @@
|
||||
========
|
||||
Glossary
|
||||
========
|
||||
|
||||
|
||||
.. glossary::
|
||||
|
||||
.. _admin:
|
||||
|
||||
administrator
|
||||
|
||||
*A session administrator can manage users (kick) and have a write access on
|
||||
each datablock. He could also init a dedicated server repository.*
|
||||
|
||||
.. _session-status:
|
||||
|
||||
session status
|
||||
|
||||
*Located in the title of the multi-user panel, the session status show
|
||||
you the connection state.*
|
||||
|
||||
.. figure:: img/quickstart_session_status.png
|
||||
:align: center
|
||||
|
||||
Session status in panel title bar
|
||||
|
||||
All possible state are listed here with their meaning:*
|
||||
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| State | Description |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| WARMING UP DATA | Commiting local data |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| FETCHING | Dowloading snapshot from the server |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| AUTHENTIFICATION | Initial server authentication |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| ONLINE | Connected to the session |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| PUSHING | Init the server repository by pushing ours |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| INIT | Initial state |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| QUITTING | Exiting the session |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| LAUNCHING SERVICES | Launching local services. Services are spetialized daemons running in the background. ) |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
| LOBBY | The lobby is a waiting state triggered when the server repository hasn't been initiated yet |
|
||||
| | |
|
||||
| | Once initialized, the server will automatically launch all client in the **LOBBY**. |
|
||||
+--------------------+---------------------------------------------------------------------------------------------+
|
||||
|
||||
|
||||
.. _common-right:
|
||||
|
||||
common right
|
||||
|
||||
When a data block is under common right, it is available for everyone to modification.
|
||||
The rights will be given to the user that select it first.
|
54
docs/getting_started/how-to-host.rst
Normal file
@ -0,0 +1,54 @@
|
||||
.. _how-to-host:
|
||||
|
||||
|
||||
How to host a session
|
||||
=====================
|
||||
------------
|
||||
Local server
|
||||
------------
|
||||
|
||||
The multi-user add-on relies on a Client-Server architecture.
|
||||
The server is the heart of the collaborative session.
|
||||
It is what allows user's blender instances to communicate with each other.
|
||||
In simple terms, *Hosting a session* means *run a local server and connect the local client to it*.
|
||||
When we say **local server** we mean a server which is accessible from the LAN (Local Area Network) without requiring an internet connection.
|
||||
|
||||
.. _local-setup:
|
||||
|
||||
When the hosting process starts, the multi-user addon will launch a local server instance.
|
||||
In the **Hosting** panel configure your server according to:
|
||||
|
||||
.. figure:: img/first_time_server_host.png
|
||||
:align: center
|
||||
|
||||
Hosting panel
|
||||
|
||||
* **Init the session from**: the session initialisation method.
|
||||
|
||||
* **current scenes**: start with the data loaded in the current blend file.
|
||||
* **an empty scene**: clear the blend file's data and start over.
|
||||
|
||||
* **Port**: port on which the server is listening.
|
||||
* **Server password**: (*optional*) the server password.
|
||||
* **Admin password**: (*optional*) the session administration password.
|
||||
|
||||
Once everything is set up, you can hit the **Host** button to launch the session!
|
||||
|
||||
This will do two things:
|
||||
|
||||
* Start a local server
|
||||
* Connect you to it as an :ref:`admin`
|
||||
|
||||
.. danger::
|
||||
By starting from an empty scene, all of the blend data will be removed!
|
||||
Be sure to save your existing work before launching the session.
|
||||
|
||||
-------------
|
||||
Online server
|
||||
-------------
|
||||
|
||||
However, there are times when you will need to host a session over the internet.
|
||||
In this case, we strongly recommend that you read the :ref:`hosting_on_internet` tutorial.
|
||||
|
||||
During an online session, various actions are available to you, go to :ref:`how-to-manage` section to
|
||||
learn more about them.
|
104
docs/getting_started/how-to-join.rst
Normal file
@ -0,0 +1,104 @@
|
||||
.. _how-to-join:
|
||||
|
||||
How to join a session
|
||||
=====================
|
||||
|
||||
This section describes how to join a launched session.
|
||||
Before starting make sure that you have access to the session **IP address**, **port number** and that you have filled in your **user information** (name and color).
|
||||
|
||||
-----------
|
||||
Server List
|
||||
-----------
|
||||
|
||||
The server list allows you to manage your servers:
|
||||
|
||||
.. figure:: img/quickstart_serverlist.png
|
||||
:align: center
|
||||
:width: 200px
|
||||
|
||||
Server List
|
||||
|
||||
To connect to a server, select the one you want to join in the list and click on **Connect**.
|
||||
|
||||
To know if the server you want to join is online, you can refresh your server list with the button on the top right corner.
|
||||
Online status:
|
||||
|
||||
- **Red**: server is offline
|
||||
- **Green**: server is online
|
||||
|
||||
.. note::
|
||||
|
||||
If a server is secured with a password, a lock will be displayed next to the server name. You first need to enter the password of the server in its preset to join it.
|
||||
|
||||
.. figure:: img/quickstart_serverlist_private.png
|
||||
:align: center
|
||||
:width: 200px
|
||||
|
||||
It is possible to **add**, **delete** and even **modify** a **server preset** with the buttons located on the top right of the server list:
|
||||
|
||||
.. figure:: img/quickstart_serverlist_manage_buttons.png
|
||||
:align: center
|
||||
:width: 200px
|
||||
|
||||
Add, Remove, Edit Server Preset
|
||||
|
||||
.. note::
|
||||
|
||||
Two server presets are already present when the addon is launched:
|
||||
|
||||
- The 'localhost' preset, to 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)
|
||||
|
||||
-------------------
|
||||
Add a Server Preset
|
||||
-------------------
|
||||
|
||||
To add a server, you must first register it in the server list. Click on the **+** icon and fill in the window with the server settings:
|
||||
|
||||
.. figure:: img/quickstart_server_edit.png
|
||||
:align: center
|
||||
:width: 350px
|
||||
|
||||
Server Preset pop-up
|
||||
|
||||
- **Server name**: the name of the server.
|
||||
- **IP**: the host's IP address.
|
||||
- **Port**: the host's port number.
|
||||
- **Server password**: (*optional*) the server password.
|
||||
- **Admin password**: (*optional*) the session administration password.
|
||||
|
||||
Once you've configured every field, you can save the server preset by clicking **OK**.
|
||||
You can now select it in the server list to join the session !
|
||||
|
||||
.. 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.
|
||||
|
||||
----------------
|
||||
Joining a server
|
||||
----------------
|
||||
|
||||
CONNECT
|
||||
-------
|
||||
|
||||
When joining a server that have already be initialise, the session status screen will be **CONNECT**.
|
||||
You are now connected and can start creating.
|
||||
|
||||
.. figure:: img/quickstart_connect.png
|
||||
:align: center
|
||||
|
||||
In session
|
||||
|
||||
During an online session, various actions are available to you. Go to :ref:`how-to-manage` to
|
||||
learn more about them.
|
||||
|
||||
LOBBY
|
||||
-----
|
||||
|
||||
When starting a **dedicated server**, the session status screen will take you to the **LOBBY** (see side-panel header).
|
||||
|
||||
If the session status is set to **LOBBY** and you are a regular user, you need to wait for the admin to launch the scene (admins have shield next to their names).
|
||||
If you are the admin, you just need to initialise the session to start it (see image below).
|
||||
|
||||
.. figure:: img/quickstart_lobby.png
|
||||
:align: center
|
||||
|
||||
Session initialisation for dedicated server
|
135
docs/getting_started/how-to-manage.rst
Normal file
@ -0,0 +1,135 @@
|
||||
.. _how-to-manage:
|
||||
|
||||
How to manage a session
|
||||
=======================
|
||||
|
||||
The quality of a collaborative session directly depends on the quality of the network connection, and the communication between the users. This section describes
|
||||
various tools which have been made in an effort to ease the communication between your fellow creators.
|
||||
Feel free to suggest any ideas for communication tools `here <https://gitlab.com/slumber/multi-user/-/issues/75>`_ .
|
||||
|
||||
--------------------
|
||||
Monitor online users
|
||||
--------------------
|
||||
|
||||
One of the most vital tools is the **Online user panel**. It lists all connected
|
||||
users' information including your own:
|
||||
|
||||
* **Role** : admin/regular user.
|
||||
* **Username** : name of the user.
|
||||
* **Mode** : user's active mode (object, sculpt, paint,etc.).
|
||||
* **Frame**: 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
|
||||
:align: center
|
||||
|
||||
Online user panel
|
||||
|
||||
By selecting a user in the list you'll have access to different users' related **actions**.
|
||||
Those operators allow you to experience the selected user's state in two different dimensions: **SPACE** and **TIME**.
|
||||
|
||||
Snapping in space
|
||||
-----------------
|
||||
|
||||
The **CAMERA button** (Also called **snap view** operator) allow you to snap to
|
||||
the user's viewpoint. To disable the snap, click on the button once again. This action
|
||||
serves different purposes such as easing the review process, and working together on a large or populated world.
|
||||
|
||||
.. hint::
|
||||
If the target user is located in another scene, the **snap view** operator will send you to their scene.
|
||||
|
||||
.. figure:: img/quickstart_snap_camera.gif
|
||||
:align: center
|
||||
|
||||
Snap view in action
|
||||
|
||||
Snapping in time
|
||||
----------------
|
||||
|
||||
The **CLOCK button** (Also called **snap time** operator) allows you to snap to
|
||||
the user's time (current frame). To disable the snap, click on the button once again.
|
||||
This action helps various multiple creators to work in the same time-frame
|
||||
(for instance multiple animators).
|
||||
|
||||
.. figure:: img/quickstart_snap_time.gif
|
||||
:align: center
|
||||
|
||||
Snap time in action
|
||||
|
||||
|
||||
Kick a user
|
||||
-----------
|
||||
|
||||
.. warning:: Only available for :ref:`admin` !
|
||||
|
||||
|
||||
The **CROSS button** (Also called **kick** operator) allows the administrator to kick the selected user. This can be helpful if a user is acting unruly, but more importantly, if they are experiencing a high ping which is slowing down the scene. Meanwhile, in the target user's world, the session will properly disconnect.
|
||||
|
||||
---------------------------
|
||||
Change replication behavior
|
||||
---------------------------
|
||||
|
||||
During a session, multi-user will replicate all of your local modifications to the scene, to all other users' blender instances.
|
||||
In order to avoid annoying other users when you are experimenting, you can flag some of your local modifications to be ignored via
|
||||
various flags present at the top of the panel (see red area in the image below). Those flags are explained in the :ref:`replication` section.
|
||||
|
||||
.. figure:: img/quickstart_synchronize.png
|
||||
:align: center
|
||||
|
||||
Session replication flags
|
||||
|
||||
-----------
|
||||
Manage data
|
||||
-----------
|
||||
|
||||
In order to understand replication data managment, a quick introduction to the multi-user data workflow is in order.
|
||||
The first thing to know: until now, the addon relies on data-based replication. In simple words, it means that it replicates
|
||||
the resultant output of a user's actions.
|
||||
To replicate datablocks between clients, multi-user relies on a standard distributed architecture:
|
||||
|
||||
- The server stores the "master" version of the work.
|
||||
- Each client has a local version of the work.
|
||||
|
||||
When an artist modifies something in the scene, here is what is happening in the background:
|
||||
|
||||
1. Modified data are **COMMITTED** to the local repository.
|
||||
2. Once committed locally, they are **PUSHED** to the server
|
||||
3. As soon as the server receives updates, they are stored locally and pushed to every other client
|
||||
|
||||
At the top of this data management system, a rights management system prevents
|
||||
multiple users from modifying the same data at the same time. A datablock may belong to
|
||||
a connected user or be under :ref:`common-right<**COMMON**>` rights.
|
||||
|
||||
.. note::
|
||||
In a near future, the rights management system will support roles to allow multiple users to
|
||||
work on different aspects of the same datablock.
|
||||
|
||||
The Repository panel (see image below) allows you to monitor, change datablock states and rights manually.
|
||||
|
||||
.. figure:: img/quickstart_repository.png
|
||||
:align: center
|
||||
|
||||
Repository panel
|
||||
|
||||
The **show only owned** flag allows you to see which datablocks you are currently modifying.
|
||||
|
||||
.. warning::
|
||||
If you are editing a datablock not listed with this flag enabled, it means that you have not been granted the rights to modify it.
|
||||
So, it won't be updated to other clients!
|
||||
|
||||
Here is a quick list of available actions:
|
||||
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| icon | Action | Description |
|
||||
+=======================================+===================+====================================================================================+
|
||||
| .. image:: img/quickstart_push.png | **Push** | push data-block to other clients |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_pull.png | **Pull** | pull last version into blender |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_refresh.png | **Reset** | Reset local change to the server version |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_unlock.png | **Lock/Unlock** | If locked, does nothing. If unlocked, grant modification rights to another user. |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_remove.png | **Delete** | Remove the data-block from network replication |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
BIN
docs/getting_started/img/auto_updater_check.png
Normal file
After Width: | Height: | Size: 83 KiB |
BIN
docs/getting_started/img/auto_updater_last.png
Normal file
After Width: | Height: | Size: 89 KiB |
BIN
docs/getting_started/img/auto_updater_location.png
Normal file
After Width: | Height: | Size: 101 KiB |
BIN
docs/getting_started/img/auto_updater_restart.png
Normal file
After Width: | Height: | Size: 90 KiB |
BIN
docs/getting_started/img/auto_updater_version.png
Normal file
After Width: | Height: | Size: 98 KiB |
BIN
docs/getting_started/img/first-time_menu.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/getting_started/img/first_time_menu.png
Normal file
After Width: | Height: | Size: 13 KiB |
BIN
docs/getting_started/img/first_time_server_edit.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
docs/getting_started/img/first_time_server_host.png
Normal file
After Width: | Height: | Size: 9.4 KiB |
BIN
docs/getting_started/img/first_time_server_list.png
Normal file
After Width: | Height: | Size: 12 KiB |
Before Width: | Height: | Size: 25 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 15 KiB |
BIN
docs/getting_started/img/quickstart_connect.png
Normal file
After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 12 KiB |
BIN
docs/getting_started/img/quickstart_lobby.png
Normal file
After Width: | Height: | Size: 14 KiB |
BIN
docs/getting_started/img/quickstart_lobby_wait.png
Normal file
After Width: | Height: | Size: 15 KiB |
Before Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 7.1 KiB After Width: | Height: | Size: 559 B |
BIN
docs/getting_started/img/quickstart_repository.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
docs/getting_started/img/quickstart_save_session_data.png
Normal file
After Width: | Height: | Size: 18 KiB |
BIN
docs/getting_started/img/quickstart_server_edit.png
Normal file
After Width: | Height: | Size: 10 KiB |
BIN
docs/getting_started/img/quickstart_serverlist.png
Normal file
After Width: | Height: | Size: 11 KiB |
After Width: | Height: | Size: 11 KiB |
BIN
docs/getting_started/img/quickstart_serverlist_private.png
Normal file
After Width: | Height: | Size: 4.4 KiB |
BIN
docs/getting_started/img/quickstart_serverlist_refresh.png
Normal file
After Width: | Height: | Size: 11 KiB |
BIN
docs/getting_started/img/quickstart_snap_camera.gif
Normal file
After Width: | Height: | Size: 16 MiB |
Before Width: | Height: | Size: 1.5 MiB After Width: | Height: | Size: 8.4 MiB |
Before Width: | Height: | Size: 5.2 MiB |
BIN
docs/getting_started/img/quickstart_synchronize.png
Normal file
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 32 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 26 KiB |
BIN
docs/getting_started/img/settings.png
Normal file
After Width: | Height: | Size: 74 KiB |
@ -3,9 +3,13 @@ Getting started
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
:name: toc-getting-started
|
||||
:maxdepth: 2
|
||||
|
||||
install
|
||||
update
|
||||
quickstart
|
||||
glossary
|
||||
how-to-join
|
||||
how-to-host
|
||||
how-to-manage
|
||||
troubleshooting
|
||||
|
||||
|
@ -1,13 +1,39 @@
|
||||
============
|
||||
Installation
|
||||
============
|
||||
=====================
|
||||
Installing Multi-User
|
||||
=====================
|
||||
|
||||
.. warning:: Under development, use it at your own risks.
|
||||
|
||||
Multi-User is often updated. You can keep up to date with the latest changes through the release notes on our `Discord Server <https://discord.com/invite/aBPvGws>`_.
|
||||
|
||||
Download
|
||||
========
|
||||
|
||||
`Stable Release <https://gitlab.com/slumber/multi-user/-/jobs/artifacts/master/download?job=build>`__
|
||||
**Recommended**. A package packed with the latest features and is considered stable without regressions.
|
||||
|
||||
`Latest Release <https://gitlab.com/slumber/multi-user/-/jobs/artifacts/develop/download?job=build>`__
|
||||
**Experimental**. A package updated almost daily to include the newest changes in development.
|
||||
These versions are not as thoroughly tested as the stable release, and might break.
|
||||
|
||||
Install
|
||||
=======
|
||||
|
||||
.. hint::
|
||||
The process is the same for linux, mac and windows.
|
||||
|
||||
1. Download latest `release <https://gitlab.com/slumber/multi-user/-/jobs/artifacts/master/download?job=build>`_ or `develop (unstable !) <https://gitlab.com/slumber/multi-user/-/jobs/artifacts/develop/download?job=build>`_ build.
|
||||
1. Download the addon zip file
|
||||
2. Run blender as administrator (to allow python dependencies auto-installation).
|
||||
3. Install **multi-user.zip** from your addon preferences.
|
||||
3. Install **multi-user.zip** from your addon preferences in :menuselection:`Edit --> Preferences --> Add-ons --> Install`.
|
||||
|
||||
Once the addon is succesfully installed, I strongly recommend you to follow the :ref:`quickstart`
|
||||
tutorial.
|
||||
.. figure:: img/settings.png
|
||||
:align: center
|
||||
:width: 500px
|
||||
|
||||
The Addon Preferences Pannel
|
||||
|
||||
Once the addon is succesfully installed, we strongly recommend you to follow the :ref:`quickstart`
|
||||
tutorial.
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
@ -1,379 +1,48 @@
|
||||
.. _quickstart:
|
||||
|
||||
===========
|
||||
Quick start
|
||||
Quick Start
|
||||
===========
|
||||
|
||||
.. hint::
|
||||
*All session related settings are located under: `View3D -> Sidebar -> Multiuser panel`*
|
||||
Welcome to the Multi-User manual.
|
||||
You will find here all the documentation necessary for the good use of the addon: :ref:`index-manual`
|
||||
|
||||
The multi-user is based on a session management system.
|
||||
In this this guide you will quickly learn how to use the collaborative session system in three part:
|
||||
First of all, let's have a quick look at the Multi-User features.
|
||||
|
||||
Username and color
|
||||
------------------
|
||||
|
||||
When you launch the addon for the first time you can find this panel in the Sidebar of your View3D:
|
||||
|
||||
.. figure:: img/first_time_menu.png
|
||||
:align: center
|
||||
|
||||
1. Choose a **name** and a **color** that will be specific to you and that will allow others to identify you easily once in session. Don't worry, they can be changed at any time in :menuselection:`Edit --> Prerecences --> Add-ons --> Multi-user` or in :menuselection:`Multi-User Pannel --> General Settings`.
|
||||
2. Press **Continue**
|
||||
|
||||
Multi-User side pannel
|
||||
----------------------
|
||||
|
||||
Once the Multi-User is launched you will arrive directly on the main menu:
|
||||
|
||||
.. figure:: img/first_time_server_list.png
|
||||
:align: center
|
||||
|
||||
Three panels are at your disposal:
|
||||
|
||||
- **Server list**: You can add, delete and edit server presets according to your preferences. At first launch two servers will already be in your preferences: *Public Session*, the public server of the Multi-User Discord, *Localhost*, to connect locally to your server.
|
||||
- **Hosting**: To locally host a session with a Blender instance.
|
||||
- **General Settings**: Include advanced addon settings like *user info*, *server ping*, *cache*, etc.
|
||||
|
||||
Session management
|
||||
------------------
|
||||
|
||||
The multi-user addon provides a session management system.
|
||||
In this guide, you will quickly learn how to use the collaborative session management system in three parts:
|
||||
|
||||
- :ref:`how-to-host`
|
||||
- :ref:`how-to-join`
|
||||
- :ref:`how-to-host`
|
||||
- :ref:`how-to-manage`
|
||||
|
||||
.. _how-to-host:
|
||||
For more details on what the addon offers:
|
||||
|
||||
How to host a session
|
||||
=====================
|
||||
|
||||
The multi-user add-on rely on a Client-Server architecture.
|
||||
The server is the heart of the collaborative session,
|
||||
it will allow each users to communicate with each others.
|
||||
In simple terms, *Hosting a session* means *run a local server and connect the local client to it*.
|
||||
When I said **local server** I mean accessible from the LAN (Local Area Network).
|
||||
|
||||
However sometime you will need to host a session over the internet,
|
||||
in this case I strongly recommand you to read the :ref:`internet-guide` tutorial.
|
||||
|
||||
.. _user-info:
|
||||
|
||||
-----------------------------
|
||||
1. Fill your user information
|
||||
-----------------------------
|
||||
|
||||
The **User Info** panel (See image below) allow you to constomize your online identity.
|
||||
|
||||
.. figure:: img/quickstart_user_info.png
|
||||
:align: center
|
||||
|
||||
User info panel
|
||||
|
||||
|
||||
Let's fill those tow field:
|
||||
|
||||
- **name**: your online name.
|
||||
- **color**: a color used to represent you into other user workspace(see image below).
|
||||
|
||||
|
||||
During online sessions, other users will see your selected object and camera hilghlited in your profile color.
|
||||
|
||||
.. _user-representation:
|
||||
|
||||
.. figure:: img/quickstart_user_representation.png
|
||||
:align: center
|
||||
|
||||
User viewport representation
|
||||
|
||||
--------------------
|
||||
2. Setup the network
|
||||
--------------------
|
||||
|
||||
When the hosting process will start, the multi-user addon will lauch a local server instance.
|
||||
In the nerwork panel select **HOST**.
|
||||
The **Host sub-panel** (see image below) allow you to configure the server according to:
|
||||
|
||||
* **Port**: Port on wich the server is listening.
|
||||
* **Start from**: The session initialisation method.
|
||||
|
||||
* **current scenes**: Start with the current blendfile datas.
|
||||
* **an empty scene**: Clear a data and start over.
|
||||
|
||||
.. danger::
|
||||
By starting from an empty, all of the blend data will be removed !
|
||||
Ensure to save your existing work before launching the session.
|
||||
|
||||
* **Admin password**: The session administration password.
|
||||
|
||||
.. figure:: img/quickstart_host.png
|
||||
:align: center
|
||||
:alt: host menu
|
||||
|
||||
Host network panel
|
||||
|
||||
|
||||
.. note:: Additionnal configuration setting can be found in the :ref:`advanced` section.
|
||||
|
||||
Once everything is setup you can hit the **HOST** button to launch the session !
|
||||
|
||||
It will do two things:
|
||||
|
||||
* Start a local server
|
||||
* Connect you to it as an :ref:`admin`
|
||||
|
||||
During online session, various actions are available to you, go to :ref:`how-to-manage` section to
|
||||
learn more about them.
|
||||
|
||||
.. _how-to-join:
|
||||
|
||||
How to join a session
|
||||
=====================
|
||||
|
||||
This section describe how join a launched session.
|
||||
Before starting make sure that you have access to the session ip and port.
|
||||
|
||||
-----------------------------
|
||||
1. Fill your user information
|
||||
-----------------------------
|
||||
|
||||
Follow the user-info_ section for this step.
|
||||
|
||||
----------------
|
||||
2. Network setup
|
||||
----------------
|
||||
|
||||
In the nerwork panel select **JOIN**.
|
||||
The **join sub-panel** (see image below) allow you configure the client to join a
|
||||
collaborative session.
|
||||
|
||||
.. figure:: img/quickstart_join.png
|
||||
:align: center
|
||||
:alt: Connect menu
|
||||
|
||||
Connection panel
|
||||
|
||||
Fill those field with your information:
|
||||
|
||||
- **IP**: the host ip.
|
||||
- **Port**: the host port.
|
||||
- **Connect as admin**: connect you with **admin rights** (see :ref:`admin` ) to the session.
|
||||
|
||||
.. Maybe something more explicit here
|
||||
|
||||
.. note::
|
||||
Additionnal configuration setting can be found in the :ref:`advanced` section.
|
||||
|
||||
Once you've set every field, hit the button **CONNECT** to join the session !
|
||||
When the :ref:`session-status` is **ONLINE** you are online and ready to start to collaborate.
|
||||
|
||||
.. note::
|
||||
On the **dedicated server** startup, the session status will get you to the **LOBBY** waiting a admin to start it.
|
||||
|
||||
If the session status is set to **LOBBY** and you are a regular user, you need to wait that an admin launch it.
|
||||
If you are the admin, you just need to init the repository to start the session (see image below).
|
||||
|
||||
.. figure:: img/quickstart_session_init.png
|
||||
:align: center
|
||||
|
||||
Session initialisation for dedicated server
|
||||
|
||||
During online session, various actions are available to you, go to :ref:`how-to-manage` section to
|
||||
learn more about them.
|
||||
|
||||
.. _how-to-manage:
|
||||
|
||||
How to manage a session
|
||||
=======================
|
||||
|
||||
The collaboration quality directly depend on the communication quality. This section describes
|
||||
various tools made in an effort to ease the communication between the different session users.
|
||||
Feel free to suggest any idea for communication tools `here <https://gitlab.com/slumber/multi-user/-/issues/75>`_ .
|
||||
|
||||
--------------------
|
||||
Monitor online users
|
||||
--------------------
|
||||
|
||||
One of the most vital tool is the **Online user panel**. It list all connected
|
||||
users information's including yours such as :
|
||||
|
||||
* **Role** : if user is an admin or a regular user.
|
||||
* **Location**: Where the user is actually working.
|
||||
* **Frame**: When (in frame) the user working.
|
||||
* **Ping**: user connection delay in milliseconds
|
||||
|
||||
.. figure:: img/quickstart_users.png
|
||||
:align: center
|
||||
|
||||
Online user panel
|
||||
|
||||
By selecting a user in the list you'll have access to different user related **actions**.
|
||||
Those operators allow you reach the selected user state in tow different dimensions: **SPACE** and **TIME**.
|
||||
|
||||
Snapping in space
|
||||
----------------
|
||||
|
||||
The **CAMERA button** (Also called **snap view** operator) allow you to snap on
|
||||
the user viewpoint. To disable the snap, click back on the button. This action
|
||||
served different purposes such as easing the review process, working together on
|
||||
wide world.
|
||||
|
||||
.. hint::
|
||||
If the target user is localized on another scene, the **snap view** operator will send you to his scene.
|
||||
|
||||
.. figure:: img/quickstart_snap_view.gif
|
||||
:align: center
|
||||
|
||||
Snap view in action
|
||||
|
||||
Snapping in time
|
||||
---------------
|
||||
|
||||
The **CLOCK button** (Also called **snap time** operator) allow you to snap on
|
||||
the user time (current frame). To disable the snap, click back on the button.
|
||||
This action is built to help various actors to work on the same temporality
|
||||
(for instance multiple animators).
|
||||
|
||||
.. figure:: img/quickstart_snap_time.gif
|
||||
:align: center
|
||||
|
||||
Snap time in action
|
||||
|
||||
|
||||
Kick a user
|
||||
-----------
|
||||
|
||||
.. warning:: Only available for :ref:`admin` !
|
||||
|
||||
|
||||
The **CROSS button** (Also called **kick** operator) allow the admin to kick the selected user. On the target user side, the session will properly disconnect.
|
||||
|
||||
|
||||
Change users display
|
||||
--------------------
|
||||
|
||||
Presence is the multi-user module responsible for users display. During the session,
|
||||
it draw users related information in your viewport such as:
|
||||
|
||||
* Username
|
||||
* User point of view
|
||||
* User selection
|
||||
|
||||
.. figure:: img/quickstart_presence.png
|
||||
:align: center
|
||||
|
||||
Presence show flags
|
||||
|
||||
The presence overlay panel (see image above) allow you to enable/disable
|
||||
various drawn parts via the following flags:
|
||||
|
||||
- **Show selected objects**: display other users current selection
|
||||
- **Show users**: display users current viewpoint
|
||||
- **Show different scenes**: display users working on other scenes
|
||||
|
||||
-----------
|
||||
Manage data
|
||||
-----------
|
||||
|
||||
In order to understand replication data managment, a quick introduction to the multi-user data workflow is required.
|
||||
First thing to know: until now, the addon rely on a data-based replication. In simple words, it means that it replicate
|
||||
user's action results.
|
||||
To replicate datablocks between clients the multi-user rely on what tends to be a distributed architecture:
|
||||
|
||||
- The server store the "master" version of the work.
|
||||
- Each client have a local version of the work.
|
||||
|
||||
When an artist modified something in the scene, here is what is happening in the background:
|
||||
|
||||
1. Modified data are **COMMITTED** to the local repository.
|
||||
2. Once committed locally, they are **PUSHED** to the server
|
||||
3. As soon as the server is getting updates, they are stored locally and pushed to every other clients
|
||||
|
||||
At the top of this data management system, a right management system prevent
|
||||
multiple users from modifying same data at same time. A datablock may belong to
|
||||
a connected user or be under :ref:`common-right<**COMMON**>` rights.
|
||||
|
||||
.. note::
|
||||
In a near future, the right management system will support roles to allow multiple users to
|
||||
work on different aspect of the same datablock.
|
||||
|
||||
The Repository panel (see image below) allow you to monitor, change datablock states and right manually.
|
||||
|
||||
.. figure:: img/quickstart_properties.png
|
||||
:align: center
|
||||
|
||||
Repository panel
|
||||
|
||||
The **show only owned** flag allow you to see which datablocks you are currently modifying.
|
||||
|
||||
.. warning::
|
||||
If you are editing a datablock not listed with this fag enabled, it means that you do
|
||||
not have right granted to modify it. So it won't be updated to other client !
|
||||
|
||||
Here is a quick list of available actions:
|
||||
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| icon | Action | Description |
|
||||
+=======================================+===================+====================================================================================+
|
||||
| .. image:: img/quickstart_push.png | **Push** | push data-block to other clients |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_pull.png | **Pull** | pull last version into blender |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_refresh.png | **Reset** | Reset local change to the server version |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_unlock.png | **Lock/Unlock** | If locked, does nothing. If unlocked, grant modification rights to another user. |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
| .. image:: img/quickstart_remove.png | **Delete** | Remove the data-block from network replication |
|
||||
+---------------------------------------+-------------------+------------------------------------------------------------------------------------+
|
||||
|
||||
.. _advanced:
|
||||
|
||||
Advanced settings
|
||||
=================
|
||||
|
||||
This section contains optional settings to configure the session behavior.
|
||||
|
||||
.. figure:: img/quickstart_advanced.png
|
||||
:align: center
|
||||
|
||||
Advanced configuration panel
|
||||
|
||||
-------
|
||||
Network
|
||||
-------
|
||||
|
||||
.. figure:: img/quickstart_advanced_network.png
|
||||
:align: center
|
||||
|
||||
Advanced network settings
|
||||
|
||||
**IPC Port** is the port used for Inter Process Communication. This port is used
|
||||
by the multi-users subprocesses to communicate with each others. If different instances
|
||||
of the multi-user are using the same IPC port it will create conflict !
|
||||
|
||||
.. note::
|
||||
You only need to modify it if you need to launch multiple clients from the same
|
||||
computer(or if you try to host and join on the same computer). You should just 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.
|
||||
|
||||
-----------
|
||||
Replication
|
||||
-----------
|
||||
|
||||
.. figure:: img/quickstart_advanced_replication.png
|
||||
:align: center
|
||||
|
||||
Advanced replication settings
|
||||
|
||||
**Synchronize render settings** (only host) enable replication of EEVEE and CYCLES render settings to match render between clients.
|
||||
|
||||
**Edit Mode Updates** enable objects update while you are in Edit_Mode.
|
||||
|
||||
.. warning:: Edit Mode Updates kill performances with complex objects (heavy meshes, gpencil, etc...).
|
||||
|
||||
**Update method** allow you to change how replication update are triggered. Until now two update methode are implemented:
|
||||
|
||||
- **Default**: Use external threads to monitor datablocks changes, slower and less accurate.
|
||||
- **Despgraph ⚠️**: Use the blender dependency graph to trigger updates. Faster but experimental and unstable !
|
||||
|
||||
**Properties frequency gird** allow to set a custom replication frequency for each type of data-block:
|
||||
|
||||
- **Refresh**: pushed data update rate (in second)
|
||||
- **Apply**: pulled data update rate (in second)
|
||||
|
||||
---
|
||||
Log
|
||||
---
|
||||
|
||||
.. figure:: img/quickstart_advanced_logging.png
|
||||
:align: center
|
||||
|
||||
Advanced log settings
|
||||
|
||||
**log level** allow to set the logging level of detail. Here is the detail for each values:
|
||||
|
||||
+-----------+-----------------------------------------------+
|
||||
| Log level | Description |
|
||||
+===========+===============================================+
|
||||
| ERROR | Shows only critical error |
|
||||
+-----------+-----------------------------------------------+
|
||||
| WARNING | Shows only errors (all kind) |
|
||||
+-----------+-----------------------------------------------+
|
||||
| INFO | Shows only status related messages and errors |
|
||||
+-----------+-----------------------------------------------+
|
||||
| DEBUG | Shows every possible information. |
|
||||
+-----------+-----------------------------------------------+
|
||||
.. - :ref:
|
57
docs/getting_started/update.rst
Normal file
@ -0,0 +1,57 @@
|
||||
================
|
||||
Update the Addon
|
||||
================
|
||||
|
||||
Multi-User has a built-in auto-update function in its preferences.
|
||||
|
||||
Auto-Update
|
||||
-----------
|
||||
|
||||
1. Enable it by clicking 'Auto-check for Update' and choose the frequency you'd like.
|
||||
2. **Make sure to click the three bars in the bottom-left, and save this to your preferences**
|
||||
|
||||
.. figure:: img/auto_updater_location.png
|
||||
:align: center
|
||||
:width: 500px
|
||||
|
||||
Update menu in the addon preferences pannel
|
||||
|
||||
Manual Update
|
||||
-------------
|
||||
|
||||
Sometimes you'd like to perform manual update, or even side-grade or rollback your multi-user version. Perhaps you are trying out new features from the 'develop' branch in a test session.
|
||||
|
||||
1. Click on 'Check now for multiuser update'. Multi-user will now find new versions
|
||||
|
||||
.. figure:: img/auto_updater_check.png
|
||||
:align: center
|
||||
:width: 500px
|
||||
|
||||
Check for updates
|
||||
|
||||
1. Select 'Install latest master / old version'
|
||||
|
||||
.. figure:: img/auto_updater_last.png
|
||||
:align: center
|
||||
:width: 500px
|
||||
|
||||
Install
|
||||
|
||||
1. In most cases, select 'master' branch for the latest stable release. The unstable 'develop' branch and older releases are available
|
||||
|
||||
.. figure:: img/auto_updater_version.png
|
||||
:align: center
|
||||
:width: 500px
|
||||
|
||||
Select version
|
||||
|
||||
4. Finally, restart blender to use the updated version
|
||||
|
||||
.. figure:: img/auto_updater_restart.png
|
||||
:align: center
|
||||
:width: 500px
|
||||
|
||||
Restart blender
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
Before Width: | Height: | Size: 38 KiB After Width: | Height: | Size: 38 KiB |
Before Width: | Height: | Size: 9.8 KiB After Width: | Height: | Size: 9.8 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_1.jpg
Normal file
After Width: | Height: | Size: 757 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_10.jpg
Normal file
After Width: | Height: | Size: 214 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_11.jpg
Normal file
After Width: | Height: | Size: 249 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_12.jpg
Normal file
After Width: | Height: | Size: 88 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_13.jpg
Normal file
After Width: | Height: | Size: 116 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_14.jpg
Normal file
After Width: | Height: | Size: 97 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_15.jpg
Normal file
After Width: | Height: | Size: 230 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_16.jpg
Normal file
After Width: | Height: | Size: 136 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_17.jpg
Normal file
After Width: | Height: | Size: 687 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_18.jpg
Normal file
After Width: | Height: | Size: 635 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_19.jpg
Normal file
After Width: | Height: | Size: 51 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_2.jpg
Normal file
After Width: | Height: | Size: 204 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_20.jpg
Normal file
After Width: | Height: | Size: 60 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_3.jpg
Normal file
After Width: | Height: | Size: 153 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_4.jpg
Normal file
After Width: | Height: | Size: 67 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_5.jpg
Normal file
After Width: | Height: | Size: 104 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_6.jpg
Normal file
After Width: | Height: | Size: 65 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_7.jpg
Normal file
After Width: | Height: | Size: 59 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_8a.jpg
Normal file
After Width: | Height: | Size: 109 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_8b.jpg
Normal file
After Width: | Height: | Size: 252 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_8c.jpg
Normal file
After Width: | Height: | Size: 262 KiB |
BIN
docs/hosting_internet/img/hosting_guide_gcloud_9.jpg
Normal file
After Width: | Height: | Size: 233 KiB |
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 27 KiB |
Before Width: | Height: | Size: 20 KiB After Width: | Height: | Size: 20 KiB |
Before Width: | Height: | Size: 28 KiB After Width: | Height: | Size: 28 KiB |
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 37 KiB After Width: | Height: | Size: 37 KiB |
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
BIN
docs/hosting_internet/img/hosting_guide_port.png
Normal file
After Width: | Height: | Size: 12 KiB |