Розробка інструментів для швидкого розставлення об'єктів графіки у сцені

Наша компанія з розробки відеоігор веде незалежні проекти, спільно з клієнтом створює ігри та надає додаткові операційні послуги. Досвід нашої команди дозволяє нам охопити всі ігрові платформи та розробити приголомшливий продукт, що відповідає баченню клієнта та перевагам гравців.

Від імерсивних застосунків до ігрових світів і 3D-сцен

Наша виділена команда для VR/AR/MR-розробки, Unity-продакшну і 3D-моделювання та анімації — з власними кейсами і презентаціями.

Відвідати персоналізований сайт
Показано 1 з 1 послугУсі 242 послуг
Розробка інструментів для швидкого розставлення об'єктів графіки у сцені
Середня
~1-2 тижні
Часті питання

Наші компетенції

Які етапи розробки гри?

Останні роботи

  • image_games_mortal_motors_495_0.webp
    Розробка гри для компанії Mortal Motors
    685
  • image_games_a_turnbased_strategy_game_set_in_a_fantasy_setting_with_fire_and_sword_603_0.webp
    Покрокова стратегія у фентезі сеттингу With Fire And Sword
    866
  • image_games_second_team_604_0.webp
    Розробка ігри для компанії Second term
    492
  • image_games_phoenix_ii_606_0.webp
    3D-анімація – тизер для гри phoenix 2.
    534

Розробка інструментів для швидкої розстановки об'єктів графики в сцені

Дизайнер рівнів для VR-проекту розставляє 300 об'єктів вручну через стандартний Unity Transform gizmo. Кожен об'єкт—позиція, ротація, масштаб руками. На одну кімнату йде два дні. Це не проблема художника—це проблема відсутності інструменту. Кастомний Editor Tool скорочує це час до кількох годин, розробляється один раз на весь проект.

Що входить у кастомний placement tool

Unity Editor Tools API (доступний з 2021.2 через EditorTool базовий клас) дозволяє створити інструмент з повністю кастомним Handles-інтерфейсом у Scene View. Для розстановки об'єктів у VR-сценах типовий набір функцій:

Snap to surface. Об'єкт ставиться на будь-яку поверхню сцени через Physics.Raycast з точки курсора—підлога, стіни, похилі площини. Без цього кожен об'єкт потрібно вручну підіймати або опускати по Y, щоб він не провалився в підлогу та не висів у повітрі. Реалізується через HandleUtility.GUIPointToWorldRay() + Physics.Raycast() в OnToolGUI() з подальшим Undo.RecordObject() для підтримки Ctrl+Z.

Randomized placement. Щелчок лівою кнопкою обирає випадковий префаб з набору, випадкову ротацію в заданому діапазоні, випадковий масштаб. Для organic-looking сцен—кущі, камені, мусор—інструмент робить те, що вручну займало б годинами.

Grid and radial distribution. Обрав площу—інструмент розставив об'єкти по сітці або окружності з заданим кроком та випадковим jitter. Корисно для регулярних структур: паркан, колони, лампи.

Alignment helpers. Вирівнювання обраних об'єктів по X/Y/Z, розподіл з рівним інтервалом між крайніми об'єктами. Стандартний Unity Align Tools цього не вміє в потрібному вигляді.

Реалізація через EditorWindow та EditorTool

Для складних інструментів з UI—EditorWindow + SceneView.duringSceneGui callback. Вікно містить список префабів (малюється через GUILayout з превью через AssetPreview.GetAssetPreview()), налаштування рандомізації, кнопки включення режимів.

Важливий момент для VR-проектів: інструмент повинен враховувати VR-специфіку розстановки. Об'єкти у VR видні зі всіх сторін—потрібна функція автоматичної перевірки «не перетинається ли об'єкт з іншими» через Physics.OverlapBox() або Physics.OverlapSphere(). Перетинення виділяється червоним highlight через Handles.DrawWireCube() прямо в Scene View—дизайнер видить конфлікти негайно.

Serialization стану інструменту—через EditorPrefs для простих налаштувань або ScriptableObject для збереження пресетів розстановки між сесіями. Команда з 3 осіб може шарити пресети через VCS.

Кейс: інструмент розстановки NPC в VR-escape room

Для одного проекту—escape room на 8 комнат—потребувався інструмент розстановки інтерактивних об'єктів з автоматичним назначенням InteractionZone компонента. Клік по поверхні—об'єкт ставиться, до нього автоматично додається XRGrabInteractable, налаштовується InteractionLayerMask за типом об'єкта (grabbable, pressable, turnable), виставляється colliderOffset під VR-захват.

Без інструменту налаштування одного інтерактивного об'єкта займала 5–7 хвилин ручної роботи в Inspector. З інструментом—15 секунд. Вісім комнат з 40–60 об'єктами кожна: різниця в тиждень роботи.

Тип інструменту Орієнтовні строки розробки
Базовий snap-to-surface placer 2–3 робочих дня
Placer з рандомізацією та пресетами 4–7 робочих днів
Повноцінний level-dressing toolkit 2–4 тижні

Вартість визначається після аналізу workflow команди та вимог до функціональності інструменту.