|
680 | 680 | "type": "object", |
681 | 681 | "default": {}, |
682 | 682 | "properties": { |
| 683 | + "matrix": { |
| 684 | + "type": "object", |
| 685 | + "default": {}, |
| 686 | + "description": "A collection of baked transformation matrix keyframes, identified by a floating-point timestamp.", |
| 687 | + "patternProperties": { |
| 688 | + "^\\d+\\.\\d+$": { |
| 689 | + "$ref": "#/definitions/matrix_keyframe" |
| 690 | + } |
| 691 | + } |
| 692 | + }, |
| 693 | + "decomposed": { |
| 694 | + "type": "object", |
| 695 | + "default": {}, |
| 696 | + "description": "A collection of baked decomposed transformation keyframes, identified by a floating-point timestamp.", |
| 697 | + "patternProperties": { |
| 698 | + "^\\d+\\.\\d+$": { |
| 699 | + "$ref": "#/definitions/decomposed_keyframe" |
| 700 | + } |
| 701 | + } |
| 702 | + }, |
683 | 703 | "position": { |
684 | 704 | "type": "object", |
685 | 705 | "default": {}, |
|
762 | 782 | "$ref": "#/definitions/molang_vector3" |
763 | 783 | }, |
764 | 784 | "interpolation": { |
| 785 | + "$ref": "#/definitions/keyframe_interpolation" |
| 786 | + } |
| 787 | + } |
| 788 | + }, |
| 789 | + "matrix_keyframe": { |
| 790 | + "type": "object", |
| 791 | + "required": ["value", "interpolation"], |
| 792 | + "description": "A baked transformation matrix keyframe, identified by a floating-point timestamp.", |
| 793 | + "properties": { |
| 794 | + "value": { |
| 795 | + "$ref": "#/definitions/matrix" |
| 796 | + }, |
| 797 | + "interpolation": { |
| 798 | + "$ref": "#/definitions/keyframe_interpolation" |
| 799 | + } |
| 800 | + } |
| 801 | + }, |
| 802 | + "decomposed_keyframe": { |
| 803 | + "type": "object", |
| 804 | + "required": ["value", "interpolation"], |
| 805 | + "description": "A baked decomposed transformation keyframe, identified by a floating-point timestamp.", |
| 806 | + "properties": { |
| 807 | + "value": { |
765 | 808 | "type": "object", |
766 | | - "oneOf": [ |
767 | | - { |
768 | | - "type": "object", |
769 | | - "required": ["type", "easing"], |
770 | | - "properties": { |
771 | | - "type": { |
772 | | - "const": "linear" |
773 | | - }, |
774 | | - "easing": { |
775 | | - "type": "string", |
776 | | - "enum": [ |
777 | | - "linear", |
778 | | - "step", |
779 | | - "ease_in_quad", |
780 | | - "ease_out_quad", |
781 | | - "ease_in_out_quad", |
782 | | - "ease_in_cubic", |
783 | | - "ease_out_cubic", |
784 | | - "ease_in_out_cubic", |
785 | | - "ease_in_quart", |
786 | | - "ease_out_quart", |
787 | | - "ease_in_out_quart", |
788 | | - "ease_in_quint", |
789 | | - "ease_out_quint", |
790 | | - "ease_in_out_quint", |
791 | | - "ease_in_sine", |
792 | | - "ease_out_sine", |
793 | | - "ease_in_out_sine", |
794 | | - "ease_in_expo", |
795 | | - "ease_out_expo", |
796 | | - "ease_in_out_expo", |
797 | | - "ease_in_circ", |
798 | | - "ease_out_circ", |
799 | | - "ease_in_out_circ", |
800 | | - "ease_in_back", |
801 | | - "ease_out_back", |
802 | | - "ease_in_out_back", |
803 | | - "ease_in_elastic", |
804 | | - "ease_out_elastic", |
805 | | - "ease_in_out_elastic", |
806 | | - "ease_in_bounce", |
807 | | - "ease_out_bounce", |
808 | | - "ease_in_out_bounce" |
809 | | - ] |
810 | | - }, |
811 | | - "easing_arguments": { |
812 | | - "type": "array", |
813 | | - "items": { |
814 | | - "type": "number" |
815 | | - }, |
816 | | - "default": [] |
817 | | - } |
818 | | - } |
819 | | - }, |
820 | | - { |
821 | | - "type": "object", |
822 | | - "required": [ |
823 | | - "type", |
824 | | - "left_handle_time", |
825 | | - "left_handle_value", |
826 | | - "right_handle_time", |
827 | | - "right_handle_value" |
828 | | - ], |
829 | | - "properties": { |
830 | | - "type": { |
831 | | - "const": "bezier" |
832 | | - }, |
833 | | - "left_handle_time": { |
834 | | - "$ref": "#/definitions/vector3" |
835 | | - }, |
836 | | - "left_handle_value": { |
837 | | - "$ref": "#/definitions/vector3" |
838 | | - }, |
839 | | - "right_handle_time": { |
840 | | - "$ref": "#/definitions/vector3" |
841 | | - }, |
842 | | - "right_handle_value": { |
843 | | - "$ref": "#/definitions/vector3" |
844 | | - } |
845 | | - } |
| 809 | + "properties": { |
| 810 | + "translation": { |
| 811 | + "$ref": "#/definitions/vector3", |
| 812 | + "default": [0.0, 0.0, 0.0] |
846 | 813 | }, |
847 | | - { |
848 | | - "type": "object", |
849 | | - "required": ["type"], |
850 | | - "properties": { |
851 | | - "type": { |
852 | | - "const": "catmullrom" |
853 | | - } |
854 | | - } |
| 814 | + "left_rotation": { |
| 815 | + "$ref": "#/definitions/vector4", |
| 816 | + "default": [0.0, 0.0, 0.0, 1.0] |
855 | 817 | }, |
856 | | - { |
857 | | - "type": "object", |
858 | | - "required": ["type"], |
859 | | - "properties": { |
860 | | - "type": { |
861 | | - "const": "step" |
862 | | - } |
863 | | - } |
| 818 | + "scale": { |
| 819 | + "$ref": "#/definitions/vector3", |
| 820 | + "default": [1.0, 1.0, 1.0] |
864 | 821 | } |
865 | | - ] |
| 822 | + } |
| 823 | + }, |
| 824 | + "interpolation": { |
| 825 | + "$ref": "#/definitions/keyframe_interpolation" |
866 | 826 | } |
867 | 827 | } |
868 | 828 | }, |
| 829 | + "keyframe_interpolation": { |
| 830 | + "type": "object", |
| 831 | + "oneOf": [ |
| 832 | + { |
| 833 | + "type": "object", |
| 834 | + "required": ["type", "easing"], |
| 835 | + "properties": { |
| 836 | + "type": { |
| 837 | + "const": "linear" |
| 838 | + }, |
| 839 | + "easing": { |
| 840 | + "type": "string", |
| 841 | + "enum": [ |
| 842 | + "linear", |
| 843 | + "step", |
| 844 | + "ease_in_quad", |
| 845 | + "ease_out_quad", |
| 846 | + "ease_in_out_quad", |
| 847 | + "ease_in_cubic", |
| 848 | + "ease_out_cubic", |
| 849 | + "ease_in_out_cubic", |
| 850 | + "ease_in_quart", |
| 851 | + "ease_out_quart", |
| 852 | + "ease_in_out_quart", |
| 853 | + "ease_in_quint", |
| 854 | + "ease_out_quint", |
| 855 | + "ease_in_out_quint", |
| 856 | + "ease_in_sine", |
| 857 | + "ease_out_sine", |
| 858 | + "ease_in_out_sine", |
| 859 | + "ease_in_expo", |
| 860 | + "ease_out_expo", |
| 861 | + "ease_in_out_expo", |
| 862 | + "ease_in_circ", |
| 863 | + "ease_out_circ", |
| 864 | + "ease_in_out_circ", |
| 865 | + "ease_in_back", |
| 866 | + "ease_out_back", |
| 867 | + "ease_in_out_back", |
| 868 | + "ease_in_elastic", |
| 869 | + "ease_out_elastic", |
| 870 | + "ease_in_out_elastic", |
| 871 | + "ease_in_bounce", |
| 872 | + "ease_out_bounce", |
| 873 | + "ease_in_out_bounce" |
| 874 | + ] |
| 875 | + }, |
| 876 | + "easing_arguments": { |
| 877 | + "type": "array", |
| 878 | + "items": { |
| 879 | + "type": "number" |
| 880 | + }, |
| 881 | + "default": [] |
| 882 | + } |
| 883 | + } |
| 884 | + }, |
| 885 | + { |
| 886 | + "type": "object", |
| 887 | + "required": [ |
| 888 | + "type", |
| 889 | + "left_handle_time", |
| 890 | + "left_handle_value", |
| 891 | + "right_handle_time", |
| 892 | + "right_handle_value" |
| 893 | + ], |
| 894 | + "properties": { |
| 895 | + "type": { |
| 896 | + "const": "bezier" |
| 897 | + }, |
| 898 | + "left_handle_time": { |
| 899 | + "$ref": "#/definitions/vector3" |
| 900 | + }, |
| 901 | + "left_handle_value": { |
| 902 | + "$ref": "#/definitions/vector3" |
| 903 | + }, |
| 904 | + "right_handle_time": { |
| 905 | + "$ref": "#/definitions/vector3" |
| 906 | + }, |
| 907 | + "right_handle_value": { |
| 908 | + "$ref": "#/definitions/vector3" |
| 909 | + } |
| 910 | + } |
| 911 | + }, |
| 912 | + { |
| 913 | + "type": "object", |
| 914 | + "required": ["type"], |
| 915 | + "properties": { |
| 916 | + "type": { |
| 917 | + "const": "catmullrom" |
| 918 | + } |
| 919 | + } |
| 920 | + }, |
| 921 | + { |
| 922 | + "type": "object", |
| 923 | + "required": ["type"], |
| 924 | + "properties": { |
| 925 | + "type": { |
| 926 | + "const": "step" |
| 927 | + } |
| 928 | + } |
| 929 | + } |
| 930 | + ] |
| 931 | + }, |
869 | 932 | "resource_location": { |
870 | 933 | "type": "string", |
871 | 934 | "pattern": "^[a-z0-9_\\-]+:[a-z0-9_\\-./]+$", |
|
0 commit comments