Temas e assets

Escolha skins, hospede assets próprios e entenda o carregamento de temas do Dice View.

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

Um tema define materiais dos poliedros, texturas e a aparência da moeda d2. Ele não altera valores nem regras. Cada dado pode ter tema e cor próprios, inclusive dentro da mesma apresentação. Explore os cinco visuais incluídos na galeria de texturas antes de criar o seu.

Assets públicos

Hospede dist/assets/dice-box/ do pacote em uma URL pública. O padrão é /assets/dice-box/:

public/assets/dice-box/
├── havok/HavokPhysics.wasm
└── themes/
    ├── default/
    ├── default-v2/
    ├── vampire-v5-normal/
    ├── vampire-v5-hunger/
    ├── assimilation/
    └── fate/

O tema default é numérico. Os temas de Vampiro, Assimilação e Fate usam símbolos sobre faces físicas numéricas. default-v2 é o tema usado pelos perfis Esperança/Medo de Daggerheart.

Configure cor e tema

const viewer = new DiceResultViewer({
  container: '#dice-stage',
  assetPath: '/assets/dice-box/',
  theme: 'default',
  themeColor: '#e60049',
  preloadThemes: ['default-v2']
})

await viewer.display({
  id: 'cores-1',
  dice: [
    { id: 'rosa', sides: 20, value: 18, themeColor: '#e60049' },
    { id: 'azul', sides: 6, value: 4, themeColor: '#315d9b' }
  ]
})

theme e themeColor no dado substituem os defaults do viewer. Em materiais color, themeColor é a base da superfície; em standard, a textura determina a cor principal. preloadThemes é consumido por init().

Tema externo

const viewer = new DiceResultViewer({
  container: '#dice-stage',
  externalThemes: {
    bronze: 'https://static.example.com/dice/bronze'
  }
})

await viewer.display({
  id: 'bronze-1',
  dice: [{ id: 'd20', sides: 20, value: 18, theme: 'bronze' }]
})

A URL deve apontar para uma pasta com theme.config.json; habilite CORS se for outra origem. Texturas relativas partem dessa pasta. meshFile também é relativo. O modelo padrão é usado quando meshFile não é fornecido.

Cache e atualização

O View guarda configurações por nome, modelos por URL e materiais por tema, cor e descarte. onThemeConfigLoaded sinaliza uma configuração nova; onThemeLoaded ocorre uma vez por tema usado na apresentação. updateOptions() pode alterar opções visuais. Para substituir a definição de um tema ou a raiz de assets já carregados, descarte o viewer e crie outro.

Leia Mapas de textura para entender diffuse, normal, especular e moeda. Siga Crie um tema 3D para montar e publicar a pasta, ou Personalize faces simbólicas para substituir números por glifos. O editor de temas oferece uma prévia interativa.