From 2811b3f50f26b117f5b4071ee7be2782439b9b93 Mon Sep 17 00:00:00 2001 From: "K. S. Ernest (iFire) Lee" Date: Tue, 12 Nov 2024 08:07:19 -0800 Subject: [PATCH] Elixir build script to export releases. * linux * windows --- .github/workflows/release.yaml | 37 + .gitignore | 12 + addons/GPUTrail-main/GPUTrail3D.gd.uid | 1 + addons/GPUTrail-main/plugin.gd.uid | 1 + .../GPUTrail-main/shaders/trail.gdshader.uid | 1 + .../shaders/trail_draw_pass.gdshader.uid | 1 + .../core/base_procedural_grid_3d.gd.uid | 1 + .../procedural_3d_grid/core/bool_timer.gd.uid | 1 + .../core/experiment.gdshader.uid | 1 + .../core/follow_test.gd.uid | 1 + addons/procedural_3d_grid/core/hand.gd.uid | 1 + .../core/procedural_grid_3d.gd.uid | 1 + .../core/procedural_grid_3d.gdshader.uid | 1 + .../core/simple_sketcher/simple_sketch.gd.uid | 1 + .../simple_sketch.gdshader.uid | 1 + .../simple_sketch_shadow.gdshader.uid | 1 + .../core/simple_sketcher/sketch_tool.gd.uid | 1 + addons/procedural_3d_grid/core/strokes.gd.uid | 1 + .../procedural_3d_grid/core/world_grab.gd.uid | 1 + .../procedural_3d_grid/core/xr_origin.gd.uid | 1 + .../procedural_3d_grid/core/xr_pinch.gd.uid | 1 + addons/vsk_version/build_constants.gd | 10 - addons/vsk_version/vsk_version.gd | 22 +- buildscript.iex | 255 +++ export_presets.cfg | 446 +++++- justfile | 57 - openxr_action_map.tres | 1362 +++++++++++++---- .../art/sophia/sophia.glb.import | 4 +- procedural_3d_grid_sample/scenes/main.tscn | 28 +- project.godot | 2 +- 30 files changed, 1804 insertions(+), 450 deletions(-) create mode 100644 .github/workflows/release.yaml create mode 100644 addons/GPUTrail-main/GPUTrail3D.gd.uid create mode 100644 addons/GPUTrail-main/plugin.gd.uid create mode 100644 addons/GPUTrail-main/shaders/trail.gdshader.uid create mode 100644 addons/GPUTrail-main/shaders/trail_draw_pass.gdshader.uid create mode 100644 addons/procedural_3d_grid/core/base_procedural_grid_3d.gd.uid create mode 100644 addons/procedural_3d_grid/core/bool_timer.gd.uid create mode 100644 addons/procedural_3d_grid/core/experiment.gdshader.uid create mode 100644 addons/procedural_3d_grid/core/follow_test.gd.uid create mode 100644 addons/procedural_3d_grid/core/hand.gd.uid create mode 100644 addons/procedural_3d_grid/core/procedural_grid_3d.gd.uid create mode 100644 addons/procedural_3d_grid/core/procedural_grid_3d.gdshader.uid create mode 100644 addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gd.uid create mode 100644 addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gdshader.uid create mode 100644 addons/procedural_3d_grid/core/simple_sketcher/simple_sketch_shadow.gdshader.uid create mode 100644 addons/procedural_3d_grid/core/simple_sketcher/sketch_tool.gd.uid create mode 100644 addons/procedural_3d_grid/core/strokes.gd.uid create mode 100644 addons/procedural_3d_grid/core/world_grab.gd.uid create mode 100644 addons/procedural_3d_grid/core/xr_origin.gd.uid create mode 100644 addons/procedural_3d_grid/core/xr_pinch.gd.uid delete mode 100644 addons/vsk_version/build_constants.gd create mode 100644 buildscript.iex delete mode 100644 justfile diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 0000000..03ff1c7 --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,37 @@ +name: Release + +on: + push: + tags: + - 'v*.*.*' + branches: + - main + - master + pull_request: + +jobs: + build: + runs-on: windows-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Install unzip + run: choco install unzip + + - name: Set up Elixir + uses: erlef/setup-beam@v1 + with: + elixir-version: '1.12' + otp-version: '24.0' + + - name: Run build script + run: | + elixir --sname build -r buildscript.iex -e "BuildScript.all" + + - name: Archive artifacts + uses: actions/upload-artifact@v4 + with: + name: build-artifacts + path: export/export_* diff --git a/.gitignore b/.gitignore index 656dca5..fa69fa3 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,15 @@ data_*/ .DS_Store export/ + +addons/vsk_version/build_constants.gd.uid + +addons/vsk_version/build_constants.gd + +addons/vsk_version/vsk_version.gd.uid + +commandlinetools-linux-8092744_latest.zip + +jdk/ + +cmdline-tools/ diff --git a/addons/GPUTrail-main/GPUTrail3D.gd.uid b/addons/GPUTrail-main/GPUTrail3D.gd.uid new file mode 100644 index 0000000..0f9cd37 --- /dev/null +++ b/addons/GPUTrail-main/GPUTrail3D.gd.uid @@ -0,0 +1 @@ +uid://bjpqewbtgif6n diff --git a/addons/GPUTrail-main/plugin.gd.uid b/addons/GPUTrail-main/plugin.gd.uid new file mode 100644 index 0000000..587f80d --- /dev/null +++ b/addons/GPUTrail-main/plugin.gd.uid @@ -0,0 +1 @@ +uid://dtvbu6i7jdfpp diff --git a/addons/GPUTrail-main/shaders/trail.gdshader.uid b/addons/GPUTrail-main/shaders/trail.gdshader.uid new file mode 100644 index 0000000..f0896c4 --- /dev/null +++ b/addons/GPUTrail-main/shaders/trail.gdshader.uid @@ -0,0 +1 @@ +uid://nqhuvjyl5bf4 diff --git a/addons/GPUTrail-main/shaders/trail_draw_pass.gdshader.uid b/addons/GPUTrail-main/shaders/trail_draw_pass.gdshader.uid new file mode 100644 index 0000000..6c8c1eb --- /dev/null +++ b/addons/GPUTrail-main/shaders/trail_draw_pass.gdshader.uid @@ -0,0 +1 @@ +uid://b35htbko4hv85 diff --git a/addons/procedural_3d_grid/core/base_procedural_grid_3d.gd.uid b/addons/procedural_3d_grid/core/base_procedural_grid_3d.gd.uid new file mode 100644 index 0000000..212319f --- /dev/null +++ b/addons/procedural_3d_grid/core/base_procedural_grid_3d.gd.uid @@ -0,0 +1 @@ +uid://bhvqwircniboq diff --git a/addons/procedural_3d_grid/core/bool_timer.gd.uid b/addons/procedural_3d_grid/core/bool_timer.gd.uid new file mode 100644 index 0000000..8159625 --- /dev/null +++ b/addons/procedural_3d_grid/core/bool_timer.gd.uid @@ -0,0 +1 @@ +uid://dioc7tw6snepa diff --git a/addons/procedural_3d_grid/core/experiment.gdshader.uid b/addons/procedural_3d_grid/core/experiment.gdshader.uid new file mode 100644 index 0000000..50bda5f --- /dev/null +++ b/addons/procedural_3d_grid/core/experiment.gdshader.uid @@ -0,0 +1 @@ +uid://b7vj4bp81hjsh diff --git a/addons/procedural_3d_grid/core/follow_test.gd.uid b/addons/procedural_3d_grid/core/follow_test.gd.uid new file mode 100644 index 0000000..cb7edad --- /dev/null +++ b/addons/procedural_3d_grid/core/follow_test.gd.uid @@ -0,0 +1 @@ +uid://18xcph2o0pci diff --git a/addons/procedural_3d_grid/core/hand.gd.uid b/addons/procedural_3d_grid/core/hand.gd.uid new file mode 100644 index 0000000..5ed4756 --- /dev/null +++ b/addons/procedural_3d_grid/core/hand.gd.uid @@ -0,0 +1 @@ +uid://bhgqer41udrla diff --git a/addons/procedural_3d_grid/core/procedural_grid_3d.gd.uid b/addons/procedural_3d_grid/core/procedural_grid_3d.gd.uid new file mode 100644 index 0000000..f7b02be --- /dev/null +++ b/addons/procedural_3d_grid/core/procedural_grid_3d.gd.uid @@ -0,0 +1 @@ +uid://c6ouln8g13834 diff --git a/addons/procedural_3d_grid/core/procedural_grid_3d.gdshader.uid b/addons/procedural_3d_grid/core/procedural_grid_3d.gdshader.uid new file mode 100644 index 0000000..2076282 --- /dev/null +++ b/addons/procedural_3d_grid/core/procedural_grid_3d.gdshader.uid @@ -0,0 +1 @@ +uid://cubfh2dm1g350 diff --git a/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gd.uid b/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gd.uid new file mode 100644 index 0000000..dfa540b --- /dev/null +++ b/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gd.uid @@ -0,0 +1 @@ +uid://dheiq8csvlle8 diff --git a/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gdshader.uid b/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gdshader.uid new file mode 100644 index 0000000..b1184f8 --- /dev/null +++ b/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gdshader.uid @@ -0,0 +1 @@ +uid://c46ssct7fj6pj diff --git a/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch_shadow.gdshader.uid b/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch_shadow.gdshader.uid new file mode 100644 index 0000000..8f31393 --- /dev/null +++ b/addons/procedural_3d_grid/core/simple_sketcher/simple_sketch_shadow.gdshader.uid @@ -0,0 +1 @@ +uid://b2cjphncghsi8 diff --git a/addons/procedural_3d_grid/core/simple_sketcher/sketch_tool.gd.uid b/addons/procedural_3d_grid/core/simple_sketcher/sketch_tool.gd.uid new file mode 100644 index 0000000..af6f983 --- /dev/null +++ b/addons/procedural_3d_grid/core/simple_sketcher/sketch_tool.gd.uid @@ -0,0 +1 @@ +uid://dl6f33628oxnt diff --git a/addons/procedural_3d_grid/core/strokes.gd.uid b/addons/procedural_3d_grid/core/strokes.gd.uid new file mode 100644 index 0000000..87dcfd9 --- /dev/null +++ b/addons/procedural_3d_grid/core/strokes.gd.uid @@ -0,0 +1 @@ +uid://beag45eu5igqb diff --git a/addons/procedural_3d_grid/core/world_grab.gd.uid b/addons/procedural_3d_grid/core/world_grab.gd.uid new file mode 100644 index 0000000..dbe2786 --- /dev/null +++ b/addons/procedural_3d_grid/core/world_grab.gd.uid @@ -0,0 +1 @@ +uid://bcc178k783hmw diff --git a/addons/procedural_3d_grid/core/xr_origin.gd.uid b/addons/procedural_3d_grid/core/xr_origin.gd.uid new file mode 100644 index 0000000..2239672 --- /dev/null +++ b/addons/procedural_3d_grid/core/xr_origin.gd.uid @@ -0,0 +1 @@ +uid://cqeyvdcoi37qr diff --git a/addons/procedural_3d_grid/core/xr_pinch.gd.uid b/addons/procedural_3d_grid/core/xr_pinch.gd.uid new file mode 100644 index 0000000..35793b8 --- /dev/null +++ b/addons/procedural_3d_grid/core/xr_pinch.gd.uid @@ -0,0 +1 @@ +uid://c351cyh3u2n31 diff --git a/addons/vsk_version/build_constants.gd b/addons/vsk_version/build_constants.gd deleted file mode 100644 index 34307a7..0000000 --- a/addons/vsk_version/build_constants.gd +++ /dev/null @@ -1,10 +0,0 @@ -# Copyright (c) 2023-present. This file is part of V-Sekai https://v-sekai.org/. -# K. S. Ernest (Fire) Lee & Contributors (see .all-contributorsrc). -# build_constants.gd -# SPDX-License-Identifier: MIT - -# Set by the build system, do not modify! - -const BUILD_LABEL = "DEVELOPER_BUILD" -const BUILD_DATE_STR = "Build Date" -const BUILD_UNIX_TIME = -1 diff --git a/addons/vsk_version/vsk_version.gd b/addons/vsk_version/vsk_version.gd index 42aa3eb..b06e194 100644 --- a/addons/vsk_version/vsk_version.gd +++ b/addons/vsk_version/vsk_version.gd @@ -6,8 +6,24 @@ @tool extends Node -const build_constants_const = preload("build_constants.gd") +var build_constants = null +func _ready(): + if ResourceLoader.exists("build_constants.gd"): + build_constants = preload("build_constants.gd") + else: + print("build_constants.gd does not exist") -static func get_build_label() -> String: - return build_constants_const.BUILD_DATE_STR + "\n" + build_constants_const.BUILD_LABEL +func get_build_label() -> String: + var build_label = "DEVELOPER_BUILD" + var build_date_str = "Build Date" + var build_unix_time = -1 + + if build_constants and build_constants.has("BUILD_LABEL"): + build_label = build_constants.BUILD_LABEL + if build_constants and build_constants.has("BUILD_DATE_STR"): + build_date_str = build_constants.BUILD_DATE_STR + if build_constants and build_constants.has("BUILD_UNIX_TIME"): + build_unix_time = build_constants.BUILD_UNIX_TIME + + return build_date_str + "\n" + build_label diff --git a/buildscript.iex b/buildscript.iex new file mode 100644 index 0000000..6d58fef --- /dev/null +++ b/buildscript.iex @@ -0,0 +1,255 @@ +defmodule BuildScript do + @url "https://github.com/V-Sekai/world-editor/releases/download/latest.v-sekai-editor-187/v-sekai-world.zip" + @output "v-sekai-world.zip" + @extract_dir "export" + @extract_dir_extracted "#{@extract_dir}/temp" + @os_family :os.type() + @project_name "xr_grid" + @expected_hash "F7AB549A676C52DD47F9D74C9308EBBE447ABFA1513C7E563B3C15809C0CE3E3" + + def all do + pending_files_to_delete = editor_download() + editor_sign() + export_stage() + cleanup_pending_files(pending_files_to_delete) + end + def editor_download do + case verify_hash() do + {:ok, _hash, _message} -> + IO.puts("File hash matches, skipping download.") + {:error, _hash, _message} -> + download() + case verify_hash() do + {:ok, _hash, _message} -> + IO.puts("Download complete and hash verified.") + {:error, _hash, _message} -> + IO.puts("Hash verification failed after download.") + exit(:normal) + end + end + pending_files_to_delete = extract() + create_gdignore() + pending_files_to_delete + end + + defp cleanup_pending_files(files) do + IO.inspect(files, label: "Pending files to delete") + end + + def editor_sign do + make_executable() + sign_app() + end + + def download do + File.mkdir_p!(@extract_dir) + System.cmd("curl", ["-L", @url, "-o", "#{@extract_dir}/#{@output}"]) + end + + def verify_hash do + case File.read("#{@extract_dir}/#{@output}") do + {:ok, content} -> + hash = :crypto.hash(:sha256, content) |> Base.encode16() + IO.puts("Computed hash: #{hash}") + if hash == @expected_hash do + {:ok, hash, "Hash matches"} + else + {:error, hash, "Hash does not match"} + end + _ -> + {:error, nil, "File not found"} + end + end + + def extract do + File.mkdir_p!(@extract_dir_extracted) + case System.cmd("tar", ["-xvf", "#{@extract_dir}/#{@output}", "-C", "#{@extract_dir_extracted}", "--strip-components=1"]) do + {output, 0} -> + IO.puts("Extraction output:\n#{output}") + extracted_files = Path.wildcard("#{@extract_dir_extracted}/**/*") + extracted_files + {output, _} -> + IO.puts("Failed to extract file. Output:\n#{output}") + exit(:normal) + end + end + + def create_gdignore do + File.touch("#{@extract_dir}/.gdignore") + end + + def make_executable do + case @os_family do + {:win32, :nt} -> + # Windows specific commands + :ok + {:unix, _} -> + File.chmod("#{@extract_dir_extracted}/godot.macos.editor.double.arm64", 0o755) + File.chmod("#{@extract_dir_extracted}/godot.macos.template_debug.double.arm64", 0o755) + File.chmod("#{@extract_dir_extracted}/godot.macos.template_release.double.arm64", 0o755) + File.chmod("#{@extract_dir_extracted}/godot_macos_editor_double.app/Contents/MacOS/Godot", 0o755) + end + end + + def sign_app do + case @os_family do + {:win32, :nt} -> + # Windows specific commands + :ok + {:unix, :darwin} -> + System.cmd("codesign", ["--deep", "--force", "--sign", "-", "#{@extract_dir_extracted}/godot.macos.editor.double.arm64"]) + System.cmd("codesign", ["--deep", "--force", "--sign", "-", "#{@extract_dir_extracted}/godot.macos.template_debug.double.arm64"]) + System.cmd("codesign", ["--deep", "--force", "--sign", "-", "#{@extract_dir_extracted}/godot.macos.template_release.double.arm64"]) + System.cmd("codesign", ["--deep", "--force", "--sign", "-", "#{@extract_dir_extracted}/godot_macos_editor_double.app/Contents/MacOS/Godot"]) + :ok + _ -> + :ok + end + end + + def export_stage do + editor_path = case @os_family do + {:win32, :nt} -> + "#{@extract_dir_extracted}/godot.windows.editor.double.x86_64.llvm.exe" + {:unix, :darwin} -> + "#{@extract_dir_extracted}/godot.macos.editor.double.arm64" + {:unix, _} -> + "#{@extract_dir_extracted}/godot.linux.editor.double.x86_64" + end + + if File.exists?(editor_path) do + File.chmod(editor_path, 0o755) + version = System.cmd(editor_path, ["--version"]) |> elem(0) |> String.trim() + platforms = [ + {"windows", "x86_64"}, + {"linuxbsd", "x86_64"}, + {"macos", "arm64"}, + {"web", "wasm32"}, + ] + for {target_platform, target_arch} <- platforms do + export_template(platform_name(@os_family), platform_arch(@os_family), target_platform, target_arch, version) + export_platform(platform_name(@os_family), platform_arch(@os_family), target_platform, target_arch) + end + else + IO.puts("Editor path not found: #{editor_path}") + end + end + + defp platform_name({:win32, :nt}), do: "windows" + defp platform_name({:unix, :darwin}), do: "macos" + defp platform_name({:unix, _}), do: "linux" + + defp platform_arch({:win32, :nt}), do: "x86_64" + defp platform_arch({:unix, :darwin}), do: "arm64" + defp platform_arch({:unix, _}), do: "x86_64" + + def create_version_file(version) do + content = """ + ## AUTOGENERATED BY BUILD + const BUILD_LABEL = "#{version}" + const BUILD_DATE_STR = "#{:os.system_time(:seconds) |> DateTime.from_unix!() |> DateTime.to_iso8601()}" + const BUILD_UNIX_TIME = #{:os.system_time(:seconds)} + """ + File.mkdir_p!("addons/vsk_version") + File.write!("addons/vsk_version/build_constants.gd", content) + end + + def export_template(_from_platform, _from_arch, target_platform, target_arch, version) do + version = String.replace(version, ".custom_build", "") + create_version_file(version) + + templatedir = case @os_family do + {:win32, :nt} -> + "#{System.get_env("USERPROFILE")}/AppData/Roaming/Godot/export_templates/#{version}/" + {:unix, :darwin} -> + "#{System.get_env("HOME")}/Library/Application Support/Godot/export_templates/#{version}/" + {:unix, _} -> + "#{System.get_env("HOME")}/.local/share/godot/export_templates/#{version}/" + end + File.mkdir_p!(templatedir) + + debug_file = case target_platform do + "linuxbsd" -> "#{@extract_dir_extracted}/godot.linuxbsd.template_debug.double.#{target_arch}" + "windows" -> "#{@extract_dir_extracted}/godot.windows.template_debug.double.#{target_arch}.llvm.exe" + "web" -> "#{@extract_dir_extracted}/godot.web.template_debug.double.wasm32.dlink.zip" + "macos" -> "#{@extract_dir_extracted}/godot_macos_double.zip" + "android" -> "#{@extract_dir_extracted}/android_debug.apk" + _ -> raise "Unsupported platform: #{target_platform}" + end + + release_file = case target_platform do + "linuxbsd" -> "#{@extract_dir_extracted}/godot.linuxbsd.template_release.double.#{target_arch}" + "windows" -> "#{@extract_dir_extracted}/godot.windows.template_release.double.#{target_arch}.llvm.exe" + "web" -> "#{@extract_dir_extracted}/godot.web.template_release.double.wasm32.dlink.zip" + "macos" -> "#{@extract_dir_extracted}/godot_macos_double.zip" + "android" -> "#{@extract_dir_extracted}/android_release.apk" + _ -> raise "Unsupported platform: #{target_platform}" + end + + debug_file_name = case target_platform do + "linuxbsd" -> "linux_debug.#{target_arch}" + "windows" -> "windows_debug_#{target_arch}.exe" + "web" -> "web_dlink_nothreads_debug.zip" + "macos" -> "macos_debug_#{target_arch}" + "android" -> "android_debug.apk" + _ -> "#{target_platform}_debug_#{target_arch}" + end + + release_file_name = case target_platform do + "linuxbsd" -> "linux_release.#{target_arch}" + "windows" -> "windows_release_#{target_arch}.exe" + "web" -> "web_dlink_nothreads_release.zip" + "macos" -> "macos_release_#{target_arch}" + "android" -> "android_release.apk" + _ -> "#{target_platform}_release_#{target_arch}" + end + + File.cp!(debug_file, "#{templatedir}/#{debug_file_name}", force: true) + File.cp!(release_file, "#{templatedir}/#{release_file_name}", force: true) + end + + def export_platform(from_platform, from_arch, target_platform, target_arch) do + File.rm_rf!("#{@extract_dir}/export_#{target_platform}_#{target_arch}") + File.mkdir_p!("#{@extract_dir}/export_#{target_platform}_#{target_arch}") + + editor_file = if from_platform == "windows" and File.exists?("#{@extract_dir_extracted}/godot.#{from_platform}.editor.double.#{from_arch}.llvm.exe") do + "#{@extract_dir_extracted}/godot.#{from_platform}.editor.double.#{from_arch}.llvm.exe" + else + "#{@extract_dir_extracted}/godot.#{from_platform}.editor.double.#{from_arch}" + end + env = [{"ANDROID_SDK_ROOT", "#{File.cwd!()}/android_sdk"}, {"JAVA_HOME", "#{File.cwd!()}/jdk"}] + arguments = ["--headless", "--path", ".", "--import"] + System.cmd(editor_file, arguments, env: env) + + output_file = "#{@extract_dir}/export_#{target_platform}_#{target_arch}/#{@project_name}" + output_file = if target_platform == "windows", do: output_file <> ".exe", else: output_file + + arguments = ["--headless", "--path", ".", "--export-release", target_platform, output_file] + System.cmd(editor_file, arguments, env: env) + IO.puts(Enum.join(arguments, " ")) + + case target_platform do + "windows" -> + System.cmd("strip", [output_file]) + pdb_file = "#{@extract_dir_extracted}/godot.#{target_platform}.template_release.double.#{from_arch}.llvm.pdb" + if File.exists?(pdb_file) do + File.cp!(pdb_file, "#{@extract_dir}/export_#{target_platform}_#{target_arch}/#{Path.basename(pdb_file)}") + else + IO.puts("PDB file not found: #{pdb_file}") + end + _ -> :ok + end + end + + def upload_stage do + upload_artifacts("windows", "x86_64") + upload_artifacts("linux", "x86_64") + end + + def upload_artifacts(platform, arch) do + File.mkdir_p!("#{@extract_dir}/game") + File.mkdir_p!("#{@extract_dir}/editor") + File.cp_r!("#{@extract_dir_extracted}/export_#{platform}_#{arch}", "#{@extract_dir}/game") + File.cp_r!("#{@extract_dir_extracted}/export_#{platform}_#{arch}/xr_grid_#{platform}_#{arch}", "#{@extract_dir}/editor/xr_grid_#{platform}_#{arch}_editor") + end +end diff --git a/export_presets.cfg b/export_presets.cfg index 1bf2cc6..7af7883 100644 --- a/export_presets.cfg +++ b/export_presets.cfg @@ -1,18 +1,22 @@ [preset.0] -name="Windows" +name="windows" platform="Windows Desktop" runnable=true +advanced_options=true dedicated_server=false custom_features="Windows,64,pc,s3tc" export_filter="all_resources" include_filter="*.gdnlib" exclude_filter="*.bat" -export_path="" +export_path="../xr-grid.exe" +patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" +seed=0 encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.0.options] @@ -20,10 +24,8 @@ custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 binary_format/embed_pck=false -texture_format/bptc=true -texture_format/s3tc=false -texture_format/etc=false -texture_format/etc2=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false binary_format/architecture="x86_64" codesign/enable=false codesign/timestamp=true @@ -31,18 +33,20 @@ codesign/timestamp_server_url="" codesign/digest_algorithm=1 codesign/description="" codesign/custom_options=PackedStringArray() -application/modify_resources=true -application/icon="res://vsk_default/icon/v-sekai.ico" +application/modify_resources=false +application/icon="" application/console_wrapper_icon="" application/icon_interpolation=4 -application/file_version="0.0.2" -application/product_version="0.0.2" +application/file_version="" +application/product_version="" application/company_name="V-Sekai" application/product_name="V-Sekai Game" application/file_description="" application/copyright="2020" application/trademarks="" application/export_angle=0 +application/export_d3d12=0 +application/d3d12_agility_sdk_multiarch=true ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" ssh_remote_deploy/port="22" @@ -60,24 +64,32 @@ Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorActi ssh_remote_deploy/cleanup_script="Stop-ScheduledTask -TaskName godot_remote_debug -ErrorAction:SilentlyContinue Unregister-ScheduledTask -TaskName godot_remote_debug -Confirm:$false -ErrorAction:SilentlyContinue Remove-Item -Recurse -Force '{temp_dir}'" +texture_format/bptc=true +texture_format/s3tc=false +texture_format/etc=false +texture_format/etc2=false debug/export_console_script=1 texture_format/no_bptc_fallbacks=true [preset.1] -name="iOS" +name="ios" platform="iOS" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" include_filter="*.gdnlib" exclude_filter="*.bat" export_path="" +patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" +seed=0 encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.1.options] @@ -94,11 +106,16 @@ application/bundle_identifier="" application/signature="????" application/short_version="1.0" application/version="1.0" +application/min_ios_version="12.0" +application/additional_plist_content="" application/icon_interpolation=4 -application/launch_screens_interpolation=4 application/export_project_only=false +application/delete_old_export_files_unconditionally=false +application/generate_simulator_library_if_missing=true capabilities/access_wifi=false capabilities/push_notifications=false +capabilities/performance_gaming_tier=false +capabilities/performance_a12=false user_data/accessible_from_files_app=false user_data/accessible_from_itunes_sharing=false privacy/camera_usage_description="" @@ -107,24 +124,213 @@ privacy/microphone_usage_description="" privacy/microphone_usage_description_localized={} privacy/photolibrary_usage_description="" privacy/photolibrary_usage_description_localized={} -icons/iphone_120x120="" -icons/iphone_180x180="" -icons/ipad_76x76="" -icons/ipad_152x152="" -icons/ipad_167x167="" -icons/app_store_1024x1024="" -icons/spotlight_40x40="" -icons/spotlight_80x80="" +privacy/file_timestamp_access_reasons=3 +privacy/system_boot_time_access_reasons=1 +privacy/disk_space_access_reasons=3 +privacy/active_keyboard_access_reasons=0 +privacy/user_defaults_access_reasons=0 +privacy/tracking_enabled=false +privacy/tracking_domains=PackedStringArray() +privacy/collected_data/name/collected=false +privacy/collected_data/name/linked_to_user=false +privacy/collected_data/name/used_for_tracking=false +privacy/collected_data/name/collection_purposes=0 +privacy/collected_data/email_address/collected=false +privacy/collected_data/email_address/linked_to_user=false +privacy/collected_data/email_address/used_for_tracking=false +privacy/collected_data/email_address/collection_purposes=0 +privacy/collected_data/phone_number/collected=false +privacy/collected_data/phone_number/linked_to_user=false +privacy/collected_data/phone_number/used_for_tracking=false +privacy/collected_data/phone_number/collection_purposes=0 +privacy/collected_data/physical_address/collected=false +privacy/collected_data/physical_address/linked_to_user=false +privacy/collected_data/physical_address/used_for_tracking=false +privacy/collected_data/physical_address/collection_purposes=0 +privacy/collected_data/other_contact_info/collected=false +privacy/collected_data/other_contact_info/linked_to_user=false +privacy/collected_data/other_contact_info/used_for_tracking=false +privacy/collected_data/other_contact_info/collection_purposes=0 +privacy/collected_data/health/collected=false +privacy/collected_data/health/linked_to_user=false +privacy/collected_data/health/used_for_tracking=false +privacy/collected_data/health/collection_purposes=0 +privacy/collected_data/fitness/collected=false +privacy/collected_data/fitness/linked_to_user=false +privacy/collected_data/fitness/used_for_tracking=false +privacy/collected_data/fitness/collection_purposes=0 +privacy/collected_data/payment_info/collected=false +privacy/collected_data/payment_info/linked_to_user=false +privacy/collected_data/payment_info/used_for_tracking=false +privacy/collected_data/payment_info/collection_purposes=0 +privacy/collected_data/credit_info/collected=false +privacy/collected_data/credit_info/linked_to_user=false +privacy/collected_data/credit_info/used_for_tracking=false +privacy/collected_data/credit_info/collection_purposes=0 +privacy/collected_data/other_financial_info/collected=false +privacy/collected_data/other_financial_info/linked_to_user=false +privacy/collected_data/other_financial_info/used_for_tracking=false +privacy/collected_data/other_financial_info/collection_purposes=0 +privacy/collected_data/precise_location/collected=false +privacy/collected_data/precise_location/linked_to_user=false +privacy/collected_data/precise_location/used_for_tracking=false +privacy/collected_data/precise_location/collection_purposes=0 +privacy/collected_data/coarse_location/collected=false +privacy/collected_data/coarse_location/linked_to_user=false +privacy/collected_data/coarse_location/used_for_tracking=false +privacy/collected_data/coarse_location/collection_purposes=0 +privacy/collected_data/sensitive_info/collected=false +privacy/collected_data/sensitive_info/linked_to_user=false +privacy/collected_data/sensitive_info/used_for_tracking=false +privacy/collected_data/sensitive_info/collection_purposes=0 +privacy/collected_data/contacts/collected=false +privacy/collected_data/contacts/linked_to_user=false +privacy/collected_data/contacts/used_for_tracking=false +privacy/collected_data/contacts/collection_purposes=0 +privacy/collected_data/emails_or_text_messages/collected=false +privacy/collected_data/emails_or_text_messages/linked_to_user=false +privacy/collected_data/emails_or_text_messages/used_for_tracking=false +privacy/collected_data/emails_or_text_messages/collection_purposes=0 +privacy/collected_data/photos_or_videos/collected=false +privacy/collected_data/photos_or_videos/linked_to_user=false +privacy/collected_data/photos_or_videos/used_for_tracking=false +privacy/collected_data/photos_or_videos/collection_purposes=0 +privacy/collected_data/audio_data/collected=false +privacy/collected_data/audio_data/linked_to_user=false +privacy/collected_data/audio_data/used_for_tracking=false +privacy/collected_data/audio_data/collection_purposes=0 +privacy/collected_data/gameplay_content/collected=false +privacy/collected_data/gameplay_content/linked_to_user=false +privacy/collected_data/gameplay_content/used_for_tracking=false +privacy/collected_data/gameplay_content/collection_purposes=0 +privacy/collected_data/customer_support/collected=false +privacy/collected_data/customer_support/linked_to_user=false +privacy/collected_data/customer_support/used_for_tracking=false +privacy/collected_data/customer_support/collection_purposes=0 +privacy/collected_data/other_user_content/collected=false +privacy/collected_data/other_user_content/linked_to_user=false +privacy/collected_data/other_user_content/used_for_tracking=false +privacy/collected_data/other_user_content/collection_purposes=0 +privacy/collected_data/browsing_history/collected=false +privacy/collected_data/browsing_history/linked_to_user=false +privacy/collected_data/browsing_history/used_for_tracking=false +privacy/collected_data/browsing_history/collection_purposes=0 +privacy/collected_data/search_hhistory/collected=false +privacy/collected_data/search_hhistory/linked_to_user=false +privacy/collected_data/search_hhistory/used_for_tracking=false +privacy/collected_data/search_hhistory/collection_purposes=0 +privacy/collected_data/user_id/collected=false +privacy/collected_data/user_id/linked_to_user=false +privacy/collected_data/user_id/used_for_tracking=false +privacy/collected_data/user_id/collection_purposes=0 +privacy/collected_data/device_id/collected=false +privacy/collected_data/device_id/linked_to_user=false +privacy/collected_data/device_id/used_for_tracking=false +privacy/collected_data/device_id/collection_purposes=0 +privacy/collected_data/purchase_history/collected=false +privacy/collected_data/purchase_history/linked_to_user=false +privacy/collected_data/purchase_history/used_for_tracking=false +privacy/collected_data/purchase_history/collection_purposes=0 +privacy/collected_data/product_interaction/collected=false +privacy/collected_data/product_interaction/linked_to_user=false +privacy/collected_data/product_interaction/used_for_tracking=false +privacy/collected_data/product_interaction/collection_purposes=0 +privacy/collected_data/advertising_data/collected=false +privacy/collected_data/advertising_data/linked_to_user=false +privacy/collected_data/advertising_data/used_for_tracking=false +privacy/collected_data/advertising_data/collection_purposes=0 +privacy/collected_data/other_usage_data/collected=false +privacy/collected_data/other_usage_data/linked_to_user=false +privacy/collected_data/other_usage_data/used_for_tracking=false +privacy/collected_data/other_usage_data/collection_purposes=0 +privacy/collected_data/crash_data/collected=false +privacy/collected_data/crash_data/linked_to_user=false +privacy/collected_data/crash_data/used_for_tracking=false +privacy/collected_data/crash_data/collection_purposes=0 +privacy/collected_data/performance_data/collected=false +privacy/collected_data/performance_data/linked_to_user=false +privacy/collected_data/performance_data/used_for_tracking=false +privacy/collected_data/performance_data/collection_purposes=0 +privacy/collected_data/other_diagnostic_data/collected=false +privacy/collected_data/other_diagnostic_data/linked_to_user=false +privacy/collected_data/other_diagnostic_data/used_for_tracking=false +privacy/collected_data/other_diagnostic_data/collection_purposes=0 +privacy/collected_data/environment_scanning/collected=false +privacy/collected_data/environment_scanning/linked_to_user=false +privacy/collected_data/environment_scanning/used_for_tracking=false +privacy/collected_data/environment_scanning/collection_purposes=0 +privacy/collected_data/hands/collected=false +privacy/collected_data/hands/linked_to_user=false +privacy/collected_data/hands/used_for_tracking=false +privacy/collected_data/hands/collection_purposes=0 +privacy/collected_data/head/collected=false +privacy/collected_data/head/linked_to_user=false +privacy/collected_data/head/used_for_tracking=false +privacy/collected_data/head/collection_purposes=0 +privacy/collected_data/other_data_types/collected=false +privacy/collected_data/other_data_types/linked_to_user=false +privacy/collected_data/other_data_types/used_for_tracking=false +privacy/collected_data/other_data_types/collection_purposes=0 +icons/icon_1024x1024="" +icons/icon_1024x1024_dark="" +icons/icon_1024x1024_tinted="" icons/settings_58x58="" +icons/settings_58x58_dark="" +icons/settings_58x58_tinted="" icons/settings_87x87="" +icons/settings_87x87_dark="" +icons/settings_87x87_tinted="" icons/notification_40x40="" +icons/notification_40x40_dark="" +icons/notification_40x40_tinted="" icons/notification_60x60="" -storyboard/use_launch_screen_storyboard=false +icons/notification_60x60_dark="" +icons/notification_60x60_tinted="" +icons/notification_76x76="" +icons/notification_76x76_dark="" +icons/notification_76x76_tinted="" +icons/notification_114x114="" +icons/notification_114x114_dark="" +icons/notification_114x114_tinted="" +icons/spotlight_80x80="" +icons/spotlight_80x80_dark="" +icons/spotlight_80x80_tinted="" +icons/spotlight_120x120="" +icons/spotlight_120x120_dark="" +icons/spotlight_120x120_tinted="" +icons/iphone_120x120="" +icons/iphone_120x120_dark="" +icons/iphone_120x120_tinted="" +icons/iphone_180x180="" +icons/iphone_180x180_dark="" +icons/iphone_180x180_tinted="" +icons/ipad_167x167="" +icons/ipad_167x167_dark="" +icons/ipad_167x167_tinted="" +icons/ipad_152x152="" +icons/ipad_152x152_dark="" +icons/ipad_152x152_tinted="" +icons/ios_128x128="" +icons/ios_128x128_dark="" +icons/ios_128x128_tinted="" +icons/ios_192x192="" +icons/ios_192x192_dark="" +icons/ios_192x192_tinted="" +icons/ios_136x136="" +icons/ios_136x136_dark="" +icons/ios_136x136_tinted="" +icons/app_store_1024x1024="" +icons/app_store_1024x1024_dark="" +icons/app_store_1024x1024_tinted="" storyboard/image_scale_mode=0 storyboard/custom_image@2x="" storyboard/custom_image@3x="" storyboard/use_custom_bg_color=false storyboard/custom_bg_color=Color(0, 0, 0, 1) +application/launch_screens_interpolation=4 +icons/ipad_76x76="" +icons/spotlight_40x40="" +storyboard/use_launch_screen_storyboard=false landscape_launch_screens/iphone_2436x1125="" landscape_launch_screens/iphone_2208x1242="" landscape_launch_screens/ipad_1024x768="" @@ -139,19 +345,23 @@ portrait_launch_screens/iphone_1242x2208="" [preset.2] -name="Linux" +name="linuxbsd" platform="Linux" runnable=false +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" include_filter="*.gdnlib" exclude_filter="*.bat" export_path="" +patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" +seed=0 encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.2.options] @@ -159,10 +369,8 @@ custom_template/debug="" custom_template/release="" debug/export_console_wrapper=1 binary_format/embed_pck=false -texture_format/bptc=true -texture_format/s3tc=true -texture_format/etc=false -texture_format/etc2=false +texture_format/s3tc_bptc=true +texture_format/etc2_astc=false binary_format/architecture="x86_64" ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" @@ -176,29 +384,38 @@ unzip -o -q \"{temp_dir}/{archive_name}\" -d \"{temp_dir}\" ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash kill $(pgrep -x -f \"{temp_dir}/{exe_name} {cmd_args}\") rm -rf \"{temp_dir}\"" +texture_format/bptc=true +texture_format/s3tc=true +texture_format/etc=false +texture_format/etc2=false debug/export_console_script=1 [preset.3] -name="QuestAndroid" +name="android" platform="Android" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" include_filter="*.gdnlib" exclude_filter="*.bat" export_path="" +patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" +seed=0 encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.3.options] -custom_template/debug="E:/source/godot_saracen/godot/bin/android_debug.apk" -custom_template/release="E:/source/godot_saracen/godot/bin/android_release.apk" gradle_build/use_gradle_build=false +gradle_build/gradle_build_directory="" +gradle_build/android_source_template="" +gradle_build/compress_native_libraries=false gradle_build/export_format=0 gradle_build/min_sdk="" gradle_build/target_sdk="" @@ -220,6 +437,7 @@ package/show_as_launcher_app=false launcher_icons/main_192x192="" launcher_icons/adaptive_foreground_432x432="" launcher_icons/adaptive_background_432x432="" +launcher_icons/adaptive_monochrome_432x432="" graphics/opengl_debug=false xr_features/xr_mode=1 screen/immersive_mode=true @@ -237,6 +455,7 @@ permissions/access_checkin_properties=false permissions/access_coarse_location=false permissions/access_fine_location=false permissions/access_location_extra_commands=false +permissions/access_media_location=false permissions/access_mock_location=false permissions/access_network_state=false permissions/access_surface_flinger=false @@ -314,6 +533,7 @@ permissions/mount_format_filesystems=false permissions/mount_unmount_filesystems=false permissions/nfc=false permissions/persistent_activity=false +permissions/post_notifications=false permissions/process_outgoing_calls=false permissions/read_calendar=false permissions/read_call_log=false @@ -323,6 +543,10 @@ permissions/read_frame_buffer=false permissions/read_history_bookmarks=false permissions/read_input_state=false permissions/read_logs=false +permissions/read_media_audio=false +permissions/read_media_images=false +permissions/read_media_video=false +permissions/read_media_visual_user_selected=false permissions/read_phone_state=false permissions/read_profile=false permissions/read_sms=false @@ -385,25 +609,30 @@ xr_features/passthrough=0 [preset.4] -name="Web" +name="web" platform="Web" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" export_path="" +patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" +seed=0 encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.4.options] custom_template/debug="" custom_template/release="" -variant/extensions_support=false +variant/extensions_support=true +variant/thread_support=false vram_texture_compression/for_desktop=true vram_texture_compression/for_mobile=true html/export_icon=true @@ -420,6 +649,7 @@ html/canvas_resize_policy=2 html/focus_canvas_on_start=true html/experimental_virtual_keyboard=false progressive_web_app/enabled=false +progressive_web_app/ensure_cross_origin_isolation_headers=true progressive_web_app/offline_page="" progressive_web_app/display=1 progressive_web_app/orientation=0 @@ -430,19 +660,23 @@ progressive_web_app/background_color=Color(0, 0, 0, 1) [preset.5] -name="Mac" +name="macos" platform="macOS" runnable=true +advanced_options=false dedicated_server=false custom_features="" export_filter="all_resources" include_filter="" exclude_filter="" export_path="" +patches=PackedStringArray() encryption_include_filters="" encryption_exclude_filters="" +seed=0 encrypt_pck=false encrypt_directory=false +script_export_mode=2 [preset.5.options] @@ -460,9 +694,11 @@ application/short_version="" application/version="" application/copyright="" application/copyright_localized={} -application/min_macos_version="10.12" +application/min_macos_version_x86_64="10.12" +application/min_macos_version_arm64="11.00" application/export_angle=0 display/high_res=true +application/additional_plist_content="" xcode/platform_build="14C18" xcode/sdk_version="13.1" xcode/sdk_build="22C55" @@ -497,6 +733,7 @@ codesign/entitlements/app_sandbox/files_music=0 codesign/entitlements/app_sandbox/files_movies=0 codesign/entitlements/app_sandbox/files_user_selected=0 codesign/entitlements/app_sandbox/helper_executables=[] +codesign/entitlements/additional="" codesign/custom_options=PackedStringArray() notarization/notarization=0 privacy/microphone_usage_description="" @@ -521,6 +758,148 @@ privacy/network_volumes_usage_description="" privacy/network_volumes_usage_description_localized={} privacy/removable_volumes_usage_description="" privacy/removable_volumes_usage_description_localized={} +privacy/tracking_enabled=false +privacy/tracking_domains=PackedStringArray() +privacy/collected_data/name/collected=false +privacy/collected_data/name/linked_to_user=false +privacy/collected_data/name/used_for_tracking=false +privacy/collected_data/name/collection_purposes=0 +privacy/collected_data/email_address/collected=false +privacy/collected_data/email_address/linked_to_user=false +privacy/collected_data/email_address/used_for_tracking=false +privacy/collected_data/email_address/collection_purposes=0 +privacy/collected_data/phone_number/collected=false +privacy/collected_data/phone_number/linked_to_user=false +privacy/collected_data/phone_number/used_for_tracking=false +privacy/collected_data/phone_number/collection_purposes=0 +privacy/collected_data/physical_address/collected=false +privacy/collected_data/physical_address/linked_to_user=false +privacy/collected_data/physical_address/used_for_tracking=false +privacy/collected_data/physical_address/collection_purposes=0 +privacy/collected_data/other_contact_info/collected=false +privacy/collected_data/other_contact_info/linked_to_user=false +privacy/collected_data/other_contact_info/used_for_tracking=false +privacy/collected_data/other_contact_info/collection_purposes=0 +privacy/collected_data/health/collected=false +privacy/collected_data/health/linked_to_user=false +privacy/collected_data/health/used_for_tracking=false +privacy/collected_data/health/collection_purposes=0 +privacy/collected_data/fitness/collected=false +privacy/collected_data/fitness/linked_to_user=false +privacy/collected_data/fitness/used_for_tracking=false +privacy/collected_data/fitness/collection_purposes=0 +privacy/collected_data/payment_info/collected=false +privacy/collected_data/payment_info/linked_to_user=false +privacy/collected_data/payment_info/used_for_tracking=false +privacy/collected_data/payment_info/collection_purposes=0 +privacy/collected_data/credit_info/collected=false +privacy/collected_data/credit_info/linked_to_user=false +privacy/collected_data/credit_info/used_for_tracking=false +privacy/collected_data/credit_info/collection_purposes=0 +privacy/collected_data/other_financial_info/collected=false +privacy/collected_data/other_financial_info/linked_to_user=false +privacy/collected_data/other_financial_info/used_for_tracking=false +privacy/collected_data/other_financial_info/collection_purposes=0 +privacy/collected_data/precise_location/collected=false +privacy/collected_data/precise_location/linked_to_user=false +privacy/collected_data/precise_location/used_for_tracking=false +privacy/collected_data/precise_location/collection_purposes=0 +privacy/collected_data/coarse_location/collected=false +privacy/collected_data/coarse_location/linked_to_user=false +privacy/collected_data/coarse_location/used_for_tracking=false +privacy/collected_data/coarse_location/collection_purposes=0 +privacy/collected_data/sensitive_info/collected=false +privacy/collected_data/sensitive_info/linked_to_user=false +privacy/collected_data/sensitive_info/used_for_tracking=false +privacy/collected_data/sensitive_info/collection_purposes=0 +privacy/collected_data/contacts/collected=false +privacy/collected_data/contacts/linked_to_user=false +privacy/collected_data/contacts/used_for_tracking=false +privacy/collected_data/contacts/collection_purposes=0 +privacy/collected_data/emails_or_text_messages/collected=false +privacy/collected_data/emails_or_text_messages/linked_to_user=false +privacy/collected_data/emails_or_text_messages/used_for_tracking=false +privacy/collected_data/emails_or_text_messages/collection_purposes=0 +privacy/collected_data/photos_or_videos/collected=false +privacy/collected_data/photos_or_videos/linked_to_user=false +privacy/collected_data/photos_or_videos/used_for_tracking=false +privacy/collected_data/photos_or_videos/collection_purposes=0 +privacy/collected_data/audio_data/collected=false +privacy/collected_data/audio_data/linked_to_user=false +privacy/collected_data/audio_data/used_for_tracking=false +privacy/collected_data/audio_data/collection_purposes=0 +privacy/collected_data/gameplay_content/collected=false +privacy/collected_data/gameplay_content/linked_to_user=false +privacy/collected_data/gameplay_content/used_for_tracking=false +privacy/collected_data/gameplay_content/collection_purposes=0 +privacy/collected_data/customer_support/collected=false +privacy/collected_data/customer_support/linked_to_user=false +privacy/collected_data/customer_support/used_for_tracking=false +privacy/collected_data/customer_support/collection_purposes=0 +privacy/collected_data/other_user_content/collected=false +privacy/collected_data/other_user_content/linked_to_user=false +privacy/collected_data/other_user_content/used_for_tracking=false +privacy/collected_data/other_user_content/collection_purposes=0 +privacy/collected_data/browsing_history/collected=false +privacy/collected_data/browsing_history/linked_to_user=false +privacy/collected_data/browsing_history/used_for_tracking=false +privacy/collected_data/browsing_history/collection_purposes=0 +privacy/collected_data/search_hhistory/collected=false +privacy/collected_data/search_hhistory/linked_to_user=false +privacy/collected_data/search_hhistory/used_for_tracking=false +privacy/collected_data/search_hhistory/collection_purposes=0 +privacy/collected_data/user_id/collected=false +privacy/collected_data/user_id/linked_to_user=false +privacy/collected_data/user_id/used_for_tracking=false +privacy/collected_data/user_id/collection_purposes=0 +privacy/collected_data/device_id/collected=false +privacy/collected_data/device_id/linked_to_user=false +privacy/collected_data/device_id/used_for_tracking=false +privacy/collected_data/device_id/collection_purposes=0 +privacy/collected_data/purchase_history/collected=false +privacy/collected_data/purchase_history/linked_to_user=false +privacy/collected_data/purchase_history/used_for_tracking=false +privacy/collected_data/purchase_history/collection_purposes=0 +privacy/collected_data/product_interaction/collected=false +privacy/collected_data/product_interaction/linked_to_user=false +privacy/collected_data/product_interaction/used_for_tracking=false +privacy/collected_data/product_interaction/collection_purposes=0 +privacy/collected_data/advertising_data/collected=false +privacy/collected_data/advertising_data/linked_to_user=false +privacy/collected_data/advertising_data/used_for_tracking=false +privacy/collected_data/advertising_data/collection_purposes=0 +privacy/collected_data/other_usage_data/collected=false +privacy/collected_data/other_usage_data/linked_to_user=false +privacy/collected_data/other_usage_data/used_for_tracking=false +privacy/collected_data/other_usage_data/collection_purposes=0 +privacy/collected_data/crash_data/collected=false +privacy/collected_data/crash_data/linked_to_user=false +privacy/collected_data/crash_data/used_for_tracking=false +privacy/collected_data/crash_data/collection_purposes=0 +privacy/collected_data/performance_data/collected=false +privacy/collected_data/performance_data/linked_to_user=false +privacy/collected_data/performance_data/used_for_tracking=false +privacy/collected_data/performance_data/collection_purposes=0 +privacy/collected_data/other_diagnostic_data/collected=false +privacy/collected_data/other_diagnostic_data/linked_to_user=false +privacy/collected_data/other_diagnostic_data/used_for_tracking=false +privacy/collected_data/other_diagnostic_data/collection_purposes=0 +privacy/collected_data/environment_scanning/collected=false +privacy/collected_data/environment_scanning/linked_to_user=false +privacy/collected_data/environment_scanning/used_for_tracking=false +privacy/collected_data/environment_scanning/collection_purposes=0 +privacy/collected_data/hands/collected=false +privacy/collected_data/hands/linked_to_user=false +privacy/collected_data/hands/used_for_tracking=false +privacy/collected_data/hands/collection_purposes=0 +privacy/collected_data/head/collected=false +privacy/collected_data/head/linked_to_user=false +privacy/collected_data/head/used_for_tracking=false +privacy/collected_data/head/collection_purposes=0 +privacy/collected_data/other_data_types/collected=false +privacy/collected_data/other_data_types/linked_to_user=false +privacy/collected_data/other_data_types/used_for_tracking=false +privacy/collected_data/other_data_types/collection_purposes=0 ssh_remote_deploy/enabled=false ssh_remote_deploy/host="user@host_ip" ssh_remote_deploy/port="22" @@ -532,3 +911,4 @@ open \"{temp_dir}/{exe_name}.app\" --args {cmd_args}" ssh_remote_deploy/cleanup_script="#!/usr/bin/env bash kill $(pgrep -x -f \"{temp_dir}/{exe_name}.app/Contents/MacOS/{exe_name} {cmd_args}\") rm -rf \"{temp_dir}\"" +application/min_macos_version="10.12" diff --git a/justfile b/justfile deleted file mode 100644 index 29ab575..0000000 --- a/justfile +++ /dev/null @@ -1,57 +0,0 @@ -url := "https://github.com/V-Sekai/world-editor/releases/download/latest.v-sekai-editor-181/v-sekai-world.zip" -output := "v-sekai-world.zip" -extract-dir := "export" -sha256 := "964ebb46bfd3ac6e88e572449c845b42ebee05f82df9e75ca0e446b19181e754" -app-path := "{{extract-dir}}/godot_macos_editor_double.app" -executable-path := "{{app-path}}/Contents/MacOS/Godot" - -all: editor-download editor-sign - -editor-download: download verify extract create-gdignore - -editor-sign: make-executable sign-app - -clean: - rm -rf {{extract-dir}}/* - -download: - mkdir -p "{{extract-dir}}" - if [ -f "{{extract-dir}}/{{output}}" ]; then \ - echo "File already exists, skipping download."; \ - else \ - curl --location --output "{{extract-dir}}/{{output}}" "{{url}}"; \ - fi - -verify: - echo "Verifying SHA256..." - if echo "{{sha256}} {{extract-dir}}/{{output}}" | shasum -a 256 --check -; then \ - echo "SHA256 matches."; \ - else \ - echo "SHA256 does not match, exiting."; \ - exit 1; \ - fi - -extract: - 7z x {{extract-dir}}/{{output}} -o{{extract-dir}}/temp -aoa - rsync -a --remove-source-files {{extract-dir}}/temp/v-sekai-world/* {{extract-dir}}/ - rm -rf {{extract-dir}}/temp {{extract-dir}}/v-sekai-world - find {{extract-dir}} -name "godot.web.editor.double.wasm32.dlink.*" ! -name "godot.web.editor.double.wasm32.dlink.zip" -exec rm -f {} + - find {{extract-dir}} -name "godot.web.template_release.double.wasm32.dlink.*" ! -name "godot.web.template_release.double.wasm32.dlink.zip" -exec rm -f {} + - find {{extract-dir}} -name "godot.web.template_debug.double.wasm32.dlink.*" ! -name "godot.web.template_debug.double.wasm32.dlink.zip" -exec rm -f {} + - -create-gdignore: - touch {{extract-dir}}/.gdignore - -make-executable: - #!/usr/bin/env bash - chmod +x "{{extract-dir}}/godot.macos.editor.double.arm64" - chmod +x "{{extract-dir}}/godot.macos.template_debug.double.arm64" - chmod +x "{{extract-dir}}/godot.macos.template_release.double.arm64" - chmod +x "{{extract-dir}}/godot_macos_editor_double.app/Contents/MacOS/Godot" - -sign-app: - #!/usr/bin/env bash - codesign --deep --force --sign - "{{extract-dir}}/godot.macos.editor.double.arm64" - codesign --deep --force --sign - "{{extract-dir}}/godot.macos.template_debug.double.arm64" - codesign --deep --force --sign - "{{extract-dir}}/godot.macos.template_release.double.arm64" - codesign --deep --force --sign - "{{extract-dir}}/godot_macos_editor_double.app/Contents/MacOS/Godot" diff --git a/openxr_action_map.tres b/openxr_action_map.tres index 2e007fe..44ff0b0 100644 --- a/openxr_action_map.tres +++ b/openxr_action_map.tres @@ -1,4 +1,4 @@ -[gd_resource type="OpenXRActionMap" load_steps=197 format=3 uid="uid://b5ixfb0lrbj50"] +[gd_resource type="OpenXRActionMap" load_steps=373 format=3 uid="uid://b5ixfb0lrbj50"] [sub_resource type="OpenXRAction" id="OpenXRAction_md3ep"] resource_name = "trigger" @@ -146,689 +146,1393 @@ resource_name = "godot" localized_name = "Godot action set" actions = [SubResource("OpenXRAction_md3ep"), SubResource("OpenXRAction_h3lvl"), SubResource("OpenXRAction_hxujo"), SubResource("OpenXRAction_tnmik"), SubResource("OpenXRAction_6d2di"), SubResource("OpenXRAction_pqygq"), SubResource("OpenXRAction_armw5"), SubResource("OpenXRAction_3n3wv"), SubResource("OpenXRAction_1jiy4"), SubResource("OpenXRAction_6fhh8"), SubResource("OpenXRAction_7nwa6"), SubResource("OpenXRAction_56j1t"), SubResource("OpenXRAction_hs0tv"), SubResource("OpenXRAction_7nw37"), SubResource("OpenXRAction_pvvib"), SubResource("OpenXRAction_65mni"), SubResource("OpenXRAction_e3nol"), SubResource("OpenXRAction_gu74c"), SubResource("OpenXRAction_53bq6"), SubResource("OpenXRAction_qqnhj"), SubResource("OpenXRAction_6gkg6"), SubResource("OpenXRAction_067ne"), SubResource("OpenXRAction_qnrha"), SubResource("OpenXRAction_f38u2")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ahr3q"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6ivru"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pavep"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vfhwq"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5w03k"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/left/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_typ1r"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_clvbf"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vjhnl"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5bppb"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hofe0"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3k6la"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7poux"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_i8esw"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/right/input/palm_ext/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_um1hv"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") +binding_path = "/user/hand/left/input/menu/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oqnsu"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/menu/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_r5bl7"] +action = SubResource("OpenXRAction_pvvib") +binding_path = "/user/hand/left/input/select/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yt410"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ytptc"] action = SubResource("OpenXRAction_pvvib") -paths = PackedStringArray("/user/hand/left/input/select/click", "/user/hand/right/input/select/click") +binding_path = "/user/hand/right/input/select/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iphn4"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ajq0p"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3p2as"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_ge5ai"] interaction_profile_path = "/interaction_profiles/khr/simple_controller" -bindings = [SubResource("OpenXRIPBinding_ahr3q"), SubResource("OpenXRIPBinding_pavep"), SubResource("OpenXRIPBinding_vjhnl"), SubResource("OpenXRIPBinding_hofe0"), SubResource("OpenXRIPBinding_7poux"), SubResource("OpenXRIPBinding_yt410"), SubResource("OpenXRIPBinding_ajq0p")] +bindings = [SubResource("OpenXRIPBinding_6ivru"), SubResource("OpenXRIPBinding_vfhwq"), SubResource("OpenXRIPBinding_5w03k"), SubResource("OpenXRIPBinding_typ1r"), SubResource("OpenXRIPBinding_clvbf"), SubResource("OpenXRIPBinding_5bppb"), SubResource("OpenXRIPBinding_3k6la"), SubResource("OpenXRIPBinding_i8esw"), SubResource("OpenXRIPBinding_um1hv"), SubResource("OpenXRIPBinding_oqnsu"), SubResource("OpenXRIPBinding_r5bl7"), SubResource("OpenXRIPBinding_ytptc"), SubResource("OpenXRIPBinding_iphn4"), SubResource("OpenXRIPBinding_3p2as")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6naqg"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wdehm"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g4yge"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_clfly"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_e1frq"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3jxow"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l7aq8"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oi0ij"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m08eo"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_c4j1d"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4ar06"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sopde"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lhu6j"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sow2k"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") +binding_path = "/user/hand/left/input/menu/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xil6a"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ngwcy"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/menu/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_r3qn1"] +action = SubResource("OpenXRAction_pvvib") +binding_path = "/user/hand/left/input/system/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n01b8"] action = SubResource("OpenXRAction_pvvib") -paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") +binding_path = "/user/hand/right/input/system/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pjtev"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/left/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_k8d8o"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nqyri"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_axx1g"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_86uui"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") +binding_path = "/user/hand/left/input/trigger/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m4aqn"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nrtxc"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/right/input/trigger/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qovyo"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/left/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d6uso"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hvi7v"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/left/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4khde"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7dxun"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rp8ih"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/left/input/trackpad" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_23p0k"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0uca0"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") +binding_path = "/user/hand/right/input/trackpad" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nvk4o"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rjtq8"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") +binding_path = "/user/hand/left/input/trackpad/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_k4tmf"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lce2q"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/right/input/trackpad/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ckeh6"] action = SubResource("OpenXRAction_6fhh8") -paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") +binding_path = "/user/hand/left/input/trackpad/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5oirk"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_538mi"] +action = SubResource("OpenXRAction_6fhh8") +binding_path = "/user/hand/right/input/trackpad/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_548p5"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6o0wr"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_21hov"] interaction_profile_path = "/interaction_profiles/htc/vive_controller" -bindings = [SubResource("OpenXRIPBinding_6naqg"), SubResource("OpenXRIPBinding_g4yge"), SubResource("OpenXRIPBinding_3jxow"), SubResource("OpenXRIPBinding_4ar06"), SubResource("OpenXRIPBinding_lhu6j"), SubResource("OpenXRIPBinding_xil6a"), SubResource("OpenXRIPBinding_k8d8o"), SubResource("OpenXRIPBinding_axx1g"), SubResource("OpenXRIPBinding_m4aqn"), SubResource("OpenXRIPBinding_4khde"), SubResource("OpenXRIPBinding_23p0k"), SubResource("OpenXRIPBinding_nvk4o"), SubResource("OpenXRIPBinding_k4tmf"), SubResource("OpenXRIPBinding_5oirk")] +bindings = [SubResource("OpenXRIPBinding_wdehm"), SubResource("OpenXRIPBinding_clfly"), SubResource("OpenXRIPBinding_e1frq"), SubResource("OpenXRIPBinding_l7aq8"), SubResource("OpenXRIPBinding_oi0ij"), SubResource("OpenXRIPBinding_m08eo"), SubResource("OpenXRIPBinding_c4j1d"), SubResource("OpenXRIPBinding_sopde"), SubResource("OpenXRIPBinding_sow2k"), SubResource("OpenXRIPBinding_ngwcy"), SubResource("OpenXRIPBinding_r3qn1"), SubResource("OpenXRIPBinding_n01b8"), SubResource("OpenXRIPBinding_pjtev"), SubResource("OpenXRIPBinding_nqyri"), SubResource("OpenXRIPBinding_86uui"), SubResource("OpenXRIPBinding_nrtxc"), SubResource("OpenXRIPBinding_qovyo"), SubResource("OpenXRIPBinding_d6uso"), SubResource("OpenXRIPBinding_hvi7v"), SubResource("OpenXRIPBinding_7dxun"), SubResource("OpenXRIPBinding_rp8ih"), SubResource("OpenXRIPBinding_0uca0"), SubResource("OpenXRIPBinding_rjtq8"), SubResource("OpenXRIPBinding_lce2q"), SubResource("OpenXRIPBinding_ckeh6"), SubResource("OpenXRIPBinding_538mi"), SubResource("OpenXRIPBinding_548p5"), SubResource("OpenXRIPBinding_6o0wr")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fsghu"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ixdvc"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_88umk"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/right/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_k4t28"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4uneg"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mr5y3"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_67o31"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lf1a1"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x1adc"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_j1vtv"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oeoxb"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tud50"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wyu8w"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_akdt0"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") +binding_path = "/user/hand/left/input/menu/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sd5l7"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xri1r"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/menu/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_etqcv"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/left/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_og5pg"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nwe40"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/left/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1uel5"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ts2ff"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yhsv0"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/left/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0y8cu"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sf2dt"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/right/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kylf1"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_67dwi"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/left/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_op3m0"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hswdx"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7gr0f"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rxach"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uvspk"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/right/input/thumbstick" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ica2g"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/left/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5fecu"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0nfxl"] +action = SubResource("OpenXRAction_7nwa6") +binding_path = "/user/hand/left/input/trackpad" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oiya8"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sbe0d"] action = SubResource("OpenXRAction_7nwa6") -paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") +binding_path = "/user/hand/right/input/trackpad" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pte7n"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rf1ko"] action = SubResource("OpenXRAction_56j1t") -paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") +binding_path = "/user/hand/left/input/trackpad/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jcvb5"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jx7ge"] +action = SubResource("OpenXRAction_56j1t") +binding_path = "/user/hand/right/input/trackpad/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d2w1t"] +action = SubResource("OpenXRAction_hs0tv") +binding_path = "/user/hand/left/input/trackpad/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v2kct"] action = SubResource("OpenXRAction_hs0tv") -paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") +binding_path = "/user/hand/right/input/trackpad/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_37uq4"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mos6w"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kooyb"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_o7445"] interaction_profile_path = "/interaction_profiles/microsoft/motion_controller" -bindings = [SubResource("OpenXRIPBinding_ixdvc"), SubResource("OpenXRIPBinding_k4t28"), SubResource("OpenXRIPBinding_mr5y3"), SubResource("OpenXRIPBinding_oeoxb"), SubResource("OpenXRIPBinding_wyu8w"), SubResource("OpenXRIPBinding_sd5l7"), SubResource("OpenXRIPBinding_1uel5"), SubResource("OpenXRIPBinding_0y8cu"), SubResource("OpenXRIPBinding_kylf1"), SubResource("OpenXRIPBinding_op3m0"), SubResource("OpenXRIPBinding_rxach"), SubResource("OpenXRIPBinding_oiya8"), SubResource("OpenXRIPBinding_pte7n"), SubResource("OpenXRIPBinding_jcvb5"), SubResource("OpenXRIPBinding_mos6w")] +bindings = [SubResource("OpenXRIPBinding_fsghu"), SubResource("OpenXRIPBinding_88umk"), SubResource("OpenXRIPBinding_4uneg"), SubResource("OpenXRIPBinding_67o31"), SubResource("OpenXRIPBinding_lf1a1"), SubResource("OpenXRIPBinding_x1adc"), SubResource("OpenXRIPBinding_j1vtv"), SubResource("OpenXRIPBinding_tud50"), SubResource("OpenXRIPBinding_akdt0"), SubResource("OpenXRIPBinding_xri1r"), SubResource("OpenXRIPBinding_etqcv"), SubResource("OpenXRIPBinding_og5pg"), SubResource("OpenXRIPBinding_nwe40"), SubResource("OpenXRIPBinding_ts2ff"), SubResource("OpenXRIPBinding_yhsv0"), SubResource("OpenXRIPBinding_sf2dt"), SubResource("OpenXRIPBinding_67dwi"), SubResource("OpenXRIPBinding_hswdx"), SubResource("OpenXRIPBinding_7gr0f"), SubResource("OpenXRIPBinding_uvspk"), SubResource("OpenXRIPBinding_ica2g"), SubResource("OpenXRIPBinding_5fecu"), SubResource("OpenXRIPBinding_0nfxl"), SubResource("OpenXRIPBinding_sbe0d"), SubResource("OpenXRIPBinding_rf1ko"), SubResource("OpenXRIPBinding_jx7ge"), SubResource("OpenXRIPBinding_d2w1t"), SubResource("OpenXRIPBinding_v2kct"), SubResource("OpenXRIPBinding_37uq4"), SubResource("OpenXRIPBinding_kooyb")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nd0nv"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_51qre"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b1keg"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fncxp"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qi50k"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_h5icu"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b1sv6"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_y80n1"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yu2t6"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_labib"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_21ll0"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_altuc"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mf8oy"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7p0fp"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/system/click") +binding_path = "/user/hand/left/input/menu/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_b3ly6"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yjnix"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/system/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pgh0x"] action = SubResource("OpenXRAction_65mni") -paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") +binding_path = "/user/hand/left/input/x/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kxx1m"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lplyu"] +action = SubResource("OpenXRAction_65mni") +binding_path = "/user/hand/right/input/a/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ifnya"] +action = SubResource("OpenXRAction_e3nol") +binding_path = "/user/hand/left/input/x/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jl4vo"] action = SubResource("OpenXRAction_e3nol") -paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch") +binding_path = "/user/hand/right/input/a/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1n6j6"] +action = SubResource("OpenXRAction_gu74c") +binding_path = "/user/hand/left/input/y/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_owjx7"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o1nfs"] action = SubResource("OpenXRAction_gu74c") -paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") +binding_path = "/user/hand/right/input/b/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4vobt"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_unnrh"] action = SubResource("OpenXRAction_53bq6") -paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch") +binding_path = "/user/hand/left/input/y/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4c5y2"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3wafl"] +action = SubResource("OpenXRAction_53bq6") +binding_path = "/user/hand/right/input/b/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tjb53"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/left/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lcg2b"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sp6l2"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/left/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a2da2"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xj6ir"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qbq0m"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_igmf3"] action = SubResource("OpenXRAction_hxujo") -paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") +binding_path = "/user/hand/left/input/trigger/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qvq2q"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_inw5v"] +action = SubResource("OpenXRAction_hxujo") +binding_path = "/user/hand/right/input/trigger/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iy2wq"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/left/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_plu03"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/right/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dad45"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/left/input/squeeze/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wftaa"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m5e8q"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/right/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5t7jh"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o6yd6"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_chplt"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/right/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f1q4k"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_obxrh"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/left/input/thumbstick/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ipdtq"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_on7oi"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ege4h"] action = SubResource("OpenXRAction_6fhh8") -paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") +binding_path = "/user/hand/left/input/thumbstick/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_21gnj"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_h7ix0"] +action = SubResource("OpenXRAction_6fhh8") +binding_path = "/user/hand/right/input/thumbstick/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8qanm"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3senm"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_cecfi"] interaction_profile_path = "/interaction_profiles/oculus/touch_controller" -bindings = [SubResource("OpenXRIPBinding_nd0nv"), SubResource("OpenXRIPBinding_b1keg"), SubResource("OpenXRIPBinding_y80n1"), SubResource("OpenXRIPBinding_21ll0"), SubResource("OpenXRIPBinding_mf8oy"), SubResource("OpenXRIPBinding_b3ly6"), SubResource("OpenXRIPBinding_kxx1m"), SubResource("OpenXRIPBinding_owjx7"), SubResource("OpenXRIPBinding_4vobt"), SubResource("OpenXRIPBinding_4c5y2"), SubResource("OpenXRIPBinding_a2da2"), SubResource("OpenXRIPBinding_qbq0m"), SubResource("OpenXRIPBinding_qvq2q"), SubResource("OpenXRIPBinding_wftaa"), SubResource("OpenXRIPBinding_o6yd6"), SubResource("OpenXRIPBinding_f1q4k"), SubResource("OpenXRIPBinding_ipdtq"), SubResource("OpenXRIPBinding_21gnj")] +bindings = [SubResource("OpenXRIPBinding_51qre"), SubResource("OpenXRIPBinding_fncxp"), SubResource("OpenXRIPBinding_qi50k"), SubResource("OpenXRIPBinding_h5icu"), SubResource("OpenXRIPBinding_b1sv6"), SubResource("OpenXRIPBinding_yu2t6"), SubResource("OpenXRIPBinding_labib"), SubResource("OpenXRIPBinding_altuc"), SubResource("OpenXRIPBinding_7p0fp"), SubResource("OpenXRIPBinding_yjnix"), SubResource("OpenXRIPBinding_pgh0x"), SubResource("OpenXRIPBinding_lplyu"), SubResource("OpenXRIPBinding_ifnya"), SubResource("OpenXRIPBinding_jl4vo"), SubResource("OpenXRIPBinding_1n6j6"), SubResource("OpenXRIPBinding_o1nfs"), SubResource("OpenXRIPBinding_unnrh"), SubResource("OpenXRIPBinding_3wafl"), SubResource("OpenXRIPBinding_tjb53"), SubResource("OpenXRIPBinding_lcg2b"), SubResource("OpenXRIPBinding_sp6l2"), SubResource("OpenXRIPBinding_xj6ir"), SubResource("OpenXRIPBinding_igmf3"), SubResource("OpenXRIPBinding_inw5v"), SubResource("OpenXRIPBinding_iy2wq"), SubResource("OpenXRIPBinding_plu03"), SubResource("OpenXRIPBinding_dad45"), SubResource("OpenXRIPBinding_m5e8q"), SubResource("OpenXRIPBinding_5t7jh"), SubResource("OpenXRIPBinding_chplt"), SubResource("OpenXRIPBinding_obxrh"), SubResource("OpenXRIPBinding_on7oi"), SubResource("OpenXRIPBinding_ege4h"), SubResource("OpenXRIPBinding_h7ix0"), SubResource("OpenXRIPBinding_8qanm"), SubResource("OpenXRIPBinding_3senm")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7ca55"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7iinx"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ih1l2"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/right/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_glu3k"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ipewn"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_26c85"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5ngl7"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_klygg"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4p63k"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6vi2m"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l6k1n"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_888d1"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_iqrgp"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_246v5"] action = SubResource("OpenXRAction_pvvib") -paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") +binding_path = "/user/hand/left/input/system/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ty3b7"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xj73r"] +action = SubResource("OpenXRAction_pvvib") +binding_path = "/user/hand/right/input/system/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sugej"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/back/click", "/user/hand/right/input/back/click") +binding_path = "/user/hand/left/input/back/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fp7u7"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/back/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gvgeq"] +action = SubResource("OpenXRAction_65mni") +binding_path = "/user/hand/left/input/x/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_50l73"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_i0s8c"] action = SubResource("OpenXRAction_65mni") -paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") +binding_path = "/user/hand/right/input/a/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ynetq"] +action = SubResource("OpenXRAction_e3nol") +binding_path = "/user/hand/left/input/x/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2up8o"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p8bcx"] action = SubResource("OpenXRAction_e3nol") -paths = PackedStringArray("/user/hand/left/input/x/touch", "/user/hand/right/input/a/touch") +binding_path = "/user/hand/right/input/a/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dqti8"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jkemj"] action = SubResource("OpenXRAction_gu74c") -paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") +binding_path = "/user/hand/left/input/y/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bi6jq"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d3nfp"] +action = SubResource("OpenXRAction_gu74c") +binding_path = "/user/hand/right/input/b/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jyu76"] action = SubResource("OpenXRAction_53bq6") -paths = PackedStringArray("/user/hand/left/input/y/touch", "/user/hand/right/input/b/touch") +binding_path = "/user/hand/left/input/y/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3m5i2"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_aecy5"] +action = SubResource("OpenXRAction_53bq6") +binding_path = "/user/hand/right/input/b/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8vb80"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/left/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_myee0"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1vv3a"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/left/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rt55c"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tjysa"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ckrn3"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_r4yxn"] action = SubResource("OpenXRAction_hxujo") -paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") +binding_path = "/user/hand/left/input/trigger/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0rb68"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_me87v"] +action = SubResource("OpenXRAction_hxujo") +binding_path = "/user/hand/right/input/trigger/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d8myu"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/left/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hsh5n"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/right/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lng5j"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/left/input/squeeze/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xrqh8"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_aeeoj"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/right/input/squeeze/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_08h4g"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gosqu"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u0q8j"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n52fm"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/right/input/thumbstick" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vushy"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/left/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lbhgg"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m1cgb"] +action = SubResource("OpenXRAction_6fhh8") +binding_path = "/user/hand/left/input/thumbstick/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lcjcc"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yfktj"] action = SubResource("OpenXRAction_6fhh8") -paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") +binding_path = "/user/hand/right/input/thumbstick/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kjhen"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uvu7r"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_32kw4"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_vffym"] -interaction_profile_path = "/interaction_profiles/pico/neo3_controller" -bindings = [SubResource("OpenXRIPBinding_7iinx"), SubResource("OpenXRIPBinding_glu3k"), SubResource("OpenXRIPBinding_26c85"), SubResource("OpenXRIPBinding_l6k1n"), SubResource("OpenXRIPBinding_iqrgp"), SubResource("OpenXRIPBinding_ty3b7"), SubResource("OpenXRIPBinding_50l73"), SubResource("OpenXRIPBinding_2up8o"), SubResource("OpenXRIPBinding_dqti8"), SubResource("OpenXRIPBinding_bi6jq"), SubResource("OpenXRIPBinding_3m5i2"), SubResource("OpenXRIPBinding_rt55c"), SubResource("OpenXRIPBinding_ckrn3"), SubResource("OpenXRIPBinding_0rb68"), SubResource("OpenXRIPBinding_xrqh8"), SubResource("OpenXRIPBinding_08h4g"), SubResource("OpenXRIPBinding_u0q8j"), SubResource("OpenXRIPBinding_lcjcc"), SubResource("OpenXRIPBinding_uvu7r")] +interaction_profile_path = "/interaction_profiles/bytedance/pico_neo3_controller" +bindings = [SubResource("OpenXRIPBinding_7ca55"), SubResource("OpenXRIPBinding_ih1l2"), SubResource("OpenXRIPBinding_ipewn"), SubResource("OpenXRIPBinding_5ngl7"), SubResource("OpenXRIPBinding_klygg"), SubResource("OpenXRIPBinding_4p63k"), SubResource("OpenXRIPBinding_6vi2m"), SubResource("OpenXRIPBinding_888d1"), SubResource("OpenXRIPBinding_246v5"), SubResource("OpenXRIPBinding_xj73r"), SubResource("OpenXRIPBinding_sugej"), SubResource("OpenXRIPBinding_fp7u7"), SubResource("OpenXRIPBinding_gvgeq"), SubResource("OpenXRIPBinding_i0s8c"), SubResource("OpenXRIPBinding_ynetq"), SubResource("OpenXRIPBinding_p8bcx"), SubResource("OpenXRIPBinding_jkemj"), SubResource("OpenXRIPBinding_d3nfp"), SubResource("OpenXRIPBinding_jyu76"), SubResource("OpenXRIPBinding_aecy5"), SubResource("OpenXRIPBinding_8vb80"), SubResource("OpenXRIPBinding_myee0"), SubResource("OpenXRIPBinding_1vv3a"), SubResource("OpenXRIPBinding_tjysa"), SubResource("OpenXRIPBinding_r4yxn"), SubResource("OpenXRIPBinding_me87v"), SubResource("OpenXRIPBinding_d8myu"), SubResource("OpenXRIPBinding_hsh5n"), SubResource("OpenXRIPBinding_lng5j"), SubResource("OpenXRIPBinding_aeeoj"), SubResource("OpenXRIPBinding_gosqu"), SubResource("OpenXRIPBinding_n52fm"), SubResource("OpenXRIPBinding_vushy"), SubResource("OpenXRIPBinding_lbhgg"), SubResource("OpenXRIPBinding_m1cgb"), SubResource("OpenXRIPBinding_yfktj"), SubResource("OpenXRIPBinding_kjhen"), SubResource("OpenXRIPBinding_32kw4")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s8qcy"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ktbxl"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rdd40"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8ldfe"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nueak"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xq6n7"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vopyr"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rgbyv"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bflds"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pueci"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s6no5"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jn5l0"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wixrp"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_44ra8"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/system/click", "/user/hand/right/input/system/click") +binding_path = "/user/hand/left/input/system/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2o555"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bh82f"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/system/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7b312"] +action = SubResource("OpenXRAction_65mni") +binding_path = "/user/hand/left/input/a/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ajt26"] action = SubResource("OpenXRAction_65mni") -paths = PackedStringArray("/user/hand/left/input/a/click", "/user/hand/right/input/a/click") +binding_path = "/user/hand/right/input/a/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_grl1h"] +action = SubResource("OpenXRAction_e3nol") +binding_path = "/user/hand/left/input/a/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x2kuu"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dlpx3"] action = SubResource("OpenXRAction_e3nol") -paths = PackedStringArray("/user/hand/left/input/a/touch", "/user/hand/right/input/a/touch") +binding_path = "/user/hand/right/input/a/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a8d2i"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s4h6a"] action = SubResource("OpenXRAction_gu74c") -paths = PackedStringArray("/user/hand/left/input/b/click", "/user/hand/right/input/b/click") +binding_path = "/user/hand/left/input/b/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7xjn0"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0njdn"] +action = SubResource("OpenXRAction_gu74c") +binding_path = "/user/hand/right/input/b/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xtpgr"] action = SubResource("OpenXRAction_53bq6") -paths = PackedStringArray("/user/hand/left/input/b/touch", "/user/hand/right/input/b/touch") +binding_path = "/user/hand/left/input/b/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sm8ja"] +action = SubResource("OpenXRAction_53bq6") +binding_path = "/user/hand/right/input/b/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fyyqw"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/left/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_61j10"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6yfaw"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x7rhh"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/left/input/trigger/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_njjgl"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8cuio"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") +binding_path = "/user/hand/right/input/trigger/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_70ls8"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v0kom"] action = SubResource("OpenXRAction_hxujo") -paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") +binding_path = "/user/hand/left/input/trigger/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m7p65"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v1men"] +action = SubResource("OpenXRAction_hxujo") +binding_path = "/user/hand/right/input/trigger/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qujgh"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/left/input/squeeze/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ldwqg"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8xxre"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/right/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jceb4"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/left/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lvl5r"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/right/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2juyq"] +action = SubResource("OpenXRAction_armw5") +binding_path = "/user/hand/left/input/squeeze/force" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ti5px"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_c1fap"] action = SubResource("OpenXRAction_armw5") -paths = PackedStringArray("/user/hand/left/input/squeeze/force", "/user/hand/right/input/squeeze/force") +binding_path = "/user/hand/right/input/squeeze/force" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lls23"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_34k6i"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_unpad"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_biq8g"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/right/input/thumbstick" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7rnxc"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/left/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_go0kb"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_psf6i"] +action = SubResource("OpenXRAction_6fhh8") +binding_path = "/user/hand/left/input/thumbstick/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ctaw6"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_q7kgi"] action = SubResource("OpenXRAction_6fhh8") -paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") +binding_path = "/user/hand/right/input/thumbstick/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f2gcy"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ggehc"] action = SubResource("OpenXRAction_7nwa6") -paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") +binding_path = "/user/hand/left/input/trackpad" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_opmtf"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8isuk"] +action = SubResource("OpenXRAction_7nwa6") +binding_path = "/user/hand/right/input/trackpad" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l36rf"] action = SubResource("OpenXRAction_56j1t") -paths = PackedStringArray("/user/hand/left/input/trackpad/force", "/user/hand/right/input/trackpad/force") +binding_path = "/user/hand/left/input/trackpad/force" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7xtpc"] +action = SubResource("OpenXRAction_56j1t") +binding_path = "/user/hand/right/input/trackpad/force" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lxj72"] +action = SubResource("OpenXRAction_hs0tv") +binding_path = "/user/hand/left/input/trackpad/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6rsde"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ipsea"] action = SubResource("OpenXRAction_hs0tv") -paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") +binding_path = "/user/hand/right/input/trackpad/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_n5ic7"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_y76vj"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yb78u"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_nih82"] interaction_profile_path = "/interaction_profiles/valve/index_controller" -bindings = [SubResource("OpenXRIPBinding_s8qcy"), SubResource("OpenXRIPBinding_rdd40"), SubResource("OpenXRIPBinding_xq6n7"), SubResource("OpenXRIPBinding_s6no5"), SubResource("OpenXRIPBinding_wixrp"), SubResource("OpenXRIPBinding_2o555"), SubResource("OpenXRIPBinding_x2kuu"), SubResource("OpenXRIPBinding_a8d2i"), SubResource("OpenXRIPBinding_7xjn0"), SubResource("OpenXRIPBinding_61j10"), SubResource("OpenXRIPBinding_njjgl"), SubResource("OpenXRIPBinding_70ls8"), SubResource("OpenXRIPBinding_m7p65"), SubResource("OpenXRIPBinding_ldwqg"), SubResource("OpenXRIPBinding_ti5px"), SubResource("OpenXRIPBinding_lls23"), SubResource("OpenXRIPBinding_unpad"), SubResource("OpenXRIPBinding_ctaw6"), SubResource("OpenXRIPBinding_f2gcy"), SubResource("OpenXRIPBinding_opmtf"), SubResource("OpenXRIPBinding_6rsde"), SubResource("OpenXRIPBinding_y76vj")] +bindings = [SubResource("OpenXRIPBinding_ktbxl"), SubResource("OpenXRIPBinding_8ldfe"), SubResource("OpenXRIPBinding_nueak"), SubResource("OpenXRIPBinding_vopyr"), SubResource("OpenXRIPBinding_rgbyv"), SubResource("OpenXRIPBinding_bflds"), SubResource("OpenXRIPBinding_pueci"), SubResource("OpenXRIPBinding_jn5l0"), SubResource("OpenXRIPBinding_44ra8"), SubResource("OpenXRIPBinding_bh82f"), SubResource("OpenXRIPBinding_7b312"), SubResource("OpenXRIPBinding_ajt26"), SubResource("OpenXRIPBinding_grl1h"), SubResource("OpenXRIPBinding_dlpx3"), SubResource("OpenXRIPBinding_s4h6a"), SubResource("OpenXRIPBinding_0njdn"), SubResource("OpenXRIPBinding_xtpgr"), SubResource("OpenXRIPBinding_sm8ja"), SubResource("OpenXRIPBinding_fyyqw"), SubResource("OpenXRIPBinding_6yfaw"), SubResource("OpenXRIPBinding_x7rhh"), SubResource("OpenXRIPBinding_8cuio"), SubResource("OpenXRIPBinding_v0kom"), SubResource("OpenXRIPBinding_v1men"), SubResource("OpenXRIPBinding_qujgh"), SubResource("OpenXRIPBinding_8xxre"), SubResource("OpenXRIPBinding_jceb4"), SubResource("OpenXRIPBinding_lvl5r"), SubResource("OpenXRIPBinding_2juyq"), SubResource("OpenXRIPBinding_c1fap"), SubResource("OpenXRIPBinding_34k6i"), SubResource("OpenXRIPBinding_biq8g"), SubResource("OpenXRIPBinding_7rnxc"), SubResource("OpenXRIPBinding_go0kb"), SubResource("OpenXRIPBinding_psf6i"), SubResource("OpenXRIPBinding_q7kgi"), SubResource("OpenXRIPBinding_ggehc"), SubResource("OpenXRIPBinding_8isuk"), SubResource("OpenXRIPBinding_l36rf"), SubResource("OpenXRIPBinding_7xtpc"), SubResource("OpenXRIPBinding_lxj72"), SubResource("OpenXRIPBinding_ipsea"), SubResource("OpenXRIPBinding_n5ic7"), SubResource("OpenXRIPBinding_yb78u")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_msn0p"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u1xt5"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jp0a5"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_e0b0t"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_e56i2"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2j87j"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_o3gnr"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x0dby"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oysla"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jfg4b"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ie12e"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dkohk"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_k88oy"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4j1at"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") +binding_path = "/user/hand/left/input/menu/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_s16x0"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0c4l6"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/menu/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dj07b"] +action = SubResource("OpenXRAction_65mni") +binding_path = "/user/hand/left/input/x/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p2sos"] action = SubResource("OpenXRAction_65mni") -paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") +binding_path = "/user/hand/right/input/a/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sjamf"] +action = SubResource("OpenXRAction_gu74c") +binding_path = "/user/hand/left/input/y/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ehwnf"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_if5c0"] action = SubResource("OpenXRAction_gu74c") -paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") +binding_path = "/user/hand/right/input/b/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l1yav"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_57aju"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/left/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wcd1c"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2nhts"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7wbbb"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/left/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xagmn"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x3bni"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/left/input/squeeze/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_kmrh3"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ix831"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/right/input/squeeze/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_shvqi"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/left/input/squeeze/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_21s2d"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mqshq"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/value", "/user/hand/right/input/squeeze/value") +binding_path = "/user/hand/right/input/squeeze/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_npdjo"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bugar"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_djdns"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1tmte"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/right/input/thumbstick" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ve8wc"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/left/input/thumbstick/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_srb2c"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_txme2"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_nudtj"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_2a6v2"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_0wubw"] interaction_profile_path = "/interaction_profiles/hp/mixed_reality_controller" -bindings = [SubResource("OpenXRIPBinding_msn0p"), SubResource("OpenXRIPBinding_jp0a5"), SubResource("OpenXRIPBinding_2j87j"), SubResource("OpenXRIPBinding_ie12e"), SubResource("OpenXRIPBinding_k88oy"), SubResource("OpenXRIPBinding_s16x0"), SubResource("OpenXRIPBinding_ehwnf"), SubResource("OpenXRIPBinding_l1yav"), SubResource("OpenXRIPBinding_wcd1c"), SubResource("OpenXRIPBinding_kmrh3"), SubResource("OpenXRIPBinding_21s2d"), SubResource("OpenXRIPBinding_npdjo"), SubResource("OpenXRIPBinding_djdns"), SubResource("OpenXRIPBinding_srb2c")] +bindings = [SubResource("OpenXRIPBinding_u1xt5"), SubResource("OpenXRIPBinding_e0b0t"), SubResource("OpenXRIPBinding_e56i2"), SubResource("OpenXRIPBinding_o3gnr"), SubResource("OpenXRIPBinding_x0dby"), SubResource("OpenXRIPBinding_oysla"), SubResource("OpenXRIPBinding_jfg4b"), SubResource("OpenXRIPBinding_dkohk"), SubResource("OpenXRIPBinding_4j1at"), SubResource("OpenXRIPBinding_0c4l6"), SubResource("OpenXRIPBinding_dj07b"), SubResource("OpenXRIPBinding_p2sos"), SubResource("OpenXRIPBinding_sjamf"), SubResource("OpenXRIPBinding_if5c0"), SubResource("OpenXRIPBinding_57aju"), SubResource("OpenXRIPBinding_2nhts"), SubResource("OpenXRIPBinding_7wbbb"), SubResource("OpenXRIPBinding_xagmn"), SubResource("OpenXRIPBinding_x3bni"), SubResource("OpenXRIPBinding_ix831"), SubResource("OpenXRIPBinding_shvqi"), SubResource("OpenXRIPBinding_mqshq"), SubResource("OpenXRIPBinding_bugar"), SubResource("OpenXRIPBinding_1tmte"), SubResource("OpenXRIPBinding_ve8wc"), SubResource("OpenXRIPBinding_txme2"), SubResource("OpenXRIPBinding_nudtj"), SubResource("OpenXRIPBinding_2a6v2")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jhul1"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v2w88"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hpd1k"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/right/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m0lg7"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7djuc"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6x1en"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rlsjo"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ad82e"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_053t8"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3y48y"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4e1fo"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_eqmbe"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6enbw"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lml5w"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click", "/user/hand/right/input/menu/click") +binding_path = "/user/hand/left/input/menu/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_novhq"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bw6yn"] +action = SubResource("OpenXRAction_7nw37") +binding_path = "/user/hand/right/input/menu/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rmtug"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/left/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_got3w"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cfhcx"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/left/input/trigger/value" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gow14"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wuspj"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_j7v05"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/left/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ovax4"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a0qeh"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/right/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vdyv4"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hop5q"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/left/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g22p7"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wi6q4"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0x121"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uwmbo"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pxanv"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/right/input/thumbstick" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ylsgs"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/left/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lyc6f"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_t1gg6"] +action = SubResource("OpenXRAction_7nwa6") +binding_path = "/user/hand/left/input/trackpad" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_luck6"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u2vet"] action = SubResource("OpenXRAction_7nwa6") -paths = PackedStringArray("/user/hand/left/input/trackpad", "/user/hand/right/input/trackpad") +binding_path = "/user/hand/right/input/trackpad" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_acfs3"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gh4ss"] action = SubResource("OpenXRAction_56j1t") -paths = PackedStringArray("/user/hand/left/input/trackpad/click", "/user/hand/right/input/trackpad/click") +binding_path = "/user/hand/left/input/trackpad/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mvktl"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1olwi"] +action = SubResource("OpenXRAction_56j1t") +binding_path = "/user/hand/right/input/trackpad/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_t23ty"] +action = SubResource("OpenXRAction_hs0tv") +binding_path = "/user/hand/left/input/trackpad/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_eusi4"] action = SubResource("OpenXRAction_hs0tv") -paths = PackedStringArray("/user/hand/left/input/trackpad/touch", "/user/hand/right/input/trackpad/touch") +binding_path = "/user/hand/right/input/trackpad/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_etsgv"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jihtq"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_dnwvb"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_o0oeh"] interaction_profile_path = "/interaction_profiles/samsung/odyssey_controller" -bindings = [SubResource("OpenXRIPBinding_v2w88"), SubResource("OpenXRIPBinding_m0lg7"), SubResource("OpenXRIPBinding_6x1en"), SubResource("OpenXRIPBinding_4e1fo"), SubResource("OpenXRIPBinding_6enbw"), SubResource("OpenXRIPBinding_novhq"), SubResource("OpenXRIPBinding_gow14"), SubResource("OpenXRIPBinding_ovax4"), SubResource("OpenXRIPBinding_vdyv4"), SubResource("OpenXRIPBinding_g22p7"), SubResource("OpenXRIPBinding_uwmbo"), SubResource("OpenXRIPBinding_luck6"), SubResource("OpenXRIPBinding_acfs3"), SubResource("OpenXRIPBinding_mvktl"), SubResource("OpenXRIPBinding_jihtq")] +bindings = [SubResource("OpenXRIPBinding_jhul1"), SubResource("OpenXRIPBinding_hpd1k"), SubResource("OpenXRIPBinding_7djuc"), SubResource("OpenXRIPBinding_rlsjo"), SubResource("OpenXRIPBinding_ad82e"), SubResource("OpenXRIPBinding_053t8"), SubResource("OpenXRIPBinding_3y48y"), SubResource("OpenXRIPBinding_eqmbe"), SubResource("OpenXRIPBinding_lml5w"), SubResource("OpenXRIPBinding_bw6yn"), SubResource("OpenXRIPBinding_rmtug"), SubResource("OpenXRIPBinding_got3w"), SubResource("OpenXRIPBinding_cfhcx"), SubResource("OpenXRIPBinding_wuspj"), SubResource("OpenXRIPBinding_j7v05"), SubResource("OpenXRIPBinding_a0qeh"), SubResource("OpenXRIPBinding_hop5q"), SubResource("OpenXRIPBinding_wi6q4"), SubResource("OpenXRIPBinding_0x121"), SubResource("OpenXRIPBinding_pxanv"), SubResource("OpenXRIPBinding_ylsgs"), SubResource("OpenXRIPBinding_lyc6f"), SubResource("OpenXRIPBinding_t1gg6"), SubResource("OpenXRIPBinding_u2vet"), SubResource("OpenXRIPBinding_gh4ss"), SubResource("OpenXRIPBinding_1olwi"), SubResource("OpenXRIPBinding_t23ty"), SubResource("OpenXRIPBinding_eusi4"), SubResource("OpenXRIPBinding_etsgv"), SubResource("OpenXRIPBinding_dnwvb")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fdn34"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g2w4v"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sblm6"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_icb4r"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xeo6w"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_76fhr"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ddmi7"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/left/input/grip/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l5xwo"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hasjr"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_fcs2k"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m3ces"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_eh655"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" [sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pejbd"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click") +binding_path = "/user/hand/left/input/menu/click" [sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_v54su"] action = SubResource("OpenXRAction_pvvib") -paths = PackedStringArray("/user/hand/right/input/system/click") +binding_path = "/user/hand/right/input/system/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ei4q8"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_a7x12"] action = SubResource("OpenXRAction_65mni") -paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") +binding_path = "/user/hand/left/input/x/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_afmbw"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cimi4"] +action = SubResource("OpenXRAction_65mni") +binding_path = "/user/hand/right/input/a/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d63gl"] action = SubResource("OpenXRAction_gu74c") -paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") +binding_path = "/user/hand/left/input/y/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pernx"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_uthup"] +action = SubResource("OpenXRAction_gu74c") +binding_path = "/user/hand/right/input/b/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_204g3"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/left/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4n1wc"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7hjyr"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/left/input/trigger/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x5u7q"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_60nb8"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") +binding_path = "/user/hand/right/input/trigger/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tkrdh"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_klm8s"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/left/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xmc4s"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_r7qos"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ox4ja"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/left/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bnyx8"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0mq2u"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g7t2n"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_mi28r"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/right/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sm406"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_h1y2o"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/left/input/thumbstick/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_doqns"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cag8c"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_17tdw"] action = SubResource("OpenXRAction_6fhh8") -paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") +binding_path = "/user/hand/left/input/thumbstick/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_pm24r"] +action = SubResource("OpenXRAction_6fhh8") +binding_path = "/user/hand/right/input/thumbstick/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3wkk3"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xxdt3"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lkcwa"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_pnc0p"] interaction_profile_path = "/interaction_profiles/htc/vive_cosmos_controller" -bindings = [SubResource("OpenXRIPBinding_fdn34"), SubResource("OpenXRIPBinding_sblm6"), SubResource("OpenXRIPBinding_l5xwo"), SubResource("OpenXRIPBinding_m3ces"), SubResource("OpenXRIPBinding_pejbd"), SubResource("OpenXRIPBinding_v54su"), SubResource("OpenXRIPBinding_ei4q8"), SubResource("OpenXRIPBinding_afmbw"), SubResource("OpenXRIPBinding_pernx"), SubResource("OpenXRIPBinding_x5u7q"), SubResource("OpenXRIPBinding_tkrdh"), SubResource("OpenXRIPBinding_xmc4s"), SubResource("OpenXRIPBinding_g7t2n"), SubResource("OpenXRIPBinding_sm406"), SubResource("OpenXRIPBinding_doqns"), SubResource("OpenXRIPBinding_xxdt3")] +bindings = [SubResource("OpenXRIPBinding_g2w4v"), SubResource("OpenXRIPBinding_icb4r"), SubResource("OpenXRIPBinding_xeo6w"), SubResource("OpenXRIPBinding_76fhr"), SubResource("OpenXRIPBinding_ddmi7"), SubResource("OpenXRIPBinding_hasjr"), SubResource("OpenXRIPBinding_fcs2k"), SubResource("OpenXRIPBinding_eh655"), SubResource("OpenXRIPBinding_pejbd"), SubResource("OpenXRIPBinding_v54su"), SubResource("OpenXRIPBinding_a7x12"), SubResource("OpenXRIPBinding_cimi4"), SubResource("OpenXRIPBinding_d63gl"), SubResource("OpenXRIPBinding_uthup"), SubResource("OpenXRIPBinding_204g3"), SubResource("OpenXRIPBinding_4n1wc"), SubResource("OpenXRIPBinding_7hjyr"), SubResource("OpenXRIPBinding_60nb8"), SubResource("OpenXRIPBinding_klm8s"), SubResource("OpenXRIPBinding_r7qos"), SubResource("OpenXRIPBinding_ox4ja"), SubResource("OpenXRIPBinding_bnyx8"), SubResource("OpenXRIPBinding_0mq2u"), SubResource("OpenXRIPBinding_mi28r"), SubResource("OpenXRIPBinding_h1y2o"), SubResource("OpenXRIPBinding_cag8c"), SubResource("OpenXRIPBinding_17tdw"), SubResource("OpenXRIPBinding_pm24r"), SubResource("OpenXRIPBinding_3wkk3"), SubResource("OpenXRIPBinding_lkcwa")] + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_h43g7"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_tce8a"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_j3htv"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/right/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xgpg4"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_umnyo"] action = SubResource("OpenXRAction_6gkg6") -paths = PackedStringArray("/user/hand/left/input/aim/pose", "/user/hand/right/input/aim/pose") +binding_path = "/user/hand/left/input/aim/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_38fyr"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_61gsj"] +action = SubResource("OpenXRAction_6gkg6") +binding_path = "/user/hand/right/input/aim/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f63eo"] action = SubResource("OpenXRAction_067ne") -paths = PackedStringArray("/user/hand/left/input/grip/pose", "/user/hand/right/input/grip/pose") +binding_path = "/user/hand/left/input/grip/pose" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4utq2"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3megw"] +action = SubResource("OpenXRAction_067ne") +binding_path = "/user/hand/right/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1875n"] +action = SubResource("OpenXRAction_qnrha") +binding_path = "/user/hand/left/input/palm_ext/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jrx7l"] action = SubResource("OpenXRAction_qnrha") -paths = PackedStringArray("/user/hand/left/input/palm_ext/pose", "/user/hand/right/input/palm_ext/pose") +binding_path = "/user/hand/right/input/palm_ext/pose" [sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l6vq6"] action = SubResource("OpenXRAction_7nw37") -paths = PackedStringArray("/user/hand/left/input/menu/click") +binding_path = "/user/hand/left/input/menu/click" [sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_42l0c"] action = SubResource("OpenXRAction_pvvib") -paths = PackedStringArray("/user/hand/right/input/system/click") +binding_path = "/user/hand/right/input/system/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_sddo8"] +action = SubResource("OpenXRAction_65mni") +binding_path = "/user/hand/left/input/x/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_m3l5r"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5idg5"] action = SubResource("OpenXRAction_65mni") -paths = PackedStringArray("/user/hand/left/input/x/click", "/user/hand/right/input/a/click") +binding_path = "/user/hand/right/input/a/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5lafw"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5vlhu"] action = SubResource("OpenXRAction_gu74c") -paths = PackedStringArray("/user/hand/left/input/y/click", "/user/hand/right/input/b/click") +binding_path = "/user/hand/left/input/y/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l6m0a"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_yto2p"] +action = SubResource("OpenXRAction_gu74c") +binding_path = "/user/hand/right/input/b/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_35s7d"] +action = SubResource("OpenXRAction_md3ep") +binding_path = "/user/hand/left/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cukgo"] action = SubResource("OpenXRAction_md3ep") -paths = PackedStringArray("/user/hand/left/input/trigger/value", "/user/hand/right/input/trigger/value") +binding_path = "/user/hand/right/input/trigger/value" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_58wje"] +action = SubResource("OpenXRAction_h3lvl") +binding_path = "/user/hand/left/input/trigger/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7jhwj"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_x1ifb"] action = SubResource("OpenXRAction_h3lvl") -paths = PackedStringArray("/user/hand/left/input/trigger/click", "/user/hand/right/input/trigger/click") +binding_path = "/user/hand/right/input/trigger/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_w55bi"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hw16p"] action = SubResource("OpenXRAction_hxujo") -paths = PackedStringArray("/user/hand/left/input/trigger/touch", "/user/hand/right/input/trigger/touch") +binding_path = "/user/hand/left/input/trigger/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_p86m2"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gdlwa"] +action = SubResource("OpenXRAction_hxujo") +binding_path = "/user/hand/right/input/trigger/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_drau7"] action = SubResource("OpenXRAction_tnmik") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/left/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0vq03"] +action = SubResource("OpenXRAction_tnmik") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_y7ek0"] +action = SubResource("OpenXRAction_6d2di") +binding_path = "/user/hand/left/input/squeeze/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rebfw"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cy6rb"] action = SubResource("OpenXRAction_6d2di") -paths = PackedStringArray("/user/hand/left/input/squeeze/click", "/user/hand/right/input/squeeze/click") +binding_path = "/user/hand/right/input/squeeze/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6r8a6"] +action = SubResource("OpenXRAction_3n3wv") +binding_path = "/user/hand/left/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_lmb1a"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vmwlg"] action = SubResource("OpenXRAction_3n3wv") -paths = PackedStringArray("/user/hand/left/input/thumbstick", "/user/hand/right/input/thumbstick") +binding_path = "/user/hand/right/input/thumbstick" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ns8st"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qcgh6"] action = SubResource("OpenXRAction_1jiy4") -paths = PackedStringArray("/user/hand/left/input/thumbstick/click", "/user/hand/right/input/thumbstick/click") +binding_path = "/user/hand/left/input/thumbstick/click" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_cvt6y"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bwwah"] +action = SubResource("OpenXRAction_1jiy4") +binding_path = "/user/hand/right/input/thumbstick/click" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_rtyas"] action = SubResource("OpenXRAction_6fhh8") -paths = PackedStringArray("/user/hand/left/input/thumbstick/touch", "/user/hand/right/input/thumbstick/touch") +binding_path = "/user/hand/left/input/thumbstick/touch" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oeo63"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_hk5ci"] +action = SubResource("OpenXRAction_6fhh8") +binding_path = "/user/hand/right/input/thumbstick/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_4j055"] +action = SubResource("OpenXRAction_hs0tv") +binding_path = "/user/hand/left/input/thumbrest/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_awtpp"] action = SubResource("OpenXRAction_hs0tv") -paths = PackedStringArray("/user/hand/left/input/thumbrest/touch", "/user/hand/right/input/thumbrest/touch") +binding_path = "/user/hand/right/input/thumbrest/touch" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_xh6fl"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/hand/left/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_puyck"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ixewl"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/hand/left/output/haptic", "/user/hand/right/output/haptic") +binding_path = "/user/hand/right/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_hwtqa"] interaction_profile_path = "/interaction_profiles/htc/vive_focus3_controller" -bindings = [SubResource("OpenXRIPBinding_tce8a"), SubResource("OpenXRIPBinding_xgpg4"), SubResource("OpenXRIPBinding_38fyr"), SubResource("OpenXRIPBinding_4utq2"), SubResource("OpenXRIPBinding_l6vq6"), SubResource("OpenXRIPBinding_42l0c"), SubResource("OpenXRIPBinding_m3l5r"), SubResource("OpenXRIPBinding_5lafw"), SubResource("OpenXRIPBinding_l6m0a"), SubResource("OpenXRIPBinding_7jhwj"), SubResource("OpenXRIPBinding_w55bi"), SubResource("OpenXRIPBinding_p86m2"), SubResource("OpenXRIPBinding_rebfw"), SubResource("OpenXRIPBinding_lmb1a"), SubResource("OpenXRIPBinding_ns8st"), SubResource("OpenXRIPBinding_cvt6y"), SubResource("OpenXRIPBinding_oeo63"), SubResource("OpenXRIPBinding_puyck")] +bindings = [SubResource("OpenXRIPBinding_h43g7"), SubResource("OpenXRIPBinding_j3htv"), SubResource("OpenXRIPBinding_umnyo"), SubResource("OpenXRIPBinding_61gsj"), SubResource("OpenXRIPBinding_f63eo"), SubResource("OpenXRIPBinding_3megw"), SubResource("OpenXRIPBinding_1875n"), SubResource("OpenXRIPBinding_jrx7l"), SubResource("OpenXRIPBinding_l6vq6"), SubResource("OpenXRIPBinding_42l0c"), SubResource("OpenXRIPBinding_sddo8"), SubResource("OpenXRIPBinding_5idg5"), SubResource("OpenXRIPBinding_5vlhu"), SubResource("OpenXRIPBinding_yto2p"), SubResource("OpenXRIPBinding_35s7d"), SubResource("OpenXRIPBinding_cukgo"), SubResource("OpenXRIPBinding_58wje"), SubResource("OpenXRIPBinding_x1ifb"), SubResource("OpenXRIPBinding_hw16p"), SubResource("OpenXRIPBinding_gdlwa"), SubResource("OpenXRIPBinding_drau7"), SubResource("OpenXRIPBinding_0vq03"), SubResource("OpenXRIPBinding_y7ek0"), SubResource("OpenXRIPBinding_cy6rb"), SubResource("OpenXRIPBinding_6r8a6"), SubResource("OpenXRIPBinding_vmwlg"), SubResource("OpenXRIPBinding_qcgh6"), SubResource("OpenXRIPBinding_bwwah"), SubResource("OpenXRIPBinding_rtyas"), SubResource("OpenXRIPBinding_hk5ci"), SubResource("OpenXRIPBinding_4j055"), SubResource("OpenXRIPBinding_awtpp"), SubResource("OpenXRIPBinding_xh6fl"), SubResource("OpenXRIPBinding_ixewl")] -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_vk64i"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_qwqvw"] action = SubResource("OpenXRAction_qqnhj") -paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/input/grip/pose", "/user/vive_tracker_htcx/role/right_foot/input/grip/pose", "/user/vive_tracker_htcx/role/left_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/right_shoulder/input/grip/pose", "/user/vive_tracker_htcx/role/left_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/right_elbow/input/grip/pose", "/user/vive_tracker_htcx/role/left_knee/input/grip/pose", "/user/vive_tracker_htcx/role/right_knee/input/grip/pose", "/user/vive_tracker_htcx/role/waist/input/grip/pose", "/user/vive_tracker_htcx/role/chest/input/grip/pose", "/user/vive_tracker_htcx/role/camera/input/grip/pose", "/user/vive_tracker_htcx/role/keyboard/input/grip/pose") +binding_path = "/user/vive_tracker_htcx/role/left_foot/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_oqlrv"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/right_foot/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_jw3vw"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/left_shoulder/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_3bjy3"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/right_shoulder/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8upnq"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/left_elbow/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0w2ls"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/right_elbow/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_u8hab"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/left_knee/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_eikk2"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/right_knee/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_5lybe"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/waist/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_l4y5i"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/chest/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_f7m66"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/camera/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_d13a6"] +action = SubResource("OpenXRAction_qqnhj") +binding_path = "/user/vive_tracker_htcx/role/keyboard/input/grip/pose" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_wxcrn"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/left_foot/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_6k8ea"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/right_foot/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_1qemc"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/left_shoulder/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_8u6xu"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/right_shoulder/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_7camc"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/left_elbow/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_0fset"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/right_elbow/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_ei7tg"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/left_knee/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_c2jdk"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/right_knee/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_g5ap7"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/waist/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_bw6j3"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/chest/output/haptic" + +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_gsob2"] +action = SubResource("OpenXRAction_f38u2") +binding_path = "/user/vive_tracker_htcx/role/camera/output/haptic" -[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_52ssb"] +[sub_resource type="OpenXRIPBinding" id="OpenXRIPBinding_145o5"] action = SubResource("OpenXRAction_f38u2") -paths = PackedStringArray("/user/vive_tracker_htcx/role/left_foot/output/haptic", "/user/vive_tracker_htcx/role/right_foot/output/haptic", "/user/vive_tracker_htcx/role/left_shoulder/output/haptic", "/user/vive_tracker_htcx/role/right_shoulder/output/haptic", "/user/vive_tracker_htcx/role/left_elbow/output/haptic", "/user/vive_tracker_htcx/role/right_elbow/output/haptic", "/user/vive_tracker_htcx/role/left_knee/output/haptic", "/user/vive_tracker_htcx/role/right_knee/output/haptic", "/user/vive_tracker_htcx/role/waist/output/haptic", "/user/vive_tracker_htcx/role/chest/output/haptic", "/user/vive_tracker_htcx/role/camera/output/haptic", "/user/vive_tracker_htcx/role/keyboard/output/haptic") +binding_path = "/user/vive_tracker_htcx/role/keyboard/output/haptic" [sub_resource type="OpenXRInteractionProfile" id="OpenXRInteractionProfile_unptl"] interaction_profile_path = "/interaction_profiles/htc/vive_tracker_htcx" -bindings = [SubResource("OpenXRIPBinding_vk64i"), SubResource("OpenXRIPBinding_52ssb")] +bindings = [SubResource("OpenXRIPBinding_qwqvw"), SubResource("OpenXRIPBinding_oqlrv"), SubResource("OpenXRIPBinding_jw3vw"), SubResource("OpenXRIPBinding_3bjy3"), SubResource("OpenXRIPBinding_8upnq"), SubResource("OpenXRIPBinding_0w2ls"), SubResource("OpenXRIPBinding_u8hab"), SubResource("OpenXRIPBinding_eikk2"), SubResource("OpenXRIPBinding_5lybe"), SubResource("OpenXRIPBinding_l4y5i"), SubResource("OpenXRIPBinding_f7m66"), SubResource("OpenXRIPBinding_d13a6"), SubResource("OpenXRIPBinding_wxcrn"), SubResource("OpenXRIPBinding_6k8ea"), SubResource("OpenXRIPBinding_1qemc"), SubResource("OpenXRIPBinding_8u6xu"), SubResource("OpenXRIPBinding_7camc"), SubResource("OpenXRIPBinding_0fset"), SubResource("OpenXRIPBinding_ei7tg"), SubResource("OpenXRIPBinding_c2jdk"), SubResource("OpenXRIPBinding_g5ap7"), SubResource("OpenXRIPBinding_bw6j3"), SubResource("OpenXRIPBinding_gsob2"), SubResource("OpenXRIPBinding_145o5")] [resource] action_sets = [SubResource("OpenXRActionSet_w7n6j")] diff --git a/procedural_3d_grid_sample/art/sophia/sophia.glb.import b/procedural_3d_grid_sample/art/sophia/sophia.glb.import index 7929d8b..5f3faa9 100644 --- a/procedural_3d_grid_sample/art/sophia/sophia.glb.import +++ b/procedural_3d_grid_sample/art/sophia/sophia.glb.import @@ -18,6 +18,7 @@ nodes/root_name="Scene Root" 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 @@ -32,8 +33,5 @@ animation/remove_immutable_tracks=true animation/import_rest_as_RESET=false import_script/path="" _subresources={} -fbx/importer=1 -fbx/allow_geometry_helper_nodes=false -fbx/embedded_image_handling=1 gltf/naming_version=0 gltf/embedded_image_handling=1 diff --git a/procedural_3d_grid_sample/scenes/main.tscn b/procedural_3d_grid_sample/scenes/main.tscn index 3d0e5e5..d0ea65a 100644 --- a/procedural_3d_grid_sample/scenes/main.tscn +++ b/procedural_3d_grid_sample/scenes/main.tscn @@ -1,16 +1,16 @@ [gd_scene load_steps=41 format=3 uid="uid://bg6gj8x7d3mrl"] -[ext_resource type="Script" path="res://addons/procedural_3d_grid/core/hand.gd" id="2_bpl2v"] -[ext_resource type="Shader" path="res://addons/GPUTrail-main/shaders/trail.gdshader" id="2_rl0re"] -[ext_resource type="Shader" path="res://addons/GPUTrail-main/shaders/trail_draw_pass.gdshader" id="3_biyvx"] -[ext_resource type="Script" path="res://addons/procedural_3d_grid/core/xr_origin.gd" id="3_p8s7d"] -[ext_resource type="Script" path="res://addons/procedural_3d_grid/core/xr_pinch.gd" id="4_4qf3o"] -[ext_resource type="Script" path="res://addons/procedural_3d_grid/core/simple_sketcher/sketch_tool.gd" id="5_uqwsl"] -[ext_resource type="Script" path="res://addons/GPUTrail-main/GPUTrail3D.gd" id="6_dqij4"] -[ext_resource type="Shader" path="res://addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gdshader" id="6_wgf7r"] +[ext_resource type="Script" uid="uid://bhgqer41udrla" path="res://addons/procedural_3d_grid/core/hand.gd" id="2_bpl2v"] +[ext_resource type="Shader" uid="uid://nqhuvjyl5bf4" path="res://addons/GPUTrail-main/shaders/trail.gdshader" id="2_rl0re"] +[ext_resource type="Shader" uid="uid://b35htbko4hv85" path="res://addons/GPUTrail-main/shaders/trail_draw_pass.gdshader" id="3_biyvx"] +[ext_resource type="Script" uid="uid://cqeyvdcoi37qr" path="res://addons/procedural_3d_grid/core/xr_origin.gd" id="3_p8s7d"] +[ext_resource type="Script" uid="uid://c351cyh3u2n31" path="res://addons/procedural_3d_grid/core/xr_pinch.gd" id="4_4qf3o"] +[ext_resource type="Script" uid="uid://dl6f33628oxnt" path="res://addons/procedural_3d_grid/core/simple_sketcher/sketch_tool.gd" id="5_uqwsl"] +[ext_resource type="Script" uid="uid://bjpqewbtgif6n" path="res://addons/GPUTrail-main/GPUTrail3D.gd" id="6_dqij4"] +[ext_resource type="Shader" uid="uid://c46ssct7fj6pj" path="res://addons/procedural_3d_grid/core/simple_sketcher/simple_sketch.gdshader" id="6_wgf7r"] [ext_resource type="PackedScene" uid="uid://ye52hc0t6bue" path="res://addons/procedural_3d_grid/core/procedural_grid_3d.tscn" id="6_yejl2"] -[ext_resource type="Script" path="res://addons/procedural_3d_grid/core/follow_test.gd" id="8_uwiqs"] -[ext_resource type="Shader" path="res://addons/procedural_3d_grid/core/simple_sketcher/simple_sketch_shadow.gdshader" id="10_pydft"] +[ext_resource type="Script" uid="uid://18xcph2o0pci" path="res://addons/procedural_3d_grid/core/follow_test.gd" id="8_uwiqs"] +[ext_resource type="Shader" uid="uid://b2cjphncghsi8" path="res://addons/procedural_3d_grid/core/simple_sketcher/simple_sketch_shadow.gdshader" id="10_pydft"] [ext_resource type="PackedScene" uid="uid://cccdflexw520e" path="res://procedural_3d_grid_sample/art/sophia/sophia.glb" id="11_6yesq"] [sub_resource type="StandardMaterial3D" id="StandardMaterial3D_hf7ak"] @@ -41,10 +41,10 @@ gradient = SubResource("Gradient_y8ofu") resource_local_to_scene = true render_priority = 0 shader = ExtResource("3_biyvx") -shader_parameter/emmission_transform = Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) -shader_parameter/flags = 4 shader_parameter/tex = SubResource("GradientTexture1D_g1tsk") shader_parameter/curve = SubResource("CurveTexture_m72oh") +shader_parameter/emmission_transform = Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) +shader_parameter/flags = 4 [sub_resource type="QuadMesh" id="QuadMesh_5hune"] material = SubResource("ShaderMaterial_tj13k") @@ -195,10 +195,10 @@ gradient = SubResource("Gradient_x6w7l") resource_local_to_scene = true render_priority = 0 shader = SubResource("Shader_urvn5") -shader_parameter/emmission_transform = Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) -shader_parameter/flags = 4 shader_parameter/tex = SubResource("GradientTexture1D_24r4x") shader_parameter/curve = SubResource("CurveTexture_m72oh") +shader_parameter/emmission_transform = Projection(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1) +shader_parameter/flags = 4 [sub_resource type="QuadMesh" id="QuadMesh_v1e26"] material = SubResource("ShaderMaterial_sw5rf") diff --git a/project.godot b/project.godot index afc0fd4..1dad228 100644 --- a/project.godot +++ b/project.godot @@ -12,7 +12,7 @@ config_version=5 config/name="xr-grid" run/main_scene="res://procedural_3d_grid_sample/scenes/main.tscn" -config/features=PackedStringArray("4.3", "Double Precision", "Forward Plus") +config/features=PackedStringArray("4.4", "Double Precision", "Forward Plus") config/icon="res://icon.svg" [autoload]