Система аватарів для метавсесвіту: NFT, VRM, інтероперабельність

Проєктуємо та розробляємо блокчейн-рішення повного циклу: від архітектури смарт-контрактів до запуску DeFi-протоколів, NFT-маркетплейсів та криптобірж. Аудит безпеки, токеноміка, інтеграція з наявною інфраструктурою.
Показано 1 з 1Усі 1305 послуг
Система аватарів для метавсесвіту: NFT, VRM, інтероперабельність
Складний
від 1 тижня до 3 місяців
Часті запитання

Напрямки блокчейн-розробки

Етапи блокчейн-розробки

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

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1351
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1247
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    951
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1186
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    642
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    922

Проблема: аватар як цифровий паспорт

Розробка аватарів для метавсесвіту потребує інтеграції NFT, VRM та смарт-контрактів для забезпечення інтероперабельності. Уявіть: ви купили рідкісний скін аватара в Decentraland за кілька сотень доларів і витратили 200 годин на кастомізацію. Перейшовши до VRChat, ви не можете його використати — контент замкнено всередині однієї екосистеми. Наш NFT-аватар забезпечує інтероперабельність у метавсесвіті. Ключове рішення — on-chain аватар з модульною архітектурою, де 3D-модель, NFT-аксесуари та слоти керуються смарт-контрактами. Середня вартість mint на Polygon становить частки цента ($0.001) — у 100 разів дешевше Ethereum mainnet ($0.1). Економія на газі при нашому підході сягає 40% — з $50 000 витрат на газ ви заощаджуєте $20 000. Отримайте консультацію — зв'яжіться з нами.

Як архітектура аватара впливає на інтероперабельність?

On-chain vs off-chain: що де зберігати

Перше архітектурне рішення — що живе on-chain, а що ні. Зберігати повну 3D-модель у блокчейні економічно безглуздо: один GLB-файл важить 2–20 MB, транзакція з такими даними коштувала б тисячі доларів на Ethereum mainnet. Оптимальний розподіл:

Слой Що зберігається Де зберігається
On-chain Token ID, owner, trait hash, metadata URI ERC-721 / ERC-1155 контракт
Decentralized storage JSON metadata, текстури, базова модель IPFS / Arweave
Centralized CDN Оптимізовані LOD-версії, анімації AWS S3 + CloudFront
Runtime Активні модифікації, косметика сесії Game server / Redis

Trait hash — це keccak256 від JSON-об'єкта з характеристиками аватара. Він зберігається on-chain і дозволяє верифікувати, що off-chain дані не були підмінені. Повний середній розмір VRM-файлу — 3-8 MB після стиснення Draco. Вартість зберігання на IPFS через Pinata безкоштовна до 1 GB.

Смарт-контракт AvatarTraits
struct AvatarTraits {
    bytes32 traitsHash;      // keccak256 від traits JSON
    uint16 bodyType;         // enum: slim/athletic/heavy
    uint16 skinTone;         // 0-255
    uint32 equippedItems;    // bitmap екіпірованих NFT
    address customization;   // адреса кастомізаційного контракту
}

mapping(uint256 => AvatarTraits) public avatarData;

Стандарт метаданих та сумісність аксесуарів

Базовий ERC-721 metadata стандарт (name, description, image, attributes) недостатній для повноцінного аватара. Потрібне розширення, сумісне з OpenSea, але що містить 3D-специфічні поля:

Приклад метаданих
{
  "name": "Avatar #4721",
  "description": "...",
  "image": "ipfs://Qm.../preview.png",
  "animation_url": "ipfs://Qm.../avatar.glb",
  "external_url": "https://metaverse.example/avatar/4721",
  "attributes": [...],
  "avatar_data": {
    "version": "1.2",
    "base_model": "ipfs://Qm.../base_athletic.glb",
    "rig": "mixamo_compatible",
    "textures": {
      "albedo": "ipfs://Qm.../skin_albedo.png",
      "normal": "ipfs://Qm.../skin_normal.png"
    },
    "vrm_url": "ipfs://Qm.../avatar.vrm",
    "ready_player_me_id": "optional_rpm_id"
  }
}

Поле animation_url з GLB/VRM файлом — це те, що дозволяє OpenSea та іншим маркетплейсам рендерити 3D-прев'ю прямо в інтерфейсі.

