add files

This commit is contained in:
Persephone Bubblegum-Holiday 2025-07-31 20:33:48 -07:00
parent a543c3fba6
commit 8907612f55
11 changed files with 269 additions and 0 deletions

4
.editorconfig Normal file
View file

@ -0,0 +1,4 @@
root = true
[*]
charset = utf-8

View file

@ -0,0 +1,37 @@
[remap]
importer="scene"
importer_version=1
type="PackedScene"
uid="uid://c7g1gipglo0gx"
path="res://.godot/imported/Anita3st.glb-ff32b6134ac6bb4b90a65a4c2be45f29.scn"
[deps]
source_file="res://LoadedModContent/GreatTransformation/Models/Anita3st.glb"
dest_files=["res://.godot/imported/Anita3st.glb-ff32b6134ac6bb4b90a65a4c2be45f29.scn"]
[params]
nodes/root_type=""
nodes/root_name=""
nodes/apply_root_scale=true
nodes/root_scale=1.0
nodes/import_as_skeleton_bones=false
nodes/use_node_type_suffixes=true
meshes/ensure_tangents=true
meshes/generate_lods=true
meshes/create_shadow_meshes=true
meshes/light_baking=1
meshes/lightmap_texel_size=0.2
meshes/force_disable_compression=false
skins/use_named_skins=true
animation/import=true
animation/fps=30
animation/trimming=false
animation/remove_immutable_tracks=true
animation/import_rest_as_RESET=false
import_script/path=""
_subresources={}
gltf/naming_version=1
gltf/embedded_image_handling=1

View file

