Added license adding script to utilityscripts because woops I didn't add this [skip-ci]

This commit is contained in:
Paul
2023-02-20 22:40:16 +10:00
parent 2d242af211
commit 7ed179edd2
+34
View File
@@ -0,0 +1,34 @@
import json
import copy
from pathlib import Path
# Traverses bones and inserts the data of the original keyframe into the scaled keyframe, popping the original if it is not 0.
def scale_keyframes(property, old_map, new_map):
if property in old_map[animationName]['bones'][bone].keys():
for frame in old_map[animationName]['bones'][bone][property]:
scaled_keyframe = float(frame) * speed_scalar
new_map[animationName]['bones'][bone][property][str(scaled_keyframe)] = new_map[animationName]['bones'][bone][property][frame]
if scaled_keyframe != 0:
new_map[animationName]['bones'][bone][property].pop(frame)
file_path = input('Enter file path: ')
speed_scalar = float(input('Enter speed scalar: '))
destination = input('Enter file destination: ')
# Parse file into json
file_data = Path(file_path).read_text()
file_json = json.loads(file_data)
# Makes deep copy of animations json, and traverses each keyframe in the bones, appending to the copy and popping the original frame (unless it is 0).
animations = file_json['animations']
animations_copy = copy.deepcopy(animations)
for animationName in animations:
animations_copy[animationName]['animation_length'] = animations_copy[animationName]['animation_length'] * speed_scalar
for bone in animations[animationName]['bones']:
scale_keyframes('position', animations, animations_copy)
scale_keyframes('rotation', animations, animations_copy)
# Replaces the animations with the new, mutated copy and writes it to a file at destination
file_json['animations'] = animations_copy
with open(destination, 'w') as outfile:
json.dump(file_json, outfile, indent=4)
print("Parsing complete.")