vr flights 73

Ralph Flying Machines · Chewe

Chewe
no MSFS 2024

Dá para construir. O 3D já existe. O SDK cobre o pacote. Quatro ducts, oito motores (dois por ducto, coaxial), tilt frente/trás. Hover cru como heli, ou hover com autopilot (fica no sítio, stick = ângulo). Forward assistido — não um avião com carenagem de GT.

Ralph Flying Machines · o Chewe ainda não voa no sim.

Resposta curta

Sim — documentação chega para um Chewe voável e completo.

Não existe um tipo oficial chamado “flying car”. Existe um SimObject modular de aeronave, com motor eléctrico, rotores visuais, cockpit VR, som, luzes e Community package. É exactamente assim que o Joby, o Archer Midnight, o Jetson One e o VoloCity entram no simulador.

O buraco não é “falta de docs para portar o 3D”. O buraco é o voo assistido de 8 motores + tilt: o SDK documenta Avião, Helicóptero, Tilt e Eléctrico. Os eVTOLs de série resolvem o resto com WASM e/ou 4–16 motores nativos. Esse código de física deles está encriptado — o nosso fazemos nós.
O que já tens

Base pronta

  • Cena Maya Flying Car.mb
  • Pipeline: Maya → 3ds Max + plugin SDK
  • 4 eVTOLs oficiais no disco para estudar ao vivo (Jetson = hover)
  • 8 motores nativos cabem no teto do sim (máx. 16)
4ducts que tilham F/T
8motores (2 por ducto)
2+1hover cru · hover AP · fwd
4bastam se 4 falharem
Olhámos para o teu install

Os eVTOLs que já tens no MSFS 2024

Pacotes em LocalCache\Packages\StreamedPackages. Física em arquivos RASA encriptados. Estrutura modular e FLT/panel em claro no “minimal” do Joby e do VoloCity. Pastas VFS em LocalCache\SimObjects\Airplanes\.

Aeronave O que é O que vimos no disco Lição para o Chewe
Joby S4
joby
Tilt-rotor eVTOL, 6 hélices, asa, FBW. Feito pela FlightFX. Modular. Interior/exterior como attachments. FlightModel.wasm num VCockpit 1×1 px. LocalVars: joby_aircraft_isFlyMode, joby_batteryCapacity=150, throttle = aceleração. FLT de voo tem Collective. 3 motores no apron.flt. Não usam o FM de helicóptero “nu”. Injectam WASM. Hover e cruise são um modo (isFlyMode), não uma asa mágica.
Archer Midnight
midnight
Tilt-rotor, 12 motores, FBW. FlightFX. Mesmo padrão de LocalVars: archer_batteryCapacity=150, archer_isThrottleControllingAcceleration=1. CFGs de física encriptados. Gémeo conceptual do Joby. Confirma a receita FlightFX: bateria + throttle-as-accel + FM custom.
Jetson One
jetsonone
Multicoptero puro, 8 hélices, sem asa. O hover do Chewe aponta para aqui. Pasta modular completa. state.cfg só tem [engine.0]. Som FlightFX. Física encriptada. Câmara VC já materializada. Referência do hover com AP. O Chewe sem AP é heli (tu equilibras). Com AP é isto: estacionário, stick em ângulo. Forward continua à parte — ducts tilham.
VoloCity
microsoft-aircraft-volocity
Air taxi multicoptero oficial. 18 rotores no real; 16 motores no FLT. Attachments separados: fuselagem, engines, propellers, cockpit. runway.flt tem Engine Parameters 1…16. Comentário no panel: VoloStab JS removido — “native behaviors control”. Gauge G3X. Referência de arquitectura nº 1 sem WASM. O sim aceita dezenas de motores eléctricos nativos. Rotores são uma peça modular, não o fuselagem.
Heart ES-30
asobo_es30
Híbrido de asa fixa, 4 motores (2 turbo + 2 eléctricos). Não é VTOL. state.cfg com engine.0–3. WASM de motor eléctrico citado no SDK (ES30_ElectricMotor_Simulation.wasm). Prova que engine_type = 6 (Electric) é de primeira classe. Útil para bateria, não para hover.
Conclusão da autópsia: podes (e deves) abrir o Jetson One e o VoloCity no DevMode → SimObject Editor com o avião carregado. O editor mostra os parâmetros mesmo quando o CFG no disco está em .fsarchive. Isso vale mais do que qualquer leak. Não precisamos de desencriptar o DRM deles.
SDK oficial

