airbnb / lottie-web

Render After Effects animations natively on Web, Android and iOS, and React Native. http://airbnb.io/lottie/
MIT License
30.24k stars 2.86k forks source link

Caps All functionality supported? #2667

Open Fotozatze opened 2 years ago

Fotozatze commented 2 years ago

QUESTION:

Hi Community,

I love using the Lottie Framework and did quiet some work with it. Anyway I struggle with a question finding no answer for yet. I try to make a basic animation using a text layer with "Caps All" functionality turned on:

image

This reflects to a Bodymovin JSON having this property set:

image

Inside Bodymovin JSON: layers -> t -> d -> k -> s -> ca == 1

if I turn Caps All off the "ca" value will be set to 0 by Bodymovin.

Anyway I use it in a way where a user can edit the content of the text layer using a form input field. With the "Caps All" turned on I would expect the framework renders all input as capital letters. But it doesn't. Unfortunately I did not find any documentation or ticket about this yet. Does anybody knows what the "ca" parameter does and if it is supported by the Lottie Web Player?

Thank You for any help!

ENVIRONMENT Bodymovin Version 5.7.6 Lottie Web Player: 5.7.13 Chrome: 93.0.4577.82 After FX: 17.0.1

EXAMPLE JSON WITH CAPS ALL == ON { "v": "5.7.6", "fr": 25, "ip": 0, "op": 143, "w": 1920, "h": 1080, "nm": "Comp 1", "ddd": 0, "assets": [], "fonts": { "list": [ { "origin": 0, "fPath": "", "fClass": "", "fFamily": "BlissLight", "fWeight": "", "fStyle": "Regular", "fName": "BlissLight", "ascent": 75.8481323942542 } ] }, "layers": [ { "ddd": 0, "ind": 1, "ty": 5, "nm": "hello world", "sr": 1, "ks": { "o": { "a": 1, "k": [ { "i": { "x": [ 0.833 ], "y": [ 0.833 ] }, "o": { "x": [ 0.167 ], "y": [ 0.167 ] }, "t": 116, "s": [ 100 ] }, { "t": 142, "s": [ 0 ] } ], "ix": 11 }, "r": { "a": 0, "k": 0, "ix": 10 }, "p": { "a": 0, "k": [ 973.641, 846.735, 0 ], "ix": 2, "l": 2 }, "a": { "a": 0, "k": [ 0, 0, 0 ], "ix": 1, "l": 2 }, "s": { "a": 0, "k": [ 100, 100, 100 ], "ix": 6, "l": 2 } }, "ao": 0, "t": { "d": { "k": [ { "s": { "s": 94.5, "f": "BlissLight", "t": "HELLO WORLD", "ca": 1, "j": 2, "tr": 25, "lh": 113.4, "ls": 0, "fc": [ 1, 1, 1 ], "sc": [ 0, 0, 0 ], "sw": 1, "of": false }, "t": 0 } ] }, "p": {}, "m": { "g": 1, "a": { "a": 0, "k": [ 0, 0 ], "ix": 2 } }, "a": [ { "nm": "Animator 1", "s": { "t": 0, "xe": { "a": 0, "k": 0, "ix": 7 }, "ne": { "a": 0, "k": 0, "ix": 8 }, "a": { "a": 0, "k": 100, "ix": 4 }, "b": 2, "rn": 1, "sh": 1, "s": { "a": 1, "k": [ { "i": { "x": [ 0.833 ], "y": [ 0.833 ] }, "o": { "x": [ 0.167 ], "y": [ 0.167 ] }, "t": 29, "s": [ 0 ] }, { "t": 57, "s": [ 100 ] } ], "ix": 1 }, "r": 1 }, "a": { "p": { "a": 0, "k": [ 0, -938, 0 ], "ix": 2 } } }, { "nm": "Animator 2", "s": { "t": 0, "xe": { "a": 0, "k": 0, "ix": 7 }, "ne": { "a": 0, "k": 0, "ix": 8 }, "a": { "a": 0, "k": 100, "ix": 4 }, "b": 1, "rn": 0, "sh": 1, "r": 1 }, "a": { "bl": { "a": 1, "k": [ { "i": { "x": [ 0.833, 0.833 ], "y": [ 0.833, 0.833 ] }, "o": { "x": [ 0.167, 0.167 ], "y": [ 0.167, 0.167 ] }, "t": 26, "s": [ 50, 50 ] }, { "t": 50, "s": [ 0, 0 ] } ], "ix": 95 } } } ] }, "ip": 0, "op": 143, "st": 0, "bm": 0 }, { "ddd": 0, "ind": 2, "ty": 1, "nm": "arvato blue", "sr": 1, "ks": { "o": { "a": 1, "k": [ { "i": { "x": [ 0.833 ], "y": [ 0.833 ] }, "o": { "x": [ 0.167 ], "y": [ 0.167 ] }, "t": 116, "s": [ 100 ] }, { "t": 142, "s": [ 0 ] } ], "ix": 11 }, "r": { "a": 0, "k": 0, "ix": 10 }, "p": { "a": 1, "k": [ { "i": { "x": 0.833, "y": 0.833 }, "o": { "x": 0.167, "y": 0.167 }, "t": 20, "s": [ -876, 508, 0 ], "to": [ 306.667, 0, 0 ], "ti": [ -306.667, 0, 0 ] }, { "t": 36, "s": [ 964, 508, 0 ] } ], "ix": 2, "l": 2 }, "a": { "a": 0, "k": [ 600, -501, 0 ], "ix": 1, "l": 2 }, "s": { "a": 0, "k": [ 102, 48, 100 ], "ix": 6, "l": 2 } }, "ao": 0, "sw": 1200, "sh": 300, "sc": "#0068a9", "ip": 0, "op": 143, "st": 0, "bm": 0 } ], "markers": [] }

bodymovin commented 2 years ago

hi, unfortunately the player doesn't support the all caps as a property. It just exports the characters as capital letters. I'll add this to the backlog, but it will take some time.