-
Notifications
You must be signed in to change notification settings - Fork 1
/
reference.toml
244 lines (196 loc) · 11.4 KB
/
reference.toml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
# This configuration file is not set up for any specific pulpose, but shows all of the available
# configuration options and describes what they do. This may be useful in configuring the Sender for
# non-standard uses.
#
# The configuration is organized into sections, with each section indicated by a section header in
# square brackets. Double square brackets may also be used for section headers of which there can be
# more than one.
#
# Upon closing, this configuration will be saved as remote-wheel-sender.toml, and you may edit it
# again at any time.
#
# All configuration entries (lines of the format key = value) belong to the last section for which
# there was a header. Indentation is optional, but can help make the file more readable.
#
# Any text after a # character, such as this text, is called a comment. Comments are ignored, and do
# not affect the configuration. Comments can be used to add notes, such as these, or to temporarily
# remove values that you may want to add back in later. You may remove any comment without affecting
# the configuration.
# Configuration for the raw OSC input and output.
[osc]
# Whether raw OSC output should be enabled or not. When not enabled, OSC configurations for inputs
# and outputs will not be active and the input address will not be opened.
enabled = false
# An IP address and port on which to listen for OSC input. This is also the address from which
# messages will be sent. The IP address may be either IPv4 or IPv6.
#
# If the IP address is 0.0.0.0 or [::], an IP address will be chosen automatically.
# If the port is 0, then a port will be chosen automatically.
input.address = "0.0.0.0:0"
# The address and port on which to send raw OSC messages.
# This may be either IPv4 or IPv6, but must match the input address!
output.address = "127.0.0.1:19794"
# A list of OSC messages that should be sent in every OSC packet, before any messages from
# configured outputs. See comments in [axis.wheel.output.osc.on-update] below for details.
# The only difference is that the input parameter should not be used.
# This section may be removed if not needed.
[osc.output.pre-bundle]
# "/pre/bundle" = []
# A list of OSC messages that should be sent in every OSC packet, after all messages from
# configured outputs. See comments in [axis.wheel.output.osc.on-update] below for details.
# The only difference is that the input parameter should not be used.
# This section may be removed if not needed.
[osc.output.post-bundle]
# "/post/bundle" = []
# Configuration for the VMC filter.
#
# The VMC filter allows the Remote Wheel application to be connected between a back-end motion
# capture software (e.g.VSeeFace) and a front-end interface (e.g. VNyan) to allow for blendshapes
# and the avatar's pose to be controlled by inputs.
[vmc]
# Whether the VMC filter should be active or not. When not enabled, VMC configurations for outputs
# will not be active and the input address will not be opened.
enabled = false
# An IP address and port on which to listen for VMC messages. This is also the address from which
# VMC messages will be sent. See notes on input.address under [osc] above.
input.address = "127.0.0.1:3332"
# An IP address and port on which to forward for VMC. This is also the address from which
# messages will be sent. See notes on input.address under [osc] above.
output.address = "127.0.0.1:3333"
# How often, in seconds, to log information about how many VMC messages are being received, and how
# long they are taking to process. If removed or commented out, no reports will be logged.
report-interval = 60
# The definition of a VMC "device", which is used to control how the avatar is posed.
#
# Multiple devices may be defined, under separate sections of the format [vmc.device.NAME].
# Currently, the application will only use one device (a steering wheel), but in the future this may
# support additional devices such as pedals, shIfters, handbrakes, stalks, etc.
[vmc.device.wheel]
# The type of device that this is. Currently, "wheel" is the only option, but it still must be
# specified for forwards-compatibilty reasons, as other types will (hopefully) be added in the
# future.
type = "wheel"
# The position of the wheel, in 3D coordinates (X = right, Y = up, Z = forward).
position = [0, 1.3, 0.38]
# The rotation of the wheel, in degrees (X = pitch, Y = yaw, Z = roll).
# An angle of [0, 0, 0] corresponds to the wheel being upright in front of the avatar.
rotation = [0, 0, 0]
# The radius of the wheel. This affects how far away from the center point the hands will be placed.
radius = 0.16
# The serial number of a tracker to add to the VMC data with the wheel's position and rotation.
# This can be used to track a prop to this device's location.
# If not specified, no tracker will be sent.
tracker = "Wheel"
# Configuration of source for an axis input named "wheel".
#
# Note that in contrast to the other sections, this section must have double brackets!
#
# This source reads an axis from a controller, as indicated by its keys starting with controller.
[[axis.wheel.input]]
# The name of the controller which should be read for this input.
controller.name = "Controller Name"
# The axis on the controller which should be read for this input.
controller.axis = 1
# Configuration of another source for the axis input named "wheel".
#
# Multiple sources may be configured for any axis input; the one which has most recently received
# new data is the one which will be used. Controller inputs are only considered to have received
# data when the axis changes.
#
# This source reads from OSc messages sent to the application. See the [osc] section to configure
# where the application will listen for messages.
[[axis.wheel.input]]
# The OSC address from which this axis should be set.
osc.address = "/wheel/rotation"
# The range of values which are expected to be sent to this message. Setting this correctly will
# ensure that the value is correctly mapped to the ranges specified for outputs.
# If omitted, the range is assumed to be [0, 1].
osc.range = [-450, 450]
# Configures OSC messages to be sent any time a value is received for the axis input named "wheel".
[axis.wheel.output.osc.on-update]
# Configures an OSC message to be sent to the IP address configured in the [osc] section.
#
# Multiple messages may be configured in this section; they will be sent in the order they are in
# the file.
#
# Parameters may be listed in the square brackets, separated by commas. Parameters should be listed
# in one of the following formats:
# - {int = 1234} or 1234 - An explicit 32-bit integer with a value of 1234.
# - {long = 1234} - A 64-bit integer with a value of 1234.
# - {float = 1234} or 1234.0 - A 32-bit float with a value of 1234.
# - {double = 1234} - A 64-bit float with a value of 1234.
# - "string" - A string with a value of "string".
# - true - A boolean value of true.
# - false - A boolean value of false.
# - {input = [0, 100]} - The input value of the axis, remapped to the range 0 to 100.
#
# Parameters may be spaced out over multiple lines, as long as they remain within the square
# brackets.
"/wheel/rotation" = [ {input=[-450,450]} ]
# Configures VMC effects to be applied any time the value of the axis input named "wheel" is updated.
[axis.wheel.output.vmc.on-update]
# Sets the value of a blendshape named "wheel" to the value of the axis (remapped to the given
# range). The blendshape's full range is normally in the range 0 to 100.
blendshape.wheel = [0, 100]
# Updates the state of the device named "wheel" (see [vmc.device.wheel]) to the value of the axis,
# remapped to the given range. For a wheel, this is the rotation angle.
device.wheel = [-450, 450]
# Configuration of source for a button input named "wheel".
#
# This source reads a button from a controller, as indicated by its keys starting with controller.
[[button.shift-up.input]]
# The name of the controller which should be read for this input.
controller.name = "Controller Name"
# The button on the controller which should be read for this input. Numbering starts at 1.
controller.button = 1
# Configuration of another source for a button input named "shift-up".
#
# This source reads a button from an incoming OSC message, as indicated by its keys starting with osc.
[[button.shift-up.input]]
# The OSC address from which this button should be set.
osc.address = "/wheel/shift-up"
# Configures OSC messages to be sent any time a value is received for the button input named "shift-up".
[button.shift-up.output.osc.on-update]
# Configures an OSC message to be sent to the IP address configured in the [osc] section.
# Configuration is similar to the configuration in [axis.wheel.output.osc.on-update], with one
# major difference: the input value must be specified as {input=[]}, and will be a boolean value
# (true or false).
"/wheel/shift-up" = [ {input=[]} ]
# Configures OSC messages to be sent any time a press is received for the button input named "shift-up".
[button.shift-up.output.osc.on-press]
# Configures an OSC message to be sent to the IP address configured in the [osc] section.
# Configuration is the same as the configuration in [button.shift-up.output.osc.on-update].
"/wheel/shift-up/pressed" = []
# Configures OSC messages to be sent any time a release is received for the button input named "shift-up".
[button.shift-up.output.osc.on-release]
# Configures an OSC message to be sent to the IP address configured in the [osc] section.
# Configuration is the same as the configuration in [button.shift-up.output.osc.on-update].
"/wheel/shift-up/released" = []
# Configures VMC effects to apply any time a value is received for the button input named "shift-up".
[button.shift-up.output.vmc.on-update]
# Sets the value of a blendshape named "shift-up". It will be set to the first value if the button
# was released, and the second value if it was pressed.
blendshape.shift-up = [0, 100]
# Updates the state of the device named "shift-up" (would be defined in [vmc.device.shift-up]). It
# will be set to the first value if the button was released, and the second value if it was pressed.
device.shift-up = [0, 1]
# Configures VMC effects to apply any time the input named "shift-up" is pressed.
[button.shift-up.output.vmc.on-press]
# Sets the value of a blendshape named "shift-up" to the specified value.
# Note that this example if redundant with the value in [button.shift-up.output.vmc.on-update],
# but is provided as an example.
blendshape.shift-up = 100
# Updates the state of the device named "shift-up" to the specified value.
# Note that this example if redundant with the value in [button.shift-up.output.vmc.on-update],
# but is provided as an example.
device.shift-up = 1
# Configures VMC effects to apply any time the input named "shift-up" is released.
[button.shift-up.output.vmc.on-release]
# Sets the value of a blendshape named "shift-up" to the specified value.
# Note that this example if redundant with the value in [button.shift-up.output.vmc.on-update],
# but is provided as an example.
blendshape.shift-up = 0
# Updates the state of the device named "shift-up" to the specified value.
# Note that this example if redundant with the value in [button.shift-up.output.vmc.on-update],
# but is provided as an example.
device.shift-up = 0