O que está documentado — chega para um add-on sério

Coberto de ponta a ponta

  • Project Editor + package modular (common / attachments / presets / liveries)
  • Plugin 3ds Max 2022–2026 + Multi-Exporter glTF (o teu pipeline)
  • Materiais MSFS Standard, Glass, Propeller, Invisible/collision
  • LODs, collision, VR helpers, cameras, luzes, thumbnails
  • Samples: SimpleAircraft, DA62, Cabri G2 (helicóptero)
  • engine_type = 6 Electric + sistema eléctrico modular / baterias
  • Até 16 motores (Engine.0…Engine.15)
  • Model Behaviors + templates de rotor / propeller blur
  • WASM gauges e WASM systems (o truque do Joby)
  • Wwise / sound.xml, VFX, checklists, career (opcional)

Não está documentado como receita

  • Tipo “Quadrotor / multicoptero” no aircraft.cfg — não existe
  • [HELICOPTER] só tem MAINROTOR + SECONDARYROTOR de física
  • FM WASM do Joby/Jetson/Archer (FlightModel.wasm) — fechado
  • Fly + drive no mesmo SimObject (carro no chão, voo no ar)
  • Marketplace career para “carro voador” — fora de âmbito v1

Isto não bloqueia o Chewe. O hover sem AP já é o heli do SDK. O AP (station-keep + stick em ângulo) e o forward com tilt é WASM depois do 3D estar no sim.

Como o Chewe voa

Hover cru ou com AP. Forward assistido. Oito motores.

Não é um Joby (tilt até ficar “asa”). No sítio, o Chewe é um VTOL com interruptor de autopilot. Ducts na vertical nos dois hovers — o que muda é a lei de comando, não o 3D.

Hover · AP off

Como helicóptero

Sem assist. Cíclico, coletivo, pedais — tu equilibras. Deriva, vento, torque: o carro não se segura sozinho. É o modo cru, o de aprender e o de fallback se o computador calar.

Hover · AP on

Fica no sítio

Apertas autopilot: station-keep, não sai do lugar. Stick em ângulo parelho — a deflexão do manche é o ângulo do carro (modo attitude, não rate). Stick ao centro = nivelado e parado. Coletivo sobe/desce no sítio.

Forward

Parece avião, não é

Os 4 ducts tilham para a frente com a velocidade. Um pouco up no climb, um pouco down no descent — o carro fica nivelado, não o pitch de um Cessna. Ângulos afinam-se em voo.

Entrada Hover AP off (heli) Hover AP on (station-keep) Forward
Stick / cíclico Rate / cíclico de heli. Soltas = o carro continua a pender. Tu compensas. Ângulo = ângulo. 10° de stick ≈ 10° de atitude. Centro = 0° e segura posição XY. Direção / atitude assistida. Ducts acompanham.
Coletivo / throttle Potência. Como heli: sobes ou afundas se não gerires. Sobe / desce no sítio. XY preso. Soltar o coletivo não deixa cair à toa — o AP segura hover. Energia / aceleração no eixo do voo.
Pedais Yaw livre. Anti-torque à mão. Yaw no sítio (roda no hover). Sem deriva lateral. Yaw / coordenação, assistido.
Ducts (3D) Vertical (TILT 0°) Vertical (TILT 0°) — o AP não inclina os ducts Tilt frente + correção leve up/down
O botão / switch de autopilot é peça de cockpit com nome estável (AUTOPILOT / AP_HOVER). Liga um L:Var. Sem AP o WASM não mexe na física — deixa o esqueleto de heli. Com AP, o WASM segura posição e traduz stick → atitude.
8 + pane

Dois motores por ducto

Coaxial: cima e baixo, rotação oposta. Oito no total. Voa com 4 se os outros falharem. Paraquedas no plano, não no v1.

v1 · 3D no ar

8 hélices + 4 tilts

