mirror of
https://github.com/godotengine/godot-docs-l10n.git
synced 2025-12-31 09:49:22 +03:00
773 lines
51 KiB
ReStructuredText
773 lines
51 KiB
ReStructuredText
:github_url: hide
|
||
|
||
.. _class_XRInterface:
|
||
|
||
XRInterface
|
||
===========
|
||
|
||
**Успадковує:** :ref:`RefCounted<class_RefCounted>` **<** :ref:`Object<class_Object>`
|
||
|
||
**Успадковано від:** :ref:`MobileVRInterface<class_MobileVRInterface>`, :ref:`OpenXRInterface<class_OpenXRInterface>`, :ref:`WebXRInterface<class_WebXRInterface>`, :ref:`XRInterfaceExtension<class_XRInterfaceExtension>`
|
||
|
||
Базовий клас для реалізації інтерфейсу XR.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Опис
|
||
--------
|
||
|
||
Цей клас повинен бути реалізований для того, щоб зробити AR або VR платформу, доступним до Godot, і вони повинні бути реалізовані як модулі C++ або модулі GDExtension. Частина інтерфейсу піддається GDScript, тому ви можете виявити, увімкнути та налаштувати AR або VR-платформу.
|
||
|
||
Інтерфейси повинні бути написані таким чином, що просто дозволяє їм надати нам робочу настройку. Ви можете перемістити наявні інтерфейси за допомогою :ref:`XRServer<class_XRServer>`.
|
||
|
||
.. rst-class:: classref-introduction-group
|
||
|
||
Посібники
|
||
------------------
|
||
|
||
- :doc:`Індекс документації XR <../tutorials/xr/index>`
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Властивості
|
||
----------------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+--------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
|
||
| :ref:`bool<class_bool>` | :ref:`ar_is_anchor_detection_enabled<class_XRInterface_property_ar_is_anchor_detection_enabled>` | ``false`` |
|
||
+--------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
|
||
| :ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>` | :ref:`environment_blend_mode<class_XRInterface_property_environment_blend_mode>` | ``0`` |
|
||
+--------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
|
||
| :ref:`bool<class_bool>` | :ref:`interface_is_primary<class_XRInterface_property_interface_is_primary>` | ``false`` |
|
||
+--------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
|
||
| :ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` | :ref:`xr_play_area_mode<class_XRInterface_property_xr_play_area_mode>` | ``0`` |
|
||
+--------------------------------------------------------------------+--------------------------------------------------------------------------------------------------+-----------+
|
||
|
||
.. rst-class:: classref-reftable-group
|
||
|
||
Методи
|
||
------------
|
||
|
||
.. table::
|
||
:widths: auto
|
||
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`get_camera_feed_id<class_XRInterface_method_get_camera_feed_id>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`get_capabilities<class_XRInterface_method_get_capabilities>`\ (\ ) |const| |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`StringName<class_StringName>` | :ref:`get_name<class_XRInterface_method_get_name>`\ (\ ) |const| |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`PackedVector3Array<class_PackedVector3Array>` | :ref:`get_play_area<class_XRInterface_method_get_play_area>`\ (\ ) |const| |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Projection<class_Projection>` | :ref:`get_projection_for_view<class_XRInterface_method_get_projection_for_view>`\ (\ view\: :ref:`int<class_int>`, aspect\: :ref:`float<class_float>`, near\: :ref:`float<class_float>`, far\: :ref:`float<class_float>`\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Vector2<class_Vector2>` | :ref:`get_render_target_size<class_XRInterface_method_get_render_target_size>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Array<class_Array>` | :ref:`get_supported_environment_blend_modes<class_XRInterface_method_get_supported_environment_blend_modes>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Dictionary<class_Dictionary>` | :ref:`get_system_info<class_XRInterface_method_get_system_info>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`TrackingStatus<enum_XRInterface_TrackingStatus>` | :ref:`get_tracking_status<class_XRInterface_method_get_tracking_status>`\ (\ ) |const| |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`Transform3D<class_Transform3D>` | :ref:`get_transform_for_view<class_XRInterface_method_get_transform_for_view>`\ (\ view\: :ref:`int<class_int>`, cam_transform\: :ref:`Transform3D<class_Transform3D>`\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`int<class_int>` | :ref:`get_view_count<class_XRInterface_method_get_view_count>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`initialize<class_XRInterface_method_initialize>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_initialized<class_XRInterface_method_is_initialized>`\ (\ ) |const| |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_passthrough_enabled<class_XRInterface_method_is_passthrough_enabled>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`is_passthrough_supported<class_XRInterface_method_is_passthrough_supported>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`set_environment_blend_mode<class_XRInterface_method_set_environment_blend_mode>`\ (\ mode\: :ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>`\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`set_play_area_mode<class_XRInterface_method_set_play_area_mode>`\ (\ mode\: :ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>`\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`start_passthrough<class_XRInterface_method_start_passthrough>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`stop_passthrough<class_XRInterface_method_stop_passthrough>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| :ref:`bool<class_bool>` | :ref:`supports_play_area_mode<class_XRInterface_method_supports_play_area_mode>`\ (\ mode\: :ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>`\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`trigger_haptic_pulse<class_XRInterface_method_trigger_haptic_pulse>`\ (\ action_name\: :ref:`String<class_String>`, tracker_name\: :ref:`StringName<class_StringName>`, frequency\: :ref:`float<class_float>`, amplitude\: :ref:`float<class_float>`, duration_sec\: :ref:`float<class_float>`, delay_sec\: :ref:`float<class_float>`\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
| |void| | :ref:`uninitialize<class_XRInterface_method_uninitialize>`\ (\ ) |
|
||
+--------------------------------------------------------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Сигнали
|
||
--------------
|
||
|
||
.. _class_XRInterface_signal_play_area_changed:
|
||
|
||
.. rst-class:: classref-signal
|
||
|
||
**play_area_changed**\ (\ mode\: :ref:`int<class_int>`\ ) :ref:`🔗<class_XRInterface_signal_play_area_changed>`
|
||
|
||
При зміні ігрової зони. Це може бути результатом того, що гравець скидає межі або вказавши нову ігрову зону, гравець змінює режим ігрової зони, зміни масштабу світового масштабу або гравця, що скидає свою основну спрямованість.
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Переліки
|
||
----------------
|
||
|
||
.. _enum_XRInterface_Capabilities:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
enum **Capabilities**: :ref:`🔗<enum_XRInterface_Capabilities>`
|
||
|
||
.. _class_XRInterface_constant_XR_NONE:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`Capabilities<enum_XRInterface_Capabilities>` **XR_NONE** = ``0``
|
||
|
||
Немає можливостей XR.
|
||
|
||
.. _class_XRInterface_constant_XR_MONO:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`Capabilities<enum_XRInterface_Capabilities>` **XR_MONO** = ``1``
|
||
|
||
Цей інтерфейс може працювати з нормальним виведенням рендерінгу (не-HMD на основі AR).
|
||
|
||
.. _class_XRInterface_constant_XR_STEREO:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`Capabilities<enum_XRInterface_Capabilities>` **XR_STEREO** = ``2``
|
||
|
||
Цей інтерфейс підтримує стереоскопічне рендеринг.
|
||
|
||
.. _class_XRInterface_constant_XR_QUAD:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`Capabilities<enum_XRInterface_Capabilities>` **XR_QUAD** = ``4``
|
||
|
||
Цей інтерфейс підтримує Quad рендеринг (не підтримується Godot).
|
||
|
||
.. _class_XRInterface_constant_XR_VR:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`Capabilities<enum_XRInterface_Capabilities>` **XR_VR** = ``8``
|
||
|
||
Цей інтерфейс підтримує VR.
|
||
|
||
.. _class_XRInterface_constant_XR_AR:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`Capabilities<enum_XRInterface_Capabilities>` **XR_AR** = ``16``
|
||
|
||
Цей інтерфейс підтримує AR (відео фон і реальний світовий трекінг).
|
||
|
||
.. _class_XRInterface_constant_XR_EXTERNAL:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`Capabilities<enum_XRInterface_Capabilities>` **XR_EXTERNAL** = ``32``
|
||
|
||
Цей інтерфейс виводить до зовнішнього пристрою. Якщо використовується основний видовий порт, вихід на екрані є немодифікованим буфером або лівою або правою окою (за умови, якщо розмір перегляда не змінюється на однакове співвідношення сторін :ref:`get_render_target_size()<class_XRInterface_method_get_render_target_size>`). За допомогою окремого вузла перегляду вивільняється до основного порту для інших цілей.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _enum_XRInterface_TrackingStatus:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
enum **TrackingStatus**: :ref:`🔗<enum_XRInterface_TrackingStatus>`
|
||
|
||
.. _class_XRInterface_constant_XR_NORMAL_TRACKING:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`TrackingStatus<enum_XRInterface_TrackingStatus>` **XR_NORMAL_TRACKING** = ``0``
|
||
|
||
Відстежити посилку.
|
||
|
||
.. _class_XRInterface_constant_XR_EXCESSIVE_MOTION:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`TrackingStatus<enum_XRInterface_TrackingStatus>` **XR_EXCESSIVE_MOTION** = ``1``
|
||
|
||
Відстеження здійснюється за рахунок надмірного руху (гравець рухається швидше, ніж відстеження може триматися).
|
||
|
||
.. _class_XRInterface_constant_XR_INSUFFICIENT_FEATURES:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`TrackingStatus<enum_XRInterface_TrackingStatus>` **XR_INSUFFICIENT_FEATURES** = ``2``
|
||
|
||
Відстеження є недостатніми функціями, це занадто темно (для відстеження камери), гравець блокується і т.д.
|
||
|
||
.. _class_XRInterface_constant_XR_UNKNOWN_TRACKING:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`TrackingStatus<enum_XRInterface_TrackingStatus>` **XR_UNKNOWN_TRACKING** = ``3``
|
||
|
||
Ми не знаємо статус відстеження або цей інтерфейс не надає зворотного зв'язку.
|
||
|
||
.. _class_XRInterface_constant_XR_NOT_TRACKING:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`TrackingStatus<enum_XRInterface_TrackingStatus>` **XR_NOT_TRACKING** = ``4``
|
||
|
||
Відстеження не є функціональним (азера не підключена або застарілим, маяків вимкнено і т.д.).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _enum_XRInterface_PlayAreaMode:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
enum **PlayAreaMode**: :ref:`🔗<enum_XRInterface_PlayAreaMode>`
|
||
|
||
.. _class_XRInterface_constant_XR_PLAY_AREA_UNKNOWN:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **XR_PLAY_AREA_UNKNOWN** = ``0``
|
||
|
||
Режим Play не встановлюється або не доступний.
|
||
|
||
.. _class_XRInterface_constant_XR_PLAY_AREA_3DOF:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **XR_PLAY_AREA_3DOF** = ``1``
|
||
|
||
Ігрова зона підтримує орієнтацію, відсутність позиційного відстеження, зона буде центром навколо гравця.
|
||
|
||
.. _class_XRInterface_constant_XR_PLAY_AREA_SITTING:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **XR_PLAY_AREA_SITTING** = ``2``
|
||
|
||
Гравець знаходиться в сидійному положенні, обмеженому послідовному відстеження, фіксованому опікуном навколо гравця.
|
||
|
||
.. _class_XRInterface_constant_XR_PLAY_AREA_ROOMSCALE:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **XR_PLAY_AREA_ROOMSCALE** = ``3``
|
||
|
||
Гравець є безкоштовним для переміщення, повного відстеження позицій.
|
||
|
||
.. _class_XRInterface_constant_XR_PLAY_AREA_STAGE:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **XR_PLAY_AREA_STAGE** = ``4``
|
||
|
||
Так само, як :ref:`XR_PLAY_AREA_ROOMSCALE<class_XRInterface_constant_XR_PLAY_AREA_ROOMSCALE>`, але точка походження фіксується до центру фізичного простору. У цьому режимі системно-рівневе оновлення може бути вимкнено, що вимагає використання :ref:`XRServer.center_on_hmd()<class_XRServer_method_center_on_hmd>`.
|
||
|
||
.. _class_XRInterface_constant_XR_PLAY_AREA_CUSTOM:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **XR_PLAY_AREA_CUSTOM** = ``2147483647``
|
||
|
||
Власна ігрова зона, встановлена за допомогою GDExtension.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _enum_XRInterface_EnvironmentBlendMode:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
enum **EnvironmentBlendMode**: :ref:`🔗<enum_XRInterface_EnvironmentBlendMode>`
|
||
|
||
.. _class_XRInterface_constant_XR_ENV_BLEND_MODE_OPAQUE:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>` **XR_ENV_BLEND_MODE_OPAQUE** = ``0``
|
||
|
||
Opaque блендерний режим. Це, як правило, використовується для пристроїв VR.
|
||
|
||
.. _class_XRInterface_constant_XR_ENV_BLEND_MODE_ADDITIVE:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>` **XR_ENV_BLEND_MODE_ADDITIVE** = ``1``
|
||
|
||
Добавковий режим блендера. Це, як правило, використовується для пристроїв AR або VR з проривом.
|
||
|
||
.. _class_XRInterface_constant_XR_ENV_BLEND_MODE_ALPHA_BLEND:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>` **XR_ENV_BLEND_MODE_ALPHA_BLEND** = ``2``
|
||
|
||
Режим блендера Альфа. Це, як правило, використовується для пристроїв AR або VR з можливостями пропуску. Альфа-канал контролює, скільки проходу видно. Альфа 0,0 означає, що прохід є видимим і цей піксель працює в режимі ADDITIVE. Альфа 1,0 означає, що прохід не видно, і цей піксель працює в режимі OPAQUE.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _enum_XRInterface_VRSTextureFormat:
|
||
|
||
.. rst-class:: classref-enumeration
|
||
|
||
enum **VRSTextureFormat**: :ref:`🔗<enum_XRInterface_VRSTextureFormat>`
|
||
|
||
.. _class_XRInterface_constant_XR_VRS_TEXTURE_FORMAT_UNIFIED:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`VRSTextureFormat<enum_XRInterface_VRSTextureFormat>` **XR_VRS_TEXTURE_FORMAT_UNIFIED** = ``0``
|
||
|
||
Формат текстури такий самий, як і повернутий методом :ref:`XRVRS.make_vrs_texture()<class_XRVRS_method_make_vrs_texture>`.
|
||
|
||
.. _class_XRInterface_constant_XR_VRS_TEXTURE_FORMAT_FRAGMENT_SHADING_RATE:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`VRSTextureFormat<enum_XRInterface_VRSTextureFormat>` **XR_VRS_TEXTURE_FORMAT_FRAGMENT_SHADING_RATE** = ``1``
|
||
|
||
Формат текстури такий самий, як очікується розширенням Vulkan ``VK_KHR_fragment_shading_rate``.
|
||
|
||
.. _class_XRInterface_constant_XR_VRS_TEXTURE_FORMAT_FRAGMENT_DENSITY_MAP:
|
||
|
||
.. rst-class:: classref-enumeration-constant
|
||
|
||
:ref:`VRSTextureFormat<enum_XRInterface_VRSTextureFormat>` **XR_VRS_TEXTURE_FORMAT_FRAGMENT_DENSITY_MAP** = ``2``
|
||
|
||
Формат текстури такий самий, як очікується розширенням Vulkan ``VK_EXT_fragment_density_map``.
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описи властивостей
|
||
------------------------------------
|
||
|
||
.. _class_XRInterface_property_ar_is_anchor_detection_enabled:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **ar_is_anchor_detection_enabled** = ``false`` :ref:`🔗<class_XRInterface_property_ar_is_anchor_detection_enabled>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_anchor_detection_is_enabled**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **get_anchor_detection_is_enabled**\ (\ )
|
||
|
||
На інтерфейсі AR ``true``, якщо активовано якісне виявлення.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_property_environment_blend_mode:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>` **environment_blend_mode** = ``0`` :ref:`🔗<class_XRInterface_property_environment_blend_mode>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- :ref:`bool<class_bool>` **set_environment_blend_mode**\ (\ mode\: :ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>`\ )
|
||
- :ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>` **get_environment_blend_mode**\ (\ )
|
||
|
||
Вкажіть, як XR повинен поєднуватися в середовищі. Це специфічно для певних пристроїв AR та передових пристроїв, де зображення камери поєднуються в композиторі XR.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_property_interface_is_primary:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`bool<class_bool>` **interface_is_primary** = ``false`` :ref:`🔗<class_XRInterface_property_interface_is_primary>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- |void| **set_primary**\ (\ value\: :ref:`bool<class_bool>`\ )
|
||
- :ref:`bool<class_bool>` **is_primary**\ (\ )
|
||
|
||
``true``, якщо це основний інтерфейс.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_property_xr_play_area_mode:
|
||
|
||
.. rst-class:: classref-property
|
||
|
||
:ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **xr_play_area_mode** = ``0`` :ref:`🔗<class_XRInterface_property_xr_play_area_mode>`
|
||
|
||
.. rst-class:: classref-property-setget
|
||
|
||
- :ref:`bool<class_bool>` **set_play_area_mode**\ (\ mode\: :ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>`\ )
|
||
- :ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>` **get_play_area_mode**\ (\ )
|
||
|
||
Режим гри для цього інтерфейсу.
|
||
|
||
.. rst-class:: classref-section-separator
|
||
|
||
----
|
||
|
||
.. rst-class:: classref-descriptions-group
|
||
|
||
Описи методів
|
||
--------------------------
|
||
|
||
.. _class_XRInterface_method_get_camera_feed_id:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **get_camera_feed_id**\ (\ ) :ref:`🔗<class_XRInterface_method_get_camera_feed_id>`
|
||
|
||
Якщо це інтерфейс AR, який вимагає відображення живлення камери як фон, цей метод повертає ідентифікатор живлення в :ref:`CameraServer<class_CameraServer>` для цього інтерфейсу.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_capabilities:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **get_capabilities**\ (\ ) |const| :ref:`🔗<class_XRInterface_method_get_capabilities>`
|
||
|
||
Повернутися до комбінації прапорів :ref:`Capabilities<enum_XRInterface_Capabilities>`, що надає інформацію про можливості даного інтерфейсу.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_name:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`StringName<class_StringName>` **get_name**\ (\ ) |const| :ref:`🔗<class_XRInterface_method_get_name>`
|
||
|
||
Повертає назву цього інтерфейсу (``"OpenXR"``, ``"OpenVR"``, ``"OpenHMD""``, ``"ARKit"`` і т.д.).
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_play_area:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`PackedVector3Array<class_PackedVector3Array>` **get_play_area**\ (\ ) |const| :ref:`🔗<class_XRInterface_method_get_play_area>`
|
||
|
||
Повертає масив векторів, які відображають фізичну зону відтворення, наведено на віртуальний простір навколо точки :ref:`XROrigin3D<class_XROrigin3D>`. У пунктах формується конвекційний полігон, який може використовуватися для реагування або візуалізації ігрової зони. Це повертає порожній масив, якщо ця функція не підтримується або якщо інформація ще не доступна.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_projection_for_view:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Projection<class_Projection>` **get_projection_for_view**\ (\ view\: :ref:`int<class_int>`, aspect\: :ref:`float<class_float>`, near\: :ref:`float<class_float>`, far\: :ref:`float<class_float>`\ ) :ref:`🔗<class_XRInterface_method_get_projection_for_view>`
|
||
|
||
Повертає матрицю проекції для перегляду/іє.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_render_target_size:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Vector2<class_Vector2>` **get_render_target_size**\ (\ ) :ref:`🔗<class_XRInterface_method_get_render_target_size>`
|
||
|
||
Повертаємо вашу увагу на те, що ми повинні надати нашим проміжним результатам перед тим, як спотворення об'єктивів наноситься віртуальною платформою.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_supported_environment_blend_modes:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Array<class_Array>` **get_supported_environment_blend_modes**\ (\ ) :ref:`🔗<class_XRInterface_method_get_supported_environment_blend_modes>`
|
||
|
||
Повертає масив режимів підтримуваного середовища, див. [enum XRInterface. EnvironmentBlendMode / Профіль.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_system_info:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Dictionary<class_Dictionary>` **get_system_info**\ (\ ) :ref:`🔗<class_XRInterface_method_get_system_info>`
|
||
|
||
Повертаємо додаткову інформацію про систему. Інтерфейси очікувано повертаються ``XRRuntimeName`` і ``XRRRuntimeVersion``, що надає інформацію про використовуваний XR runtime. Додаткові записи можуть бути надані конкретно інтерфейсу.
|
||
|
||
\ **Примітка:**\ Ця інформація може бути доступна тільки після того, як :ref:`initialize()<class_XRInterface_method_initialize>` була успішно викликана.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_tracking_status:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`TrackingStatus<enum_XRInterface_TrackingStatus>` **get_tracking_status**\ (\ ) |const| :ref:`🔗<class_XRInterface_method_get_tracking_status>`
|
||
|
||
Якщо підтримується, повертає статус нашого відстеження. Це дозволить вам надати зворотній зв'язок користувача, незалежно від того, чи є проблеми з відстеженням позицій.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_transform_for_view:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`Transform3D<class_Transform3D>` **get_transform_for_view**\ (\ view\: :ref:`int<class_int>`, cam_transform\: :ref:`Transform3D<class_Transform3D>`\ ) :ref:`🔗<class_XRInterface_method_get_transform_for_view>`
|
||
|
||
Повертає трансформацію для перегляду/іє.
|
||
|
||
\ ``view`` є індексом вид/видалення.
|
||
|
||
\ ``cam_transform`` є трансформацією, який координує пристрій карт до сцен-координат, як правило, :ref:`Node3D.global_transform<class_Node3D_property_global_transform>` струму XROrigin3D.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_get_view_count:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`int<class_int>` **get_view_count**\ (\ ) :ref:`🔗<class_XRInterface_method_get_view_count>`
|
||
|
||
Повертає кількість переглядів, які потрібно надати для цього пристрою. 1 для Моноскопа, 2 для Стереоскопа.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_initialize:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **initialize**\ (\ ) :ref:`🔗<class_XRInterface_method_initialize>`
|
||
|
||
Зателефонуйте цей інтерфейс. Перший інтерфейс, який ініціалізований, ідентифікований як основний інтерфейс, і він буде використовуватися для рендерингу.
|
||
|
||
Після ініціалізації інтерфейсу, який потрібно використовувати для того, щоб увімкнути режим AR/VR перегляду та рендерингу необхідно співрозмовити.
|
||
|
||
\ **Примітка:** Ви повинні увімкнути режим XR на головному екрані для будь-якого пристрою, який використовує головний вихід Godot, наприклад для мобільного VR.
|
||
|
||
Якщо ви це робите для платформи, яка ручить свій власний вихід (наприклад, OpenVR) Godot покаже лише одне око без спотворення на екрані. Крім того, ви можете додати окрему вершину перегляду на вашу сцену і включити AR/VR на цьому видпорті. Він буде використовуватися для виходу на HMD, залишаючи вам безкоштовно, щоб зробити все, що вам подобається в головному вікні, наприклад, за допомогою окремої камери, як камера глядача або надаючи щось абсолютно різне.
|
||
|
||
В даний час не використовується, ви можете активувати додаткові інтерфейси. Ви можете зробити це, якщо ви хочете відстежувати контролери з інших платформ. Тим не менш, в цей момент тільки один інтерфейс може надати HMD.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_is_initialized:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_initialized**\ (\ ) |const| :ref:`🔗<class_XRInterface_method_is_initialized>`
|
||
|
||
Повертає ``true``, якщо цей інтерфейс був ініціалізований.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_is_passthrough_enabled:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_passthrough_enabled**\ (\ ) :ref:`🔗<class_XRInterface_method_is_passthrough_enabled>`
|
||
|
||
**Застаріло:** Check if :ref:`environment_blend_mode<class_XRInterface_property_environment_blend_mode>` is :ref:`XR_ENV_BLEND_MODE_ALPHA_BLEND<class_XRInterface_constant_XR_ENV_BLEND_MODE_ALPHA_BLEND>`, instead.
|
||
|
||
Повертаємо ``true``, якщо ввімкнено прохід.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_is_passthrough_supported:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **is_passthrough_supported**\ (\ ) :ref:`🔗<class_XRInterface_method_is_passthrough_supported>`
|
||
|
||
**Застаріло:** Check that :ref:`XR_ENV_BLEND_MODE_ALPHA_BLEND<class_XRInterface_constant_XR_ENV_BLEND_MODE_ALPHA_BLEND>` is supported using :ref:`get_supported_environment_blend_modes()<class_XRInterface_method_get_supported_environment_blend_modes>`, instead.
|
||
|
||
Повертає ``true``, якщо цей інтерфейс підтримує передачу.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_set_environment_blend_mode:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **set_environment_blend_mode**\ (\ mode\: :ref:`EnvironmentBlendMode<enum_XRInterface_EnvironmentBlendMode>`\ ) :ref:`🔗<class_XRInterface_method_set_environment_blend_mode>`
|
||
|
||
Встановлює режим змішування активного середовища.
|
||
|
||
\ ``mode`` — це режим змішування середовища, починаючи з наступного кадру.
|
||
|
||
\ **Примітка:** Не всі середовища виконання підтримують усі режими змішування середовища, тому важливо перевірити це під час запуску. Наприклад:
|
||
|
||
::
|
||
|
||
func _ready():
|
||
var xr_interface = XRServer.find_interface("OpenXR")
|
||
if xr_interface і xr_interface.is_initialized():
|
||
var vp = get_viewport()
|
||
vp.use_xr = ture
|
||
var acceptable_modes = [XRInterface.XR_ENV_BLEND_MODE_OPAQUE, XRInterface.XR_ENV_BLEND_MODE_ADDITIVE]
|
||
var modes = xr_interface.get_supported_environment_blend_modes()
|
||
for mode в acceptable_modes:
|
||
if mode is modes:
|
||
xr_interface.set_environment_blend_mode(mode)
|
||
break
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_set_play_area_mode:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **set_play_area_mode**\ (\ mode\: :ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>`\ ) :ref:`🔗<class_XRInterface_method_set_play_area_mode>`
|
||
|
||
Налаштовує режим активного відтворення, повернеться ``false``, якщо режим не може використовуватися з цим інтерфейсом.
|
||
|
||
\ **Примітка:** Зміна цього після того, як інтерфейс вже був ініціалізований, може бути бантом для гравця, тому рекомендується нещодавцем на HMD :ref:`XRServer.center_on_hmd()<class_XRServer_method_center_on_hmd>` (при переході на :ref:`XR_PLAY_AREA_STAGE<class_XRInterface_constant_XR_PLAY_AREA_STAGE>`) або зробіть перемикач під час зміни сцени.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_start_passthrough:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **start_passthrough**\ (\ ) :ref:`🔗<class_XRInterface_method_start_passthrough>`
|
||
|
||
**Застаріло:** Set the :ref:`environment_blend_mode<class_XRInterface_property_environment_blend_mode>` to :ref:`XR_ENV_BLEND_MODE_ALPHA_BLEND<class_XRInterface_constant_XR_ENV_BLEND_MODE_ALPHA_BLEND>`, instead.
|
||
|
||
Почати прохід, буде повернено ``false``, якщо пропуск не може бути запущений.
|
||
|
||
\ **Примітка:** Перегляд порту, який використовується для XR, повинен мати прозорий фон, інакше пропуск може не належним чином рендерити.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_stop_passthrough:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **stop_passthrough**\ (\ ) :ref:`🔗<class_XRInterface_method_stop_passthrough>`
|
||
|
||
**Застаріло:** Set the :ref:`environment_blend_mode<class_XRInterface_property_environment_blend_mode>` to :ref:`XR_ENV_BLEND_MODE_OPAQUE<class_XRInterface_constant_XR_ENV_BLEND_MODE_OPAQUE>`, instead.
|
||
|
||
Зупинки пропуску.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_supports_play_area_mode:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
:ref:`bool<class_bool>` **supports_play_area_mode**\ (\ mode\: :ref:`PlayAreaMode<enum_XRInterface_PlayAreaMode>`\ ) :ref:`🔗<class_XRInterface_method_supports_play_area_mode>`
|
||
|
||
Зателефонуйте, щоб дізнатися, чи підтримує цей режим гри.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_trigger_haptic_pulse:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **trigger_haptic_pulse**\ (\ action_name\: :ref:`String<class_String>`, tracker_name\: :ref:`StringName<class_StringName>`, frequency\: :ref:`float<class_float>`, amplitude\: :ref:`float<class_float>`, duration_sec\: :ref:`float<class_float>`, delay_sec\: :ref:`float<class_float>`\ ) :ref:`🔗<class_XRInterface_method_trigger_haptic_pulse>`
|
||
|
||
Запускає тактильний імпульс на пристрої, пов'язаному з цим інтерфейсом.
|
||
|
||
\ ``action_name`` – назва дії для цього імпульсу.
|
||
|
||
\ ``tracker_name`` – необов'язковий параметр і може бути використаний для спрямування імпульсу на певний пристрій за умови, що цей пристрій пов'язаний з цією тактильною функцією.
|
||
|
||
\ ``frequency`` – частота імпульсу, встановлена на ``0.0``, щоб система використовувала частоту за замовчуванням.
|
||
|
||
\ ``amplitude`` – амплітуда імпульсу між ``0.0`` та ``1.0``.
|
||
|
||
\ ``duration_sec`` – тривалість імпульсу в секундах.
|
||
|
||
\ ``delay_sec`` – затримка в секундах перед подачею імпульсу.
|
||
|
||
.. rst-class:: classref-item-separator
|
||
|
||
----
|
||
|
||
.. _class_XRInterface_method_uninitialize:
|
||
|
||
.. rst-class:: classref-method
|
||
|
||
|void| **uninitialize**\ (\ ) :ref:`🔗<class_XRInterface_method_uninitialize>`
|
||
|
||
Увімкніть інтерфейс вимкнено.
|
||
|
||
.. |virtual| replace:: :abbr:`virtual (Зазвичай, цей метод перевизначається користувачем, щоб він мав вплив.)`
|
||
.. |required| replace:: :abbr:`required (This method is required to be overridden when extending its base class.)`
|
||
.. |const| replace:: :abbr:`const (Цей метод не має побічних ефектів. Не змінює ніяку змінну екземпляра об'єкта.)`
|
||
.. |vararg| replace:: :abbr:`vararg (Цей метод приймає будь-яке число аргументів після описаних тут.)`
|
||
.. |constructor| replace:: :abbr:`constructor (Цей метод використовується для побудови типів.)`
|
||
.. |static| replace:: :abbr:`static (Цей метод не потребує екземпляра для виклику, його можна викликати безпосередньо за допомогою назви класу.)`
|
||
.. |operator| replace:: :abbr:`operator (Цей метод описує дійсний оператор для взаємодії з цим типом як з лівим операндом.)`
|
||
.. |bitfield| replace:: :abbr:`BitField (Це значення є цілим числом, складеним у вигляді бітової маски з наступних прапорів.)`
|
||
.. |void| replace:: :abbr:`void (Значення не повертається.)`
|