<feed xmlns='http://www.w3.org/2005/Atom'>
<title>TaSTT.git/generate_animations.sh, branch master</title>
<subtitle>Free self-hosted STT for VRChat.</subtitle>
<id>https://git.yummers.dev/TaSTT.git/atom?h=master</id>
<link rel='self' href='https://git.yummers.dev/TaSTT.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/'/>
<updated>2022-10-24T02:48:34+00:00</updated>
<entry>
<title>Rewrite FX and animation generators</title>
<updated>2022-10-24T02:48:34+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-10-24T02:48:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=17ace0cb4ef65bda17dd36630da18dedaa8797b5'/>
<id>urn:sha1:17ace0cb4ef65bda17dd36630da18dedaa8797b5</id>
<content type='text'>
* 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
</content>
</entry>
<entry>
<title>Add 4th layer of indexing</title>
<updated>2022-10-03T00:24:18+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-10-03T00:24:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=21c17fcb5698ed238e5397a0c2b0530034804d34'/>
<id>urn:sha1:21c17fcb5698ed238e5397a0c2b0530034804d34</id>
<content type='text'>
* 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.
</content>
</entry>
<entry>
<title>Add line wrapping and support for arbitrarily long messages</title>
<updated>2022-10-01T04:59:08+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-10-01T04:59:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=f47dd3efa3763eb946564bd324873d53061e398f'/>
<id>urn:sha1:f47dd3efa3763eb946564bd324873d53061e398f</id>
<content type='text'>
Add trivial line wrapping algorithm. Words are only added to
a line if they don't put it over the column limit, and only broken if
they alone exceed the column limit.

Extend board size to 16x6, using 145 bits of parameter memory.

Add simple generate.sh script, which generates everything needed to
use the text-to-text board.
</content>
</entry>
<entry>
<title>delete SetLetters.cs</title>
<updated>2022-09-29T22:09:29+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-09-29T22:09:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=963f8aecb44a6cff83a75a60deec102562d79ff1'/>
<id>urn:sha1:963f8aecb44a6cff83a75a60deec102562d79ff1</id>
<content type='text'>
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
</content>
</entry>
<entry>
<title>Generate 128 animations per cell (up from 60)</title>
<updated>2022-09-29T00:24:11+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-09-29T00:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=a4df4f826e377eeb3171fc927ed8ec6205ea7dac'/>
<id>urn:sha1:a4df4f826e377eeb3171fc927ed8ec6205ea7dac</id>
<content type='text'>
Also generate the full 6 rows instead of just 3
</content>
</entry>
<entry>
<title>big code dump</title>
<updated>2022-09-28T23:54:01+00:00</updated>
<author>
<name>yum</name>
<email>yum.food.vr@gmail.com</email>
</author>
<published>2022-09-28T06:04:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.yummers.dev/TaSTT.git/commit/?id=98c6d47d73abfad32eb32520531c887d34bb31ed'/>
<id>urn:sha1:98c6d47d73abfad32eb32520531c887d34bb31ed</id>
<content type='text'>
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 &amp; 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
</content>
</entry>
</feed>