engine_type = 6. Handling cru = hover AP off (já é o heli). O botão de AP pode existir no 3D e ainda não fazer nada.

v2 · o produto

WASM = o AP

Gauge 1×1. AP off → não toca. AP on → station-keep + ângulo parelho. Forward = tilt dos 4 ducts. Fail de 4 motores. Código nosso.

Fly+drive fica de fora do v1. Primeiro: pairar cru, pairar com AP, avançar com ducts a inclinar, pousar. Depois asfalto. Paraquedas = attachment, fase à parte.
Já decidido em Julho

Pipeline — não mudamos isto

Maya (metros, pivot limpo, UVs, nomes)
    → FBX
        → 3ds Max edu + plugin MSFS 2024
            → materiais Standard / Glass / Propeller
            → Multi-Exporter (UniqueID, Remove LOD Prefix, TextureLib)
                → glTF + PNG  →  PackageSources do SimObject modular
                    → DevMode Project Editor  →  Community package

Blender fica backup. Max + plugin SDK é a ponte oficial. O Chewe é um Aircraft package sozinho — scenery à parte, se algum dia existir.

Execução

Plano em quatro fases

02–4 dias

Grey box no seletor

Provar o cano antes de polish. Se isto não voa, o resto é cinema.

  1. Instalar/actualizar SDK 2024 + samples (Help no DevMode): SimpleAircraft e Cabri G2.
  2. New Project → Package Aircraft → Modular. Creator climberfx / Ralph Flying Machines. Nome chewe.
  3. Clonar a árvore do Cabri (helicóptero + eléctrico). Substituir mesh por um cubo ou pelo Chewe sem materiais.
  4. Build → Community. Abrir no world map. Spawn num helipad qualquer.
  5. Confirmar: aparece no seletor, não explode, sobe, eyepoint VR não está no chão.
1o filme

Chewe visual no sim — o herói

O 3D entra com os 8 motores e os 4 tilts já a mexer, mesmo que o assistente ainda seja burro.

  1. Partir o Maya: fuselagem, 4 ducts, 8 hélices (TOP/BOT), canopy/glass, interior, rodas, luzes.
  2. Export FBX metros. Pivot de cada hélice no centro do disco. Dois por ducto, eixos opostos.
  3. Max: LODs, materiais Propeller × 8, collision, VR helpers no stick/volante.
  4. Multi-Exporter: common helper + attachments (fuselagem, ducts/fans, cockpit).
  5. 8 nós Propeller + 4 grupos TILT_* no XML (hover vertical → forward ao nariz).
  6. Cameras.cfg (pilot, landing, chase). Luzes laranja dos ducts + nav/strobe.
  7. Thumbnail, som placeholder (Jetson/Cabri), FLT apron / hover / forward.
  8. v1 feito quando paira, avança com os ducts a inclinar, e pousa sem explodir.
2sistemas

Parece um carro voador, não um Cabri pintado

  1. Bateria + engine_type = 6. LocalVar de capacidade (Joby usa 150).
  2. Startup simples: battery master → fans spool → ready. Sem magneto de pistão.
  3. Painel: HTML/JS mínimo ou G3X emprestado (VoloCity faz isto). Depois um EFB Chewe.
  4. Wwise: ducted fan, não rotor de heli. Oito fontes (ou quatro ducts com dois layers).
  5. VFX: wash no chão, glow dos anéis laranja.
  6. Fail visual: 4 hélices param, as outras 4 aguentam — mesmo antes do WASM fino.
3só se v1 voar

Assistente + segurança

  1. WASM: AP off = heli (não toca). AP on = station-keep + stick → ângulo.
  2. Forward: tilt dos 4 ducts com a velocidade + um pouco up/down no climb/descent.
  3. Pane: até 4 motores off, os outros 4 mantêm hover/forward degradado.
  4. Paraquedas de emergência — locator + attachment + deploy. Depois do voo estar bom.
  5. Drive no chão / career — só se o voo já for o produto.
Mapa

Onde vive o quê

Maya\scenes\Flying Car.mb            ← source 3D
Chewe_MSFS2024\                      ← este plano + (em breve) projecto SDK

