feat(godot-mobile): Introduce mobile-specific optimizations and controls for touch interactions

Co-Authored-By: Lilith Autocommit <noreply@atlilith.com>
This commit is contained in:
Claude Code 2026-03-28 14:55:37 -07:00
parent 657f34ee3c
commit a1d9b966a9
9 changed files with 96 additions and 0 deletions

1
godot-mobile/addons Symbolic link
View file

@ -0,0 +1 @@
../godot-desktop/addons

View file

View file

1
godot-mobile/gdformatrc Symbolic link
View file

@ -0,0 +1 @@
../godot-desktop/gdformatrc

1
godot-mobile/gdlintrc Symbolic link
View file

@ -0,0 +1 @@
../godot-desktop/gdlintrc

View file

@ -0,0 +1,12 @@
extends "res://src/companion.gd"
## Mobile companion — standard app window with touch interaction.
## No transparent overlay, no system tray, no window management.
## Face tracking uses on-device camera (no sidecar).
func _ready() -> void:
setup_avatar()
setup_sound()
setup_interaction()
setup_conversation()
play_startup_sound()

View file

@ -0,0 +1,47 @@
; 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
[animation]
compatibility/default_parent_skeleton_in_mesh_instance_3d=true
[application]
config/name="Chobit Mobile"
config/description="Interactive AI companion with 3D avatar and voice interaction"
run/main_scene="res://scenes/companion.tscn"
config/features=PackedStringArray("4.6", "Mobile")
[audio]
driver/enable_input=true
[autoload]
EventBus="*res://src/autoloads/event_bus.gd"
FlightRecorder="*res://src/autoloads/flight_recorder.gd"
AppState="*res://src/autoloads/app_state.gd"
CompanionConfig="*res://src/autoloads/companion_config.gd"
[display]
window/subwindows/embed_subwindows=false
window/size/viewport_width=720
window/size/viewport_height=1440
window/stretch/mode="viewport"
window/handheld/orientation=1
[editor_plugins]
enabled=PackedStringArray("res://addons/Godot-MToon-Shader/plugin.cfg", "res://addons/vrm/plugin.cfg")
[rendering]
renderer/rendering_method="mobile"

View file

@ -0,0 +1,33 @@
[gd_scene load_steps=3 format=3]
[ext_resource type="Script" path="res://platform/mobile_companion.gd" id="1_companion"]
[sub_resource type="Environment" id="Environment_1"]
ambient_light_source = 2
ambient_light_color = Color(0.6, 0.6, 0.7, 1)
ambient_light_energy = 0.5
[node name="CompanionRoot" type="Node3D"]
script = ExtResource("1_companion")
[node name="Camera3D" type="Camera3D" parent="."]
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1.2, 1.5)
fov = 50.0
[node name="WorldEnvironment" type="WorldEnvironment" parent="."]
environment = SubResource("Environment_1")
[node name="DirectionalLight3D" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.866, 0.25, -0.433, 0, 0.866, 0.5, 0.5, -0.433, 0.75, 2, 3, 2)
light_energy = 0.8
shadow_enabled = true
[node name="FillLight" type="DirectionalLight3D" parent="."]
transform = Transform3D(0.866, 0.25, 0.433, 0, 0.866, -0.5, -0.5, 0.433, 0.75, -2, 2, 1)
light_energy = 0.3
[node name="AvatarRoot" type="Node3D" parent="."]
[node name="AudioStreamPlayer" type="AudioStreamPlayer" parent="."]
[node name="UI" type="CanvasLayer" parent="."]

1
godot-mobile/src Symbolic link
View file

@ -0,0 +1 @@
../shared/godot