Resolva problemas do Dice View

Diagnostique canvas vazio, assets ausentes, resultados sem geometria e apresentações canceladas.

Este artigo documenta a V2 publicada. Para a prévia atual com física, veja o guia V3. V3 ↗ Licenças ↗

O canvas não aparece

  1. Crie DiceResultViewer no cliente, depois que container existir. A biblioteca requer DOM e a inicialização requer WebGL.
  2. Dê largura e altura ao container. Para overlay, use position: fixed; inset: 0.
  3. Importe @erpg/dice3dview/style.css.
  4. Confira o console e a requisição de themes/default/theme.config.json.

Tema ou modelo não carrega

Confirme que o conteúdo de dist/assets/dice-box/ foi copiado para o caminho definido por assetPath. theme.config.json deve responder 200. Caminhos relativos de textura e meshFile partem da pasta do tema. Para externalThemes, confira CORS. Se substituiu arquivos já carregados com o mesmo nome, descarte a instância e recrie o viewer para invalidar templates.

O modo físico não inicia

Verifique /assets/dice-box/havok/HavokPhysics.wasm ou a URL explícita em physicsWasmUrl. Sirva WASM preferencialmente com application/wasm. Teste kinematic para isolar o problema de Havok. O modo físico carrega o runtime sob demanda.

Um dado não aparece

display() aceita apenas d2, d4, d6, d8, d10, d12, d20 e d100, com valor de 1 até os lados. createMixedDisplayRequest() omite formatos genéricos sem geometria por padrão. Use unsupportedDice: 'error' para detectar a omissão. d3 é apresentado em d6; dF genérico não tem representação, mas o perfil Fate usa d6 físico. Confira ainda maxDice: cada d100 ocupa dois corpos.

A Promise foi rejeitada ao iniciar outra rolagem

É cancelamento esperado. Uma nova apresentação, clear() ou dispose() rejeita a Promise anterior com DisplayCancelledError. Trate com isDisplayCancelledError(error); propague outros erros.

A timeline foi exibida sem etapas

Verifique result.degraded. timeline.enabled: false, mais de maxEvents ou duração estimada acima de maxDurationMs provocam apresentação plana do estado final. Um journal inválido, com ID ausente, sequência fora de ordem ou relação de explosão inconsistente, é rejeitado antes da cena mudar. Leia Timeline semântica.