Projecto SDK sugerido
  climberfx-aircraft-chewe\
    PackageSources\SimObjects\Airplanes\chewe\
      common\          helper + cfg base + cameras + sound
      attachments\
        climberfx\
          part_ext_fuselage\
          part_ext_fans\         4 ducts + 8 hélices (TOP/BOT)
          part_int_cockpit\
          function_ext\          behaviors / lights / (depois: chute)
          function_int\
      presets\climberfx\default\
        config\attached_objects.cfg
        config\aircraft.cfg
        config\flight_model.cfg
        config\engines.cfg
        config\systems.cfg
      liveries\climberfx\standard\

Pacotes instalados para ter abertos no segundo monitor enquanto afinamos:

Maya agora

Nulls, pivots e eixos — o que o sim vai mexer

O MSFS não anima a malha pelo nome do shader. Anima um helper (locator no Maya / Point no Max). A peça é filha desse locator. O XML do modelo liga o nome da Animation Group a uma SimVar. Se o locator, o eixo e os frames já estiverem certos no Maya, o export é mecânico.

Regra de ouro: nunca animes a malha no pivot dela. Crias um locator no sítio lógico da dobradiça, resetas o transform, parentas a malha, e animas só o locator. Todos os LODs da mesma peça são filhos do mesmo locator (layer Shared). Frame 0 = carro parado no pad. Keys lineares. Sem frames negativos.

Três eixos. Não mistures.

Maya é Y-up. 3ds Max no plugin Asobo é Z-up. O sim (glTF) é Y-up, X direita, Z nariz. O FBX converte. Por isso o eixo “certo” é o eixo local do locator depois de chegar ao Max — no Maya deixas o eixo local alinhado com o movimento real, e no Max confirmas a tabela abaixo.

MSFS / glTF (o sim)

+X direita do piloto
+Y cima
+Z nariz / frente

3ds Max (plugin oficial)

Unidades metros. Top view: nariz para baixo no ecrã. Xforms reset (scale 100).
Spin do fan: Y local no Max = Z do objeto no sim. É o que o material Propeller usa para o blur.

Maya (a tua cena)

1 unidade = 1 m. Locators, não groups. Freeze + reset.
Botões / manípulos / knobs: o SDK pede rotação ou translação no X local do objeto (depois do Max). Fans: eixo local do locator = eixo do ducto.

Hierarquia Shared — cria isto hoje

dourado = locator · verde = malha · cinza = v2/v3, mas o locator já existe.

HIPS ← Point em [0,0,0]. Root de tudo. Layer Shared. ├─ ATTACH_ROOT ← attach point do package modular (common glTF) ├─ FUSELAGE │ └─ x0_FUSELAGE / x1_… / x2_… ├─ WINDSHIELD │ └─ x0_WINDSHIELD material Glass / Windshield │ ├─ TILT_FL inclina o ducto inteiro (hover ↔ forward + climb/descent) │ ├─ FAN_FL_TOP hélice de cima. Pivot no centro. Spin + │ │ ├─ x0_FAN_FL_TOP 1 nó + 1 material Propeller │ │ └─ x0_FAN_FL_TOP_LOW opcional, blur barato │ ├─ FAN_FL_BOT hélice de baixo. Spin oposto ao TOP │ │ └─ x0_FAN_FL_BOT │ └─ DEFLECTOR_FL_* vanes, se existirem ├─ TILT_FR → FAN_FR_TOP + FAN_FR_BOT ├─ TILT_RL → FAN_RL_TOP + FAN_RL_BOT ├─ TILT_RR → FAN_RR_TOP + FAN_RR_BOT │ ├─ CHUTE_CANISTER v3 — paraquedas de emergência │ └─ CHUTE_DEPLOY │ ├─ GEAR_FL compressão da “perna” (o carro assenta nos ducts) │ └─ WHEEL_FL spin da roda, se for distinta do fan ├─ GEAR_FR / GEAR_RL / GEAR_RR (+ WHEEL_*) ├─ STEER_FL / STEER_FR só se as da frente virarem no chão │ ├─ DOOR_L → x0_DOOR_L (+ interior gémeo) ├─ DOOR_R → x0_DOOR_R ├─ CANOPY → se o vidro levantar à parte │ └─ COCKPIT (attachment interior) ├─ HANDLING_Yoke_1 │ ├─ HANDLING_YOKE_1_Lever_StickLR │ ├─ HANDLING_YOKE_1_Lever_StickForeAft │ ├─ HANDLING_Yoke_1_Hand VR │ └─ HANDLING_Yoke_1_Axes VR, centro de rotação ├─ HANDLING_Collective │ ├─ HANDLING_Collective_Hand │ └─ HANDLING_Collective_Axes ├─ AUTOPILOT / AP_HOVER switch. AP off = heli · AP on = station-keep ├─ ENGINE_Lever_Throttle_1 ├─ HANDLING_RudderPedals │ ├─ …_Brake_L / …_Brake_R └─ HANDLING_Wheel volante de carro, se for o comando

