summaryrefslogtreecommitdiffstats
path: root/osc_ctrl.py
diff options
context:
space:
mode:
authoryum <yum.food.vr@gmail.com>2022-11-05 12:11:15 -0700
committeryum <yum.food.vr@gmail.com>2022-11-05 12:14:12 -0700
commit7f930340e3aa94d6aca120d28436594427469373 (patch)
tree9c39374cb8be35d813fcf39db2620da027ac6d7d /osc_ctrl.py
parentca10de9a5cb2a9b360bc0cd2c357f8d0041f0fca (diff)
Reduce dimensionality of animator by factor of 80
Instead of generating one animation for every single character in our character set, we just generate 2: the lowest and the highest. We use blend trees to interpolate between these two extremes. This reduces the number of animations we have to generate by a factor of 80. It also clears the way for multi-language support (coming soon). It also means we don't have to reopen unity every time we generate a new animator.
Diffstat (limited to 'osc_ctrl.py')
-rw-r--r--osc_ctrl.py6
1 files changed, 4 insertions, 2 deletions
diff --git a/osc_ctrl.py b/osc_ctrl.py
index aa93dfb..6b97b09 100644
--- a/osc_ctrl.py
+++ b/osc_ctrl.py
@@ -75,8 +75,10 @@ def encodeMessage(lines):
return result
def updateCell(client, cell_idx, letter_encoded):
- addr="/avatar/parameters/" + getLayerParam(cell_idx)
- client.send_message(addr, letter_encoded)
+ addr="/avatar/parameters/" + generate_utils.getBlendParam(cell_idx)
+ letter_remapped = (-127.5 + letter_encoded) / 127.5
+ print("Send encoded letter {} / {}".format(letter_encoded, letter_remapped))
+ client.send_message(addr, letter_remapped)
def enable(client):
addr="/avatar/parameters/" + getEnableParam()