Personalize faces simbólicas

Troque números por símbolos em Fate, Vampiro V5 ou Assimilação sem romper o mapeamento físico das faces.

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

Este guia ensina a criar arte simbólica sobre as malhas já incluídas, usando os mapas reais da galeria. Ao final, cada resultado do Dice Core continua a chegar na face física correta; o tema muda apenas a representação visual.

1. Escolha o dado físico

O atlas é aplicado à geometria, não à regra do jogo. Os temas de exemplo oferecem:

Tema Dado físico Arte no atlas
fate d6 , vazio, +
vampire-v5-normal d10 sucesso e crítico
vampire-v5-hunger d10 sucesso, crítico, falha bestial e crítico descontrolado
assimilation d6, d10, d12 Sucesso, Adaptação e Pressão

Comece por uma forma já disponível. Para formas novas, você precisará também de uma malha, collider e colliderFaceMap, conforme Crie um tema 3D.

2. Faça uma cópia dos dois atlas

Copie faces-light.svg e faces-dark.svg do tema mais parecido com o seu. Abra-os em um editor vetorial e mantenha viewBox="0 0 1024 1024", as posições das faces e a transparência. Substitua apenas os grupos de glifos. A versão light precisa contrastar com dados escuros; a dark, com dados claros. Não use o normal.webp numérico de default: ele gravaria números por baixo dos seus símbolos.

Atlas de Fate com símbolos claros nas ilhas UV do d6

As ilhas não são uma tabela em sequência. Cada posição corresponde às coordenadas UV do modelo themes/default/default.json. Colocar o símbolo + na posição do valor 1 faz o dado exibir + quando a física entrega 1. Não mova uma ilha para “corrigir” o resultado; corrija a arte da posição original.

3. Descreva a correspondência no manifesto

Declare material.diffuseTexture para os dois SVGs, mantenha diceAvailable coerente com a geometria e use faceAtlas/faceMetadata para registrar a leitura de cada face. O exemplo Fate real usa esta correspondência:

Valor físico d6 Símbolo Valor Fate
1–2 −1
3–4 vazio 0
5–6 + +1
{
  "name": "My Fate dice",
  "systemName": "my-fate",
  "material": {
    "type": "color",
    "diffuseTexture": {
      "light": "faces-light.svg",
      "dark": "faces-dark.svg"
    },
    "diffuseLevel": 1
  },
  "diceAvailable": ["d6"],
  "faceAtlas": {
    "layoutId": "erpg-default-v1",
    "width": 1024,
    "height": 1024,
    "model": "../default/default.json"
  },
  "faceMetadata": {
    "schemaVersion": 1,
    "mappingId": "my-fate-faces-v1",
    "symbols": {
      "minus": { "label": "Menos (−1)" },
      "plus": { "label": "Mais (+1)" }
    },
    "dice": {
      "d6": {
        "1": { "label": "Menos", "symbols": ["minus"] },
        "2": { "label": "Menos", "symbols": ["minus"] },
        "3": { "label": "Vazio", "symbols": [] },
        "4": { "label": "Vazio", "symbols": [] },
        "5": { "label": "Mais", "symbols": ["plus"] },
        "6": { "label": "Mais", "symbols": ["plus"] }
      }
    }
  }
}

faceAtlas e faceMetadata são descritivos. Alterar a tabela não converte 1 em 5 nem muda a orientação do dado. Para outra regra, ajuste o Dice Core ou a transformação da aplicação e mantenha arte, metadados e valores físicos em acordo. O adaptador padrão Fate continua a escolher o tema fate; para usar my-fate, passe seu tema explicitamente aos dados que chegam ao View.

4. Confira cada face no 3D

Hospede a pasta como public/assets/dice-box/themes/my-fate/, com o manifesto e os dois SVGs. Instancie o viewer com assetPath: '/assets/dice-box/' e teste todos os valores físicos, um por vez:

const viewer = new DiceResultViewer({
  container: '#dice-stage',
  assetPath: '/assets/dice-box/'
})

for (const value of [1, 2, 3, 4, 5, 6]) {
  await viewer.display({
    id: `face-${value}`,
    dice: [{ id: 'sample', sides: 6, value, theme: 'my-fate', themeColor: '#315d9b' }],
    mode: 'physics'
  })
  // Confira a face visível antes da próxima iteração.
}

O código acima percorre as faces sequencialmente; para inspecionar manualmente, execute uma chamada de cada vez no seu ambiente. Repita com mode: 'physics' e com cores claras/escuras para avaliar ambos os atlas. Confira também se o valor mostrado ao usuário coincide com o valor semântico calculado pelo Core.

5. Publique a arte com sua origem

O manifesto dos temas incluídos contém artwork com autoria e licença. Faça o mesmo com os seus glifos. Use apenas arte que você pode publicar e redistribuir; os SVGs de Vampiro V5 e Assimilação presentes no pacote têm proveniência específica do projeto. Para artes oficiais de terceiros, hospede um tema externo quando apropriado e mantenha a autorização de uso documentada.

Leia a referência dos mapas para materiais, relevo e moeda, e use o editor de temas para testar o manifesto.