Hover vs forward — os ducts mexem de verdade

Hover VTOL — com e sem AP

TILT_* a 0° nos dois casos — eixo do ducto para cima, 8 hélices na vertical. O 3D é o mesmo. Sem autopilot = heli, tu equilibras. Com autopilot = fica no sítio; o stick manda ângulos parelhos (atitude), não rate. O WASM é que muda, não a malha.

Forward (assistido, não Cessna)

Os 4 TILT_* viram para o nariz com a velocidade. Um pouco mais para cima no climb, um pouco para baixo no descent — o carro fica nivelado. Não é pitch de avião. Os 8 FAN_*_TOP/BOT continuam filhos e só fazem spin (TOP e BOT em sentidos opostos).

No Maya deixas o range do tilt largo (ex. −20° … +70° no eixo de pitch do ducto). O ângulo “certo” afina-se em voo. Sem flaps, ailerons, profundor nem leme. Hover AP off = tu és o computador. Hover AP on + forward = WASM + tilt dos quatro ducts.

Tabela de locators

Nomes sem prefixo de LOD — o prefixo x0_ vai só na malha. O XML e o CFG falam com o nome do locator / da Animation Group.

Locator / grupo Para quê Eixo local Frames
HIPS Root. Tudo parte daqui. Em [0,0,0], ~1/3 do nariz, Z ≈ linha de água. — estático v1
ATTACH_ROOT Nó de attach do glTF common. Os attachments (fuselagem, fans, cockpit) penduram aqui. alinhado ao HIPS estático v1
FAN_FL_TOP · FAN_FL_BOT
e o mesmo em FR / RL / RR
8 hélices. 2 por ducto, coaxial: cima e baixo. Cada uma = 1 locator, pivot no centro, 1 malha, 1 material Propeller. TOP e BOT com eixo de spin invertido (uma horário, outra anti-horário). Sem malhas stopped/slow/blur — o shader trata disso. Max Y = sim Z = eixo do ducto. Inverte o eixo no BOT (ou o sentido do objeto) para contra-rotação. não animes o spin. O sim roda o nó. Pane = escondes / paras 4, as outras 4 ficam. v1
TILT_FL FR RL RR Pai das duas hélices do ducto. Inclina o conjunto: hover (vertical) → forward (para o nariz) → um pouco up no climb / down no descent. Os 4 ducts juntos, para o carro ficar nivelado. X local = pitch do ducto (frente/trás do carro) Range largo no 3D (ex. −20° … +70°). Frame 0 = pad/hover 0°. O assistente escolhe o ângulo em voo — não keys de “modo avião”. v1
CHUTE_CANISTER · CHUTE_DEPLOY Paraquedas de emergência. Canister no tejadilho / traseira. Deploy = saco + linhas (ou attachment pronto). Não entra no v1. eixo de ejeção para cima / trás 0 stowed · último = aberto safety
DEFLECTOR_* Vanes / grelhas dentro do ducto, se o modelo as tiver. Puro visual de “modo voo”. X local da dobradiça da vane 0 fechado/neutro · último = deflecto de cruise se existirem
GEAR_FL FR RL RR Compressão da suspensão. O carro assenta nos quatro cantos. Sem isto o contacto no pad flutua. Y sim / vertical — o locator desce Não retráctil: 0–50% estático no pad, 50–100% compressão. Frame 0 = T-pose. v1
WHEEL_FL FR RL RR Só se a roda for malha à parte do fan. Spin no chão. Filho do GEAR_* para comprimir junto. eixo do cubo = X sim (lateral) o sim pode rodar pelo nó; ou 0–N frames de 360° linear se houver roda
STEER_FL FR Direção no chão. Pai do GEAR da frente, ou entre GEAR e WHEEL. Y (yaw da roda), 360° horário na da frente se for tipo nose-gear 0 centro · esquerda · direita. Ou 360° contínuo no fork. drive
DOOR_L / DOOR_R Portas. Exterior e interior são duas malhas, mesmos frames e mesma interpolação. Handle primeiro, depois a porta. dobradiça: Y (porta de carro) ou o eixo real da dobradiça 0 fechada · último aberta. Quantos frames o gesto pedir (50–100 típico). v1
CANOPY Se o vidro abrir à parte das portas. dobradiça traseira ou tesoura — o eixo real 0 fechado · último aberto se abrir
AUTOPILOT / AP_HOVER Switch ou botão no cockpit. Sem isto o piloto não liga o hover assistido. Anima 2 posições (off/on). Liga o L:Var que o WASM lê. No v1 pode ser só visual. X local (switch) ou empurrão de botão 0 off · 1 on v1 mesh
HANDLING_Yoke_1
…_StickLR · …_StickForeAft
Manche / cíclico. Dois helpers: roll e pitch. Malha do stick filha deles. LOD0 e LOD1 — vê-se de fora. LR = rotação/translação roll · ForeAft = pitch. Extremos curtos: VR não pode exigir um metro de braço. 5 frames: 0 centro · 1 esq/frente · 2 centro · 3 dir/trás · 4 centro. Exportas 1–3. v1
HANDLING_Collective Coletivo = sobe/desce. No Chewe pode ser uma alavanca à esquerda ou o teu “throttle de carro” mapeado a coletivo. dobradiça do lever. SDK: anima no X local depois do Max. 0 baixo (chão) · último = cheio. 6 frames lineares chegam. v1
ENGINE_Lever_Throttle_1 Manete de potência / acelerador. No v1 eléctrico pode ser o mesmo gesto que o coletivo, ou um segundo lever (Joby: throttle = aceleração). X local 0 idle · último = max. Linear. Mais frames se tiver notches. já criar
HANDLING_RudderPedals
…_Brake_L/R
Yaw no ar + travões. Mesmo que o Chewe tenha volante, os pedais existem no heli-feel. translação / rotação do pedal no eixo natural esq · centro · dir. Travão: 0 solto · último fundo v1
HANDLING_Wheel Volante de GT. Pode ser o roll no chão, ou só set dressing no v1. eixo da coluna como yoke: −90° / 0 / +90° nos frames 1–3 se for comando drive / cinema
HANDLING_Yoke_1_Hand
HANDLING_Yoke_1_Axes
HANDLING_Collective_Hand · _Axes
VR. Hand = onde a mão pega (filho do comando). Axes = centro de rotação. Sem isto o Quest 3 usa bounding box e tapa os ecrãs. orientação da pega, não o eixo de voo estáticos (andam com o pai) VR
LIGHT_NavRed · LIGHT_NavGreen
LIGHT_Strobe · LIGHT_Taxi · LIGHT_Landing
Malhas emissivas, não locators de voo. Os anéis laranja dos ducts são isto. Nomeia pelo tipo. — vis on/off via material, não key v1 visual
AILERON_* · FLAPS_*
ELEVATOR_* · RUDDER · SPOILER_*
Superfícies de asa fixa. O Chewe não as tem. Não crias “flaps falsos” só porque o tutorial do DA62 tem. Se um dia houver um aerofólio / airbrake de carro, aí sim, com o nome que for. — — não

