From 7f930340e3aa94d6aca120d28436594427469373 Mon Sep 17 00:00:00 2001 From: yum Date: Sat, 5 Nov 2022 12:11:15 -0700 Subject: 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. --- generate_utils.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'generate_utils.py') diff --git a/generate_utils.py b/generate_utils.py index 2fa2077..171857b 100644 --- a/generate_utils.py +++ b/generate_utils.py @@ -12,7 +12,7 @@ def replaceMacros(lines, macro_defs): BOARD_ROWS=4 BOARD_COLS=44 INDEX_BITS=4 -CHARS_PER_CELL=80 +CHARS_PER_CELL=256 NUM_LAYERS=ceil((BOARD_ROWS * BOARD_COLS) / (2**INDEX_BITS)) @@ -69,6 +69,9 @@ def getLayerParam(which_layer: int) -> str: def getLayerName(which_layer: int) -> str: return getLayerParam(which_layer) +def getBlendParam(which_layer: int) -> str: + return "TaSTT_L%02d_Blend" % which_layer + def getDefaultStateName(which_layer): return "TaSTT_L%02d_Do_Nothing" % which_layer @@ -78,6 +81,9 @@ def getActiveStateName(which_layer): def getSelectStateName(which_layer, select): return "TaSTT_L%02d_S%02d" % (which_layer, select) +def getBlendStateName(which_layer, select): + return "TaSTT_L%02d_S%02d_Blend" % (which_layer, select) + def getLetterStateName(which_layer, select, letter): return "TaSTT_L%02d_S%02d_L%03d" % (which_layer, select, letter) -- cgit v1.2.3