@ -0,0 +1,61 @@
[gd_scene load_steps=5 format=3 uid="uid://cwus7ucfs7krc"]
[ext_resource type="PackedScene" uid="uid://c7g1gipglo0gx" path="res://LoadedModContent/GreatTransformation/Models/Anita3st.glb" id="1_psnof"]
[ext_resource type="Script" uid="uid://bu68w4jnh0n2b" path="res://Scripts/AnimatronicController.gd" id="2_jnn4e"]
[ext_resource type="Script" uid="uid://d1p4ite8ts2wi" path="res://Scripts/LightController.gd" id="3_f5t6i"]
[sub_resource type="Environment" id="Environment_45het"]
ambient_light_source = 1
[node name="GreatTransformation" type="Node3D"]
[node name="Anita" parent="." instance=ExtResource("1_psnof")]
transform = Transform3D(0.25, 0, 0, 0, 0.25, 0, 0, 0, 0.25, 0, 0, 0)
script = ExtResource("2_jnn4e")
[node name="Spots" type="Node3D" parent="."]
script = ExtResource("3_f5t6i")
[node name="Anita 1" type="SpotLight3D" parent="Spots"]
transform = Transform3D(-0.965926, -0.109382, 0.23457, -2.84193e-15, 0.906308, 0.422618, -0.258819, 0.408218, -0.875426, 0.45, 2.75, -2)
visible = false
light_color = Color(1, 0.529412, 0.85098, 1)
light_energy = 5.0
spot_attenuation = 2.0
spot_angle = 10.0
spot_angle_attenuation = 0.15
[node name="Anita 2" type="SpotLight3D" parent="Spots"]
transform = Transform3D(-0.965926, 0.109382, -0.23457, -9.47311e-16, 0.906308, 0.422618, 0.258819, 0.408218, -0.875426, -0.5, 2.75, -2)
visible = false
light_color = Color(0.666667, 0.960784, 0.596078, 1)
light_energy = 5.0
spot_attenuation = 2.0
spot_angle = 10.0
spot_angle_attenuation = 0.15
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_45het")
[node name="Angle 1" type="Camera3D" parent="."]
transform = Transform3D(-1, -2.26267e-08, 8.44439e-08, 0, 0.965926, 0.258819, -8.74228e-08, 0.258819, -0.965926, 0, 1.75, -2)
current = true
fov = 60.0
[node name="Angle 2" type="Camera3D" parent="."]
transform = Transform3D(-1, -2.26267e-08, 8.44439e-08, 0, 0.965926, 0.258819, -8.74228e-08, 0.258819, -0.965926, 0, 2, -1)
fov = 60.0
[node name="Angle 3" type="Camera3D" parent="."]
transform = Transform3D(-0.866025, 0.25, -0.433013, 0, 0.866025, 0.5, 0.5, 0.433013, -0.75, -1, 2.75, -2)
fov = 60.0
[node name="OmniLight3D" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 2, 1.5, -3)
light_color = Color(1, 0.960784, 0.85098, 1)
light_energy = 0.5
[node name="OmniLight3D2" type="OmniLight3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -2, 1.5, -3)
light_color = Color(1, 0.960784, 0.85098, 1)
light_energy = 0.5

View file

@ -0,0 +1,45 @@
extends Node
var ModInfo = {
"mod_name": "Great Transformation",
"mod_creator": "Persephone (KawaiiZenbo)",
"mod_version": 1.0,
"mod_description": "Embark on a magical journey featuring the cutest cheerleader, Anita!\nSmells like a treated lake and waterlogged wood.\n\nAnita is from the game \"oneway.exe\".\nThis mod is not associated with Disordered Media or Adair Carnival of Family Magic.",
"implements_stages":
{
"Great Transformation": {
"bits": 19,
"scene": "res://LoadedModContent/GreatTransformation/Stages/GreatTransformation.tscn",
"scene_ref_base": "SubViewport/GreatTransformation/",
"camera_count": 3,
"ust_type": "Rockafire Explosion/3-Stage",
"bit_mapping":
{
23: { "bot": "Anita", "movement": "Mouth", "flow_in": 3.0, "flow_out": 2.0 },
26: { "bot": "Anita", "movement": "Left Eyelid", "flow_in": 1.5, "flow_out": 2.0 },
27: { "bot": "Anita", "movement": "Right Eyelid", "flow_in": 1.5, "flow_out": 2.0 },
28: { "bot": "Anita", "movement": "Eyes Left", "flow_in": 3.5, "flow_out": 1.5 },
29: { "bot": "Anita", "movement": "Eyes Right", "flow_in": 3.5, "flow_out": 1.5 },
30: { "bot": "Anita", "movement": "Head Left", "flow_in": 1.5, "flow_out": 1.5 },
31: { "bot": "Anita", "movement": "Head Right", "flow_in": 1.5, "flow_out": 1.5 },
32: { "bot": "Anita", "movement": "Head Up", "flow_in": 1.0, "flow_out": 1.0 },
33: { "bot": "Anita", "movement": "Left Arm Up", "flow_in": 0.8, "flow_out": 0.6 },
34: { "bot": "Anita", "movement": "Left Arm Twist", "flow_in": 0.8, "flow_out": 0.8 },
35: { "bot": "Anita", "movement": "Left Elbow", "flow_in": 1.0, "flow_out": 1.0 },
36: { "bot": "Anita", "movement": "Right Arm Up", "flow_in": 0.8, "flow_out": 0.6 },
37: { "bot": "Anita", "movement": "Right Arm Twist", "flow_in": 0.8, "flow_out": 0.8 },
38: { "bot": "Anita", "movement": "Right Elbow", "flow_in": 1.0, "flow_out": 1.0 },
39: { "bot": "Anita", "movement": "Body Left", "flow_in": 0.7, "flow_out": 0.7 },
40: { "bot": "Anita", "movement": "Body Right", "flow_in": 0.7, "flow_out": 0.7 },
41: { "bot": "Anita", "movement": "Body Lean", "flow_in": 1.0, "flow_out": 0.8 },
125: { "bot": "Spots", "movement": "Anita 1", "flow_in": "None", "flow_out": "None" },
131: { "bot": "Spots", "movement": "Anita 2", "flow_in": "None", "flow_out": "None" },
},
"cosmetics": [ ],
"cosmetic_defaults": [ ]
}
}
}

View file

@ -0,0 +1 @@
uid://cbpaav5uyn1sq

View file

@ -0,0 +1,93 @@
extends Node3D
var animation_player : AnimationPlayer
var animation_tree : AnimationTree
var blend_tree : AnimationNodeBlendTree
var movement_states : Dictionary
func _ready():
animation_player = $AnimationPlayer
animation_tree = AnimationTree.new()
animation_tree.anim_player = animation_player.get_path()
add_child(animation_tree)
animation_tree.tree_root = AnimationNodeBlendTree.new()
animation_tree.active = true
blend_tree = animation_tree.tree_root as AnimationNodeBlendTree
animation_player.speed_scale = 0
var animations = animation_player.get_animation_list()
for animation in animations:
movement_states[animation] = [false, 0.0, 0.0, 0.0]
var prev_name = "Anim_" + animations[0]
var old_time_name = "Time_" + animations[0]
var old_seek_name = "Seek_" + animations[0]
var prev_anim_node := AnimationNodeAnimation.new()
prev_anim_node.animation = animations[0]
blend_tree.add_node(prev_name, prev_anim_node)
var old_time_node := AnimationNodeTimeScale.new()
blend_tree.add_node(old_time_name,old_time_node)
var _old_seek_node := AnimationNodeTimeSeek.new()
blend_tree.add_node(old_seek_name,_old_seek_node)
blend_tree.connect_node(old_time_name,0,prev_name)
blend_tree.connect_node(old_seek_name,0,old_time_name)
prev_name = old_seek_name
for i in range(1, animations.size()):
var anim_name = "Anim_" + animations[i]
var add_name = "Add_" + animations[i]
var time_name = "Time_" + animations[i]
var seek_name = "Seek_" + animations[i]
var new_anim_node := AnimationNodeAnimation.new()
new_anim_node.animation = animations[i]
blend_tree.add_node(anim_name, new_anim_node)
var time_node := AnimationNodeTimeScale.new()
blend_tree.add_node(time_name,time_node)
var seek_node := AnimationNodeTimeSeek.new()
blend_tree.add_node(seek_name,seek_node)
var add_node := AnimationNodeAdd2.new()
blend_tree.add_node(add_name, add_node)
blend_tree.connect_node(time_name, 0, anim_name)
blend_tree.connect_node(seek_name, 0, time_name)
blend_tree.connect_node(add_name, 0, prev_name)
blend_tree.connect_node(add_name, 1, seek_name)
prev_name = add_name
blend_tree.connect_node("output", 0, prev_name)
for i in range(0, animations.size()):
animation_tree.set("parameters/Add_" + str(animations[i]) + "/add_amount", 1.0)
animation_tree.set("parameters/Seek_" + str(animations[i]) + "/seek_request", 0)
animation_tree.set("parameters/Time_" + str(animations[i]) + "/scale", 0)
func _physics_process(delta: float) -> void:
for key in movement_states:
var anim_path = "parameters/Seek_" + key + "/seek_request"
var state = movement_states[key]
if (state[0]):
state[1] = clamp(float(state[1]) + (delta * state[2]), 0, 1)
else:
state[1] = clamp(float(state[1]) - (delta * state[3]), 0, 1)
animation_tree.set(anim_path, state[1])
func _movement_in(movement, rate):
movement_states[movement][0] = true
movement_states[movement][2] = rate
func _movement_out(movement, rate):
movement_states[movement][0] = false
movement_states[movement][3] = rate

View file

@ -0,0 +1 @@
uid://bu68w4jnh0n2b

View file

@ -0,0 +1,7 @@
extends Node3D
func _movement_in(movement, _rate):
get_node(movement).visible = true
func _movement_out(movement, _rate):
get_node(movement).visible = false

View file

@ -0,0 +1 @@
uid://d1p4ite8ts2wi

19
project.godot Normal file
View file

@ -0,0 +1,19 @@
; Engine configuration file.
; It's best edited using the editor UI and not directly,
; since the parameters that go here are not all obvious.
;
; Format:
; [section] ; section goes between []
; param=value ; assign values to parameters
config_version=5
[application]
config/name="PneuMod-GreatTransformation"
config/features=PackedStringArray("4.4", "GL Compatibility")
[rendering]
renderer/rendering_method="gl_compatibility"
renderer/rendering_method.mobile="gl_compatibility"