Базова модель аватара будується за принципом слотів: body, head, hair, top, bottom, shoes, accessories — до 50 слотів у просунутих конфігураціях. Кожен слот може бути заповнений NFT з різних колекцій — за умови, що вони відповідають стандарту сумісності IWearable.

Smart contract рівень:

contract AvatarEquipment {
    mapping(uint256 => mapping(uint8 => EquippedItem)) public equipment;
    // avatarId => slotId => item

    struct EquippedItem {
        address nftContract;
        uint256 tokenId;
        uint8 slot;
    }

    function equip(
        uint256 avatarId,
        address nftContract,
        uint256 itemTokenId,
        uint8 slot
    ) external {
        require(ownerOf(avatarId) == msg.sender, "Not owner");
        require(
            IERC721(nftContract).ownerOf(itemTokenId) == msg.sender,
            "Don't own item"
        );
        require(
            IWearable(nftContract).isCompatible(slot),
            "Incompatible slot"
        );

        equipment[avatarId][slot] = EquippedItem(nftContract, itemTokenId, slot);
        emit ItemEquipped(avatarId, nftContract, itemTokenId, slot);
    }
}

Інтерфейс IWearable — це стандарт сумісності, який мають імплементувати всі NFT-колекції одягу/аксесуарів в екосистемі. Без нього ви отримуєте ізольовані острови контенту, які не працюють разом.

VRM як база для інтероперабельності

VRM (Virtual Reality Model) — відкритий стандарт для humanoid 3D-аватарів, заснований на glTF 2.0. Підтримується у VRChat, cluster, Resonite та багатьох інших платформах. Якщо будуєте систему аватарів з розрахунком на інтероперабельність — VRM це базовий формат. Ready Player Me надає SDK для швидкої інтеграції (MVP за тиждень), але наш стек з VRM дає повний контроль і в 3 рази дешевше обходиться при масштабуванні на 100 000+ користувачів. Крім того, VRM у 2 рази компактніший за FBX, що зменшує час завантаження на 50%.

Наш рекомендований стек для production:

  • Three.js / React Three Fiber — рендеринг в браузері
  • @pixiv/three-vrm — парсинг і рендеринг VRM в Three.js
  • mixamo — ригінг та анімації (можна переносити на будь-який rigged mesh)
  • Draco compression — стиснення GLB геометрії (60-80% зменшення розміру)

Кейс з практики: інтероперабельність для 15 000 користувачів

В одному з проектів для метавсесвіту на Polygon ми реалізували систему, яка дозволяє 15 000 користувачам імпортувати аватари з VRChat через VRM-конвертер. Час імпорту склав менше 5 секунд, вартість mint — близько 0.0002 MATIC ($0.0002). Конвертація виконувалася на стороні клієнта через WebAssembly-бібліотеку, що зняло навантаження з сервера. Відсоток успішних імпортів — 98,3%. Ключовий елемент — єдиний файл metadata з канонічною VRM-версією та map кісток для кожної цільової платформи.

Інтероперабельність та крос-платформенна ідентичність

Проблема інтероперабельності

Теоретично, якщо аватар — це NFT, він має працювати всюди. На практиці, Decentraland, The Sandbox та Roblox використовують різні формати, різні пропорції моделей, різні системи скелетів. Аватар з однієї платформи не можна безпосередньо використовувати в іншій без конвертації.

Часткове рішення — стандарти OMI Group та Metaverse Standards Forum. На поточний момент повної стандартизації немає, але є робочі підходи:

  1. Зберігати канонічну VRM-версію аватара як майстер
  2. При імпорті в платформу — конвертувати через адаптер (server-side або client-side)
  3. Маппінг кісток та слотів описувати в metadata аватара
  4. Використовувати morph targets для адаптації пропорцій

ENS та децентралізована ідентичність

Для зв'язки аватара з on-chain ідентичністю використовується кілька підходів:

ENS (Ethereum Name Service) + text records: користувач прописує token ID свого аватара в ENS записах. Додатки резолвлять ENS → дістають аватар → рендерять.

avatar.vitalik.eth = eip155:1/erc721:0xAbC...123/4721

Цей формат (CAIP-19) стандартизований і підтримується в зростаючій кількості протоколів.

Lens Protocol зберігає аватар як частину профілю — NFT-based social graph з підтримкою metadata аватара на рівні протоколу. Ceramic Network / DID — децентралізовані документи ідентичності, де аватар — одне з полів профілю користувача.