Como proceder no Maya, peça a peça

  1. Layer Shared só com locators. Layers x0…x3 só com malhas prefixadas.
  2. Cria o locator (Create → Locator). Move para a dobradiça / centro do disco. Freeze Transformations + Reset. Scale 1,1,1. Sem freeze, o Max herda lixo e o blur do fan fica torto.
  3. Alinha o eixo local ao movimento: o eixo que vai girar ou deslizar deve ficar óbvio no Local axis do locator (Display → Local Rotation Axes).
  4. Parent da malha no locator (não o contrário). Os LODs da mesma peça no mesmo locator.
  5. Anima só o locator. Tangentes linear. Frame 0 = pose do pad (portas fechadas, coletivo baixo, fans parados na pose neutra, tilt vertical).
  6. Não uses Mirror / Instances / Groups como “osso”. O plugin parte. Duplica o locator, mirror do transform à mão, parenta a malha do outro lado.
  7. No Max, cada locator animado entra num Animation Group com o mesmo nome da tabela. Esse nome é o que o XML chama. Frames exportados = o intervalo útil (no yoke, 1–3, não o 0 nem o 4).
  8. Depois do primeiro FBX: no Max, selecciona FAN_FL_TOP e FAN_FL_BOT e confirma que o eixo local Y aponta pelo centro do ducto, em sentidos opostos. Se não apontar, rodas o locator — não “consertas” na malha.

