Примеры использования --------------------- Ниже приведены типовые сценарии применения Python API Varwin в реальных проектах. Примеры охватывают управление объектами, асинхронные сценарии, взаимодействие с пользователем и интеграцию с внешними системами. Автоматизация учебного сценария ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Создание последовательного обучающего процесса с визуальной обратной связью: .. code-block:: python async def TrainingSequence(): # Появление инструкции instruction.Activate() await Varwin.WaitForSeconds(3) instruction.Deactivate() # Активация оборудования machine.Activate() await Varwin.WaitForSeconds(1) # Ожидание правильного действия от пользователя await Varwin.WaitWhile(lambda: not valve.IsOpen) success_sound.Play() await Varwin.WaitForSeconds(2) # Завершение этапа stage_complete.Activate() Varwin.Async.AddStart(TrainingSequence) Взаимодействие с Yandex GPT ~~~~~~~~~~~~~~~~~~~~~~~~~~~ Использование облачной языковой модели Yandex GPT для генерации контекстно-зависимых ответов или подсказок в симуляции: .. code-block:: python import json async def GetHintFromGPT(context: str): # Токен и каталог из настроек Yandex Cloud iam_token = "YOUR_IAM_TOKEN" folder_id = "YOUR_FOLDER_ID" payload = { "modelUri": f"gpt://{folder_id}/yandexgpt/latest", "completionOptions": { "stream": False, "temperature": 0.6, "maxTokens": "50" }, "messages": [ {"role": "system", "text": "Ты — помощник в VR-тренажёре по технике безопасности."}, {"role": "user", "text": f"Пользователь не может открыть аварийный клапан. Контекст: {context}"} ] } response = await Varwin.Requests.Post( "https://llm.api.cloud.yandex.net/foundationModels/v1/completion", json=payload, headers={ "Authorization": f"Bearer {iam_token}", "Content-Type": "application/json" } ) if response.status_code == 200: data = json.loads(response.text) hint_text = data["result"]["alternatives"][0]["message"]["text"] hint_ui.SetText(hint_text) hint_ui.Show() else: Varwin.Debug.LogError(f"Ошибка GPT: {response.status_code}") # Вызывается при нажатии кнопки "Подсказка" Varwin.Async.Run(GetHintFromGPT("Клапан заклинило, требуется повернуть рычаг против часовой стрелки.")) Реакция на события сцены ~~~~~~~~~~~~~~~~~~~~~~~~ Обработка взаимодействия пользователя с объектами в реальном времени: .. code-block:: python def OnAlarmButtonPressed(sender): alarm.Play() door.Lock() Varwin.Async.Run(StartEmergencyProtocol()) # Регистрация обработчика alarmButton.AddButtonPressedHandler(OnAlarmButtonPressed) Эти примеры демонстрируют, как Python API Varwin позволяет создавать гибкие, интерактивные и интегрируемые VR-сценарии — от простых обучающих заданий до сложных промышленных симуляций.