Criar cenários em Unity/VR a partir de um site. Como fariam?

E aí, pessoal, tudo bem?

Recentemente fui desafiado a criar uma solução para um problema que temos aqui: precisamos dar mais autonomia para que pessoas não-técnicas (como instrutores e designers) possam criar e modificar cenários para nossas simulações em Unity/VR. A ideia é que eles consigam fazer isso de forma rápida, sem precisar abrir a engine ou depender de um desenvolvedor para cada pequena alteração.

Depois de quebrar um pouco a cabeça, a solução que comecei a desenhar é um sistema que funciona em três etapas:

  1. Um Painel de Controle (Site): Criar um site bem visual e intuitivo, onde o usuário pode escolher um cenário base, adicionar objetos de uma biblioteca (ex: máquinas, ferramentas, personagens), posicioná-los no ambiente e definir suas propriedades.

  2. O "Contrato" (JSON): Ao salvar o cenário nesse painel, o sistema geraria um arquivo JSON que descreve tudo: a lista de objetos, suas coordenadas (x, y, z), rotações, e quaisquer outros parâmetros que a gente precise.

  3. A "Mágica" no Unity: A aplicação em si, ao ser iniciada, leria esse arquivo JSON e montaria a cena dinamicamente, instanciando os prefabs corretos nos locais e com as configurações definidas.

Na minha cabeça, isso resolveria o desafio, desacoplando a criação de conteúdo do desenvolvimento do software em si.

Minhas dúvidas para a comunidade são:

  • Para resolver este desafio, vocês acham que essa arquitetura é uma boa prática ou existe uma abordagem melhor?
  • Alguém já passou por um problema parecido? Como resolveu? Quais foram as armadilhas que encontrou no caminho?
  • Estou pensando em usar Node.js + MongoDB para o backend (pela facilidade de lidar com JSON) e React/Vue para o painel. Essa stack faz sentido para esse caso de uso?
  • Para gerar cenários dinâmicos em Unity/VR a partir de um site, JSON é a abordagem recomendada para a comunicação, ou existem alternativas mais eficientes?

Estou bem no início, na fase de planejamento, então toda opinião, crítica construtiva ou dica de tecnologia é super bem-vinda.

Valeu pela força!

Qual é o orçamento para esse projeto?

É uma empresa grande com profissionais capacitados para realizar esse projeto?

Com base no que falou, imaginando que tenha um orçamento grande e um prazo menor que 5 anos:

Fuja das integrações de site com unity, das ferramentas que conheço que envolvem 3d para web e um pouco de conhecimento de 3d para jogos é que são mundos completamente diferentes.

Web é muito mais limitada e não tem muitas funções que de para fazer.

Não entendi direito se a parte do site é obrigatória ou se foi apenas um exemplo de interação fácil.

Se o site não é obrigatório, acredito que um jogo que simule a interface web seja o indicado.

O usuário pode construir o cômodo com objetos de pegar e arrastar e depois só exporta o cenário criado pelo cliente para a aplicação vr.

Olá, Muito obrigado pela sua resposta detalhada e pela perspectiva. Suas perguntas sobre orçamento, prazo e a complexidade da integração são extremamente pertinentes e me dão a oportunidade de contextualizar melhor o projeto, que de fato é um desafio profissional. Nossa equipe foi contratada por uma empresa para desenvolver exatamente esse controlador de simulações. Sua intuição sobre o objetivo final está corretíssima: a visão de longo prazo é, de fato, criar um editor 3D na web, com "arrastar e soltar", que abstraia a complexidade da Unity para os usuários finais (instrutores, gestores, etc.). No entanto, e aqui está o ponto-chave da nossa estratégia, estamos abordando isso com um plano de fases, começando por um MVP (Produto Mínimo Viável). O cliente liberará o investimento maior para o projeto completo após a entrega e validação deste MVP. É crucial reforçar que nossa proposta não é desenvolver uma aplicação 3D complexa na web que tente replicar um motor de jogo. O objetivo é justamente o oposto: criar um editor 3D simplificado que sirva como uma abstração da complexidade da Unity. A ideia é oferecer ao usuário final uma ferramenta visual e intuitiva de "arrastar e soltar", permitindo que ele monte cenários com objetos pré-criados.