Animation Groups para o Multi-Exporter

  • FAN_*_TOP / FAN_*_BOT — 8 nós; spin é shader, grupo só se houver coning
  • TILT_FL TILT_FR TILT_RL TILT_RR — 4 grupos, ou um TILT_BANK se os 4 forem sempre iguais
  • GEAR_COMPRESSION
  • WHEEL_FL … se a roda girar por animação
  • DOOR_L DOOR_R CANOPY
  • HANDLING_Yoke_1_StickLR
  • HANDLING_Yoke_1_StickForeAft
  • HANDLING_Collective
  • AUTOPILOT / AP_HOVER
  • ENGINE_Lever_Throttle_1
  • HANDLING_RudderPedals

O que o XML / CFG vai ler depois

  • 8 hélices → prop_node.0–7 / rotor_node = FAN_*_TOP/BOT
  • 4 tilts → XML no grupo TILT_* (v2: SimVar de velocidade + climb)
  • Portas → interactive_point + template ASOBO_ET_COMMON_Interactive_Point_Animation_Template
  • Cíclico VR → [VR] yoke_anim_x / yoke_anim_y = nomes dos grupos StickLR / StickForeAft
  • Coletivo VR → collective_anim + collective_node
  • AP → L:Var CHEWE_AP_HOVER no switch AUTOPILOT. WASM só intercepta com isto a 1.
  • Tilt hover/fwd → ASOBO_GT_Anim_Template numa SimVar de velocidade / climb (v2)

Hoje não precisas de escrever o XML. Precisas dos nomes e dos eixos iguais a esta lista, para o XML cair em cima sem rename.

Maya + Max

O 3D tem de chegar ao plugin assim

Antes de sair do Maya

  • 1 unidade = 1 metro. Freeze transforms.
  • Pivot do carro no CG / eixo das rodas, nariz +Z no Max (confirmar no plugin).
  • Cada hélice (8): um nó, um material, pivot no centro. TOP e BOT do mesmo ducto em contra-rotação.
  • Canopy separado (Glass). Interior separado (LOD + collision VR).
  • Nomes da tabela: HIPS, 4× TILT_*, 8× FAN_*_TOP/BOT, GEAR_*, DOOR_*, HANDLING_*, AUTOPILOT. Ver Nulls e eixos.
  • Sem keyframes negativos. Sem escala não-uniforme nos fans.
  • Orçamento v1 exterior LOD0: ~80–150k tris. Interior: o que o Quest 3 aguentar — começar magro.

No 3ds Max / Multi-Exporter

  • Use Asobo Unique ID = on
  • Remove LOD Prefix = on
  • Generate TextureLib na primeira exportação
  • Export Meshes + Animations · Bake All
  • Reset root transforms em cada attachment
  • Um grupo por peça, um preset por LOD
  • glTF + PNG, nunca GLB com texturas embutidas
  • Material Propeller nas 8 hélices (TOP/BOT, sentidos opostos) — o blur é shader
  • Collision mesh Invisible no cockpit (VR mouse / mãos)
Abrir e deixar aberto

Documentação que importa de verdade