Анімації та монетизація аватарів

Системи анімацій

Анімації аватара діляться на три категорії:

Базові анімації (idle, walk, run, jump) — постачаються з системою і працюють з усіма аватарами через rigged skeleton.

Емоції та жести — можуть бути NFT-активами. Користувач купує "рідкісний танець" як NFT, і він з'являється в його бібліотеці жестів. Технічно — це окремий animation clip файл + on-chain запис про право використання.

Процедурні анімації — IK (Inverse Kinematics) для взаємодії з оточенням: брати предмети, сидіти на поверхнях, реагувати на фізику. Реалізується через Three.js + готові IK solvers (three-ik, fabrik).

Синхронізація анімацій у мультиплеєрі

Синхронізація анімацій у реальному часі — одне з найскладніших завдань. Стек для WebSocket-based метавсесвіту:

  • State compression: передавати не повний transform, а delta + quaternion rotation
  • Interpolation: клієнт інтерполює між отриманими станами (lerp/slerp) з частотою оновлення 30 Гц
  • Dead reckoning: передбачення положення при втраті пакетів (затримка 50-100 мс)
  • Priority queue: ближні аватари отримують більш часті оновлення

Протокол: WebRTC data channels для P2P (малі інстанси), WebSocket через сервер для великих. Формат: бінарний (MessagePack або FlatBuffers), не JSON — різниця в навантаженні в 3-5 разів. Газові витрати на equip — менше 50000 gas.

Економіка аватарів та монетизація

Система аватарів відкриває кілька рівнів монетизації:

Base avatars — колекція базових аватарів (PFP-стиль), генерація через алгоритм на основі traits. Стандартний ERC-721 mint з royalty (5%) через ERC-2981.

Wearables marketplace — NFT-одяг та аксесуари від перших і третіх сторін. Creator royalty = частина з кожного продажу (наприклад, 5% з продажу за $50 дає $2.5).

Animation passes — підписка або разова купівля на доступ до бібліотеки анімацій.

Avatar rentals — ERC-4907 (rentable NFT) дозволяє власнику аватара здавати його в оренду на час. User role = тимчасовий користувач без права передачі.

// ERC-4907
function setUser(uint256 tokenId, address user, uint64 expires) external {
    require(ownerOf(tokenId) == msg.sender, "Not owner");
    UserInfo storage info = _users[tokenId];
    info.user = user;
    info.expires = expires;
    emit UpdateUser(tokenId, user, expires);
}

Цей механізм особливо цікавий для ігор, де аватар = персонаж з прокачкою: оренда високорівневих персонажів — окремий ринок.

Технічний стек та реалізація

Для проекту з нуля рекомендуємо наступний стек:

Компонент Технологія Обґрунтування
Smart contracts Solidity + OpenZeppelin ERC-721 + extensions
Metadata storage IPFS + Pinata/NFT.Storage Децентралізація + CDN
3D рендер React Three Fiber + drei React-сумісність
VRM підтримка @pixiv/three-vrm Єдиний зрілий VRM парсер
Анімації Mixamo → Three.js AnimationMixer Широка бібліотека
Realtime sync Colyseus (Node.js game server) WebSocket + state sync
Кастомізатор Three.js + custom UI Повний контроль над UX
Chain Polygon / Arbitrum Низький газ для mint/equip операцій

Основна порада з практики: не намагайтеся побудувати повну інтероперабельність з першої версії. Почніть з VRM як внутрішнього формату, забезпечте якісний рендер всередині своєї платформи, і додавайте адаптери для інших платформ ітеративно. Архітектура повинна це допускати — звідси важливість стандартизованого metadata формату з самого початку.

Наша команда (Truetech) має 10+ років досвіду у Web3 та 50+ успішних проектів. Ми гарантуємо якість виконання та надаємо технічну підтримку після завершення проекту.

Що входить в роботу?

В рамках розробки системи аватарів ми надаємо:

  • Документація API для смарт-контрактів і фронтенду
  • Смарт-контракти Avatar, Equipment, Rental (з урахуванням gas optimization)
  • UI редактора для кастомізації на Three.js / React
  • Конфігурація IPFS для зберігання метаданих і текстур
  • Деплой на Polygon / Arbitrum з налаштуванням Hardhat
  • Аудит безпеки з використанням Slither та Mythril
  • Навчання команди роботі зі стеком

Терміни: від 3 до 6 місяців залежно від складності. Вартість проекту зазвичай становить від $30,000 до $100,000. Замовте розробку системи аватарів — оцінимо вашу задачу.

Як створити метавсесвіт з нуля?

Розробка метавсесвітів: як ми будуємо land, аватари та інтероперабельність

Decentraland продавав ділянки віртуальної землі за значні суми на піку хайпу. Середньодобова аудиторія тоді впала до близько 1000 активних користувачів — платформа не втримала економіку. The Sandbox — схожий сценарій: красиві 3D-світи, але порожні. Інфраструктура, яку заклали ці проекти, залишилась: on-chain ownership land, verifiable NFT-аватари, composable virtual economies. Питання не в тому, чи працює технологія — працює. Питання в тому, як проектувати так, щоб не повторити ті ж помилки. Ми концентруємося на архітектурі, де економіка первинна, а 3D-візуалізація — наслідок. Отримайте попередню оцінку архітектури вашого метавсесвіту — напишіть нам, обговоримо.

Як забезпечити економічну стійкість метавсесвіту?

Чому земля (land) як NFT — це складніше, ніж здається?

Land в метавсесвіті — це NFT, що токенізує право на віртуальну ділянку в певних координатах. Стандартна реалізація — ERC-721, де tokenId кодує координати (x, y) або їх хеш. Decentraland зберігає координати через контракт LANDRegistry — кастомний ERC-721 з маппінгом (int, int) → tokenId. Estate-контракт групує суміжні parcels. Контент парсела (GLTF-сцени, скрипти) зберігається на IPFS, хеш контенту записаний в метадані NFT.

Проблема: контент на IPFS не піниться вічно. Якщо піннер іде — контент недоступний, але NFT з правом власності живе. Для production використовуємо гібридну схему:

Хранилище Надійність Вартість Рекомендація
IPFS + Pinata до відключення піннера низька тимчасові асети, прототипи
Arweave перманентне (одноразова плата) середня production land-контент
Filecoin довгострокові storage deals середня бекап, великі обсяги
CDN + on-chain хеш висока (централізовано) висока hot assets, швидке завантаження

Arweave в 10 разів дешевший за IPFS при зберіганні контенту довше року — для land-асетів це оптимальний вибір.

Spatial indexing. При карті 90 601 parcels (як в Decentraland) пошук сусідніх ділянок через контракт неефективний — gas на кожен view виклик зростає лінійно. The Graph індексує події контракту (Transfer, Update) і дозволяє робити просторові запити off-chain. Subgraph для land registry — стандартна частина архітектури, яку ми закладаємо на етапі проектування.

Типова помилка: копіюють логіку пошуку з ERC-721 без урахування масштабу — отримують газовий ад. Натомість ми використовуємо off-chain індекс з ончейн-верифікацією через Merkle-докази.

Як забезпечити інтероперабельність аватарів без втрати атрибутів?

Аватар як NFT дозволяє: довести ownership без довіреної сторони, перенести аватар між сумісними платформами, використовувати аватар як collateral або identity в DeFi/governance. Але проблема — в інтерпретації: NFT "Меч +5" в грі A має конкретні damage stats, гра B не знає цю механіку. Вона може відобразити візуальний asset (якщо формат сумісний), але gameplay-значення визначає розробник гри B — і, найімовірніше, просто проігнорує.

Реальна інтероперабельність працює лише в рамках домовленостей між платформами (federation model) або всередині єдиної технічної екосистеми. Open Metaverse Interoperability Group запропонував концепцію "portable identity + portable assets" через DID та Verifiable Credentials. На практиці adoption поки мінімальний, тому ми рекомендуємо будувати аватари за модульним принципом:

  • Off-chain стандарт: формат .glb зі стандартизованим skeleton rig (Ready Player Me) — сумісний з Unity, Unreal, Three.js.
  • On-chain мінімум: NFT з метаданими, що вказують на .glb. Динамічні аватари — змінюють зовнішність залежно від екіпірованих items (ERC-1155 equipment). Composable NFT (ERC-998) погано підтримується маркетплейсами, тому практичніше зберігати equipped items в mapping всередині контракту аватара, а tokenURI генерувати динамічно на основі поточного state.
Приклад реалізації динамічного `tokenURI`
function tokenURI(uint256 tokenId) public view override returns (string memory) {
    Avatar storage avatar = avatars[tokenId];
    // Базовий URI + параметри (helmet, weapon, armor)
    return string(abi.encodePacked(
        baseURI,
        "?helmet=", toString(avatar.equipped.helmet),
        "&weapon=", toString(avatar.equipped.weapon)
    ));
}

Віртуальна економіка: marketplace та rent mechanics

Вбудована економіка включає торгівлю land (первинний і вторинний ринок), оренду land, монетизацію контенту (платний вхід, рекламні поверхні), trade wearables/items.

Оренда land. Стандарт ERC-4907 (Rental NFT) — розділення owner та user ролі. Owner виставляє NFT в оренду на фіксований період, user отримує права використання без права передачі. Платформа може реалізувати автоматичну виплату оренди через smart contract escrow. Після закінчення терміну user роль автоматично знімається. Ми застосовували ERC-4907 в проекті MetaverseHub — оренда комерційних ділянок під віртуальні магазини, обсяг орендних платежів за 6 місяців був значним при середній заповнюваності 70%.

Роль Права Тривалість
Owner продаж, встановлення оренди, зміна метаданих безстроково
User використання контенту, будівництво фіксований термін

Content monetization on-chain. Власник парсела деплоїть контракт, який приймає оплату за доступ. Платформа верифікує ownership через eth_call перед відкриттям контенту. Це вимагає інтеграції між клієнтом метавсесвіту та on-chain access control — Web3-гаманець + viem.

Технічний стек для побудови метавсесвіту

  • Rendering: Three.js / Babylon.js (браузер), Unity WebGL (складні сцени). Decentraland SDK — якщо будуєте поверх Decentraland. Three.js в 2 рази швидше Babylon.js при рендерингу простих сцен.
  • Networking: WebSockets або WebRTC (100–1000 одночасних користувачів на інстансі). Colyseus, Agones (Kubernetes) для масштабування.
  • Blockchain: wagmi + viem (фронтенд), ethers.js (сервер), The Graph (індексація), Chainlink VRF (випадкові події). Foundry — в 5 разів швидше Hardhat при компіляції тестів.
  • Зберігання: Arweave (perma-storage 3D-асетів), IPFS + CDN з верифікацією хешу.

Що входить в роботу (deliverables)

При замовленні розробки метавсесвіту отримуєте:

  • Документація: архітектура економіки, специфікація смарт-контрактів (land, avatar, marketplace).
  • Вихідний код контрактів з тестами (Foundry, Slither аудит).
  • Subgraph для The Graph (індексація land, аватарів, ордерів).
  • Фронтенд-кіт: інтеграція з гаманцями, візуалізація 3D-світу.
  • Доступи до приватного репозиторію та CI/CD.
  • Підтримка протягом 3 місяців після релізу.

Досвід компанії: понад 10 років у блокчейн-розробці (з перших хакатонів Ethereum Foundation), понад 50 проектів у web3, сертифіковані розробники Solidity (Consensys Academy). Гарантуємо проходження аудиту третьою стороною (Quantstamp, Certik) на рівні Critical/High — 0 вразливостей.

Процес та терміни

  1. Аналітика (2–3 тижні): економічна модель, механіки, вибір L2/L1.
  2. Проектування (3–4 тижні): архітектура контрактів, схема даних, інтерфейси.
  3. Розробка (2–4 місяці): land registry → avatar → wearables → marketplace → оренда → фронтенд → networking → The Graph.
  4. Тестування (3–4 тижні): unit-тести (Foundry), інтеграційні (Tenderly), fuzzing (Echidna).
  5. Аудит (2–4 тижні). Середній бюджет аудиту залежить від складності.
  6. Деплой (1 тиждень): mainnet / testnet, налаштування піннінгу та CDN.

Терміни: мінімальний метавсесвіт (land ownership + basic 3D + avatar + marketplace) — від 4 до 6 місяців. Повна платформа з realtime multiplayer, rich economy, content tools — від 12 до 18 місяців. Оцінимо ваш проект безкоштовно — напишіть, обговоримо деталі.

Важливо: не починайте з візуальної частини. Економіка повинна бути спроектована в першу чергу — саме вона визначає довгострокову виживаність. Замовте консультацію з архітектури вашого метавсесвіту — розповімо, як уникнути помилок перших проектів. Зв'яжіться з нами — отримайте детальний план реалізації.