| Commit message (Collapse) | Author | Age |
| |
|
|
|
|
|
|
|
|
| |
* Fix bug where facial animations cause already-written letters to
change (!!!)
* Add libtastt.py to hold abstractions layered over libunity
* Fix
* libunity: Fix bug where integer equality state transition conditions
ignored the threshold
* libunity: Support placing animator states at different positions
|
| |
|
|
|
|
|
| |
Object IDs are allocated optimally now, but it's a bit slower due to
long parse times.
Also fix minor bug in generate_fx.py.
|
| |
|
|
|
|
|
|
|
| |
* Add VRLabs' World Constraint as a submodule
* Add animations for world constraint
* Add toggles for board
* Add libunity.py (no content yet)
* Support >30s transcription
* Add board FBX
|
| |
|
|
|
| |
It's a little buggy; it likes to overwrite cells on the board. No idea
why.
|
| |
|
|
| |
Also update README.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Double board size from 6x16 to 8x22
* Reduce parameter bits used (thanks to extra layer of indexing)
* Rename template.anim to template.anim.txt to prevent Unity from
constantly rewriting it
* osc_ctrl.encodeMessage now pads the message so that all empty space is
overwritten
* Delete osc_ctrl.sendMessageCellContinuous. Now that we use a single 'Enable'
bit, this idea is sidelined.
* We can probably achieve the same effect by making TaSTT.shader a little
more clever. For example, if we pass it the current cell number, it could
render a time-based 'fade-in' effect which simulates smooth streaming.
|
| |
|
|
| |
Even more reliable now.
|
| |
|
|
|
|
|
| |
* Shorten animations to 1 frame
* Eliminate fx internal transition delays
* These were causing the shader parameters to interpolate, causing the
inconsistent / flickering letters I was seeing
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Per the VRC docs, state behaviors may not execute if the total length of
time in the state is < 0.02 seconds. Adding a 2-frame 'Do Nothing'
animation to the top of every layer seems to help with stability.
*shrug*
More cleanup:
* Generate a unique return-home transition for each terminal state
instead of reusing the same one.
* Use globally unique state names in animator.
* All animations are at least 2 frames long.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
... and a bunch of bugfixes:
* Shader is now transparent
* Simplify shader row/column calculation
* Add punctuation to texture
* Fix generate.sh
* Add lorum_ipsum.txt
* Fix how long text is scrolled
* Simplify encoding logic in osc_ctrl.py
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Apparently the same avatar parameter can only be updated so quickly
before VRChat starts dropping messages. So now we divide the board
into "groups" of 8 characters. Each group can be updated relatively
slowly, but all groups can be updated in parallel. Thus we can update
the board group-by-group, pausing between each group.
* Fix shader bugs - now there are Row05 parameters, and row00 refers
to the topmost row instead of the bottom-most.
* Remove outdated layer/group names files
* Extend osc_ctrl.py to support encoding & sending messages
* Add generate_params.py to handle creating TaSTT_params.asset
* Add generate_utils.py for common code generation facilities &
parameters.
|
| |
|
|
|
|
|
|
|
| |
Can't get much faster than 0.1 seconds per character with the current
design. Still, a good first step!
* Simplify parameters: only use 3 8-bit ints + 1 boolean.
* Rewrite FX generator according to new params.
* Rewrite osc_ctrl.py to test in-game display.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Doesn't work in game.
Also change # of characters per slot to 80, down from 128.
Also realize that VRChat supports 256 BITS of parameter, not 256 BYTES.
Next design idea:
* 3 8-bit parameters: letter, row, col
* 1 boolean parameter: active
* one animation for each slot/letter combo, as usual
* one fx layer like this:
if !active:
do nothing
if row == 0:
if col == 0:
if letter == 0:
play row00_col00_letter00 animation
* because write defaults are off, we should be able to "save" letters
by simply setting active = false
* thus we don't need to simultaneously address the entire board, saving
memory
|
| |
|
|
| |
Also generate the full 6 rows instead of just 3
|
|
|
Summary: added generator for animations and FX layer.
* add generate_animations.sh
* generates an animation for every cell (14*6=72) and every letter (60);
72*60 = 4212 total animations
* add generate_fx.py
* seems to work in-game
* drives every parameter needed
* add {group,cell}_names.txt
* name of every group & cell parameter
* the STT has 72 individual character slots called cells. They are
grouped into 4-character groups to save on parameter bandwidth.
Thus each slot may be indexed with 8 bits.
* add SetLetters.cs
* this thingy looks at each group parameter and uses it to set each
cell parameter. The generated fx layer hooks the script in.
* check in SDK-generated assets as references until code generators are
complete
|