Modding:Datos de NPC

Índice

Esta página proporciona una descripción general de lo que se necesita para crear un NPC personalizado. Esta es una guía avanzada para desarrolladores de mods.

Antes de leer esta página, consulte Modding:Edición de archivos XNB para conocer los conceptos básicos.

Archivos para editar

Para crear un nuevo NPC, debe editar varios archivos diferentes. Sin embargo, no necesita ninguna experiencia en programación y se puede hacer con Content Patcher.

Información básica

El asset Data\NPCDispositions contiene información básica sobre tu personaje, incluido su nombre, fecha de nacimiento, relaciones con otros personajes, personalidad y si se puede fechar.

El archivo tiene una fila por NPC como esta:

   Abigail: "teen/rude/outgoing/neutral/female/datable/Sebastian/Town/fall 13/Caroline 'mom' Pierre 'dad'/SeedShop 1 9/Abigail"

La llave (antes de los dos puntos) es el nombre interno que identifica de forma única a ese NPC. Este nombre no se muestra al jugador, pero se usará cuando se haga referencia al NPC en otros archivos. El valor contiene los siguientes campos:

indice campo ejemplo propósito
0 edad teen Si el NPC es un child (niño), teen (adolescente), or adult (adulto). Esto afecta las líneas de diálogo generadas (p.ej., un niño diría estúpido y un adulto diría deprimente ), diálogo genérico (e.g., Un niño respondería al contenedor de basura con "Eww... ¿Qué estás haciendo?" y un adolescente diría "Um... ¿Por qué estás cavando en la basura?"), y el regalo que eligen como regalo secreto. CLos niños también están excluidos de las misiones de entrega de objetos.
1 modales rude Si el NPC es polite (Cortés), rude (maleducado), o neutral (neutral). Esto afecta a algunas líneas de diálogo genéricas.
2 ansiedad social outgoing Si el NPC es outgoing (saliente), shy (tímido), o neutral (neutral). Esto afecta a algunas líneas de diálogo genéricas.
3 optimismo neutral Si el NPC es positive (positivo), negative (negativo), o neutral (neutral). No es usado.
4 género female Si el NPC es male (masculino), female (mujer), o undefined (indefinido). Esto afecta el diálogo, ya sea que los niños en el matrimonio se obtengan mediante adopción o embarazo, y las posiciones de los marcos reservados en la hoja de sprites.
5 fechable datable Si el NPC es datable (fechable) o not-datable (no-fechable). Esto alterna las funciones románticas (p.ej., la etiqueta 'single'(Soltero) en el menú social, obsequio de ramo y matrimonio).
6 interés amoroso Sebastian No es usado.
7 región de origen Town Si el NPC vive en el Desert(Desierto), Town(Pueblo), o Other(Otro). Esto se usa cuando se mejoran los puntos de amistad para todos los NPC en una región determinada, que actualmente solo se usa para el aumento de amistad del Luau (que solo afecta a los NPC en la región Town(Pueblo)).
8 cumpleaños fall 13 TLa temporada y el día del cumpleaños del NPC.
9 relaciones Caroline 'mom' Pierre 'dad' Esto afecta el diálogo genérico para revelar gustos y disgustos a los miembros de la familia. También puede afectar el diálogo inlaw_<NPC> dialogue. Puede estar vacío si no corresponde (p.ej., /fall 13//SeedShop 1 9/).
10 mapa y posición predeterminados SeedShop 1 9 El nombre de la ubicación y la posición de la baldosa donde el NPC comienza y termina cada día.
11 nombre para mostrar Abigail El nombre del NPC que se muestra al jugador.

Gustos por Regalos

El asset Data\NPCGiftTastes contiene sus preferencias de regalos (p.ej., qué regalos aman u odian), y sus respuestas cuando reciben uno. Consulte Modding:Datos de gustos por regalos para obtener más información.

El archivo tiene una fila por NPC como esta:

   Abigail: "I seriously love this! You're the best, @!/66 128 220 226 276 611/Hey, how'd you know I was hungry? This looks delicious!//What am I supposed to do with this?/-5 -75 -79 16 245 246/What were you thinking? This is awful!/330/You brought me a present? Thanks.// " #!String

La línea se puede dividir en 5 pares de diálogos + ID de oobjetos en este orden: Amor, Me gusta, Neutral, No me gusta, Odio. Si un campo de diálogo está vacío, el juego utilizará un texto de diálogo genérico. Consulte Modding:Datos de objetos para los ID de objetos.

Respuestas de regalos de cumpleaños

El asset Strings\StringsFromCSFiles contiene las respuestas genéricas dadas por los NPC a los regalos de cumpleaños en función de sus preferencias y modales. Estas cadenas compartidas se pueden personalizar para un NPC específico editándolas condicionalmente, como solo en el cumpleaños del NPC (no compartido). Los siguientes criterios se utilizan para seleccionar entre las cadena de texto:

Gusto por el regalo modales Porcentaje string
Ama, le gusta maleducado 50% NPC.cs.4274
50% NPC.cs.4276
cortés, neutral 50% NPC.cs.4275
50% NPC.cs.4277
disgusto, odio maleducado 100% NPC.cs.4278
cortés, neutral 100% NPC.cs.4279
neutral maleducado 100% NPC.cs.4280
cortés, neutral 100% NPC.cs.4281

Sprites del mundo exterior

Los sprites del mundo exterior se almacenan en Characters/NpcName, incluidos fotogramas de movimiento y animación. Cada fotograma tiene exactamente 16x32 píxeles. Algunas posiciones están reservadas para ciertas acciones:

  • los primeros dieciséis fotogramas son de movimiento genérico (cuatro fotogramas por dirección);
  • los fotogramas 40–47 (femenino) y 44–47 (masculino) deben ser el baile de la danza de las flores, si participan;
  • los fotogramas 36–38 (femenino) 48–50 (masculino) están reservados para NPC casables (contiene el sprite de boda);
  • y el sprite/dirección del beso varía según el NPC:
    personaje frame de besos dirección de cara
    Abigail and Emily 33 izquierda
    Alex 42 derecha
    Elliott 35 izquierda
    Haley 28 derecha
    Harvey 31 izquierda
    Leah 25 derecha
    Maru 28 izquierda
    Penny 35 derecha
    Sam 36 derecha
    Sebastian 40 izquierda
    Shane 34 izquierda
    cualquier otro NPC 28 derecha

Retratos

Los retratos de diálogo se almacenan en Portraits/NpcName. Cada cuadro es exactamente 64x64 por retrato. Los primeros seis representan emociones específicas (ver Modding:Diálogo#Comandos de retratos), seguidos de cualquier número de retratos personalizados. El primer retrato se usa cuando el diálogo no especifica uno.

Aquí hay una guía de retratos de ejemplo, cortesía de TheLimeyDragon#1993 en Discord.

Calendario

Su archivo de programación le dice al juego dónde comienza el NPC y se mueve según el tiempo. Debe agregar cadenas a un archivo de programaciones separado que se encuentra en la carpeta Cadenas para permitir un diálogo personalizado. Consulte Modding:Datos de horarios para obtener más información.

Diálogo y eventos

El diálogo y los eventos de NPC se almacenan en varios archivos; consulte Modding:Diálogo y Modding:Datos de ventos para obtener más información

Festivales

Los NPC personalizados deben agregarse a los festivales a través de la Set-Up_additionalCharacters campo en el archivo de datos del festival. También es posible que desee visitar las posiciones de baldosas de festivales de NPC personalizados para verificar las posiciones de varios NPC existentes con fines de compatibilidad.

(Antes de Stardew Valley 1.5, TMXL era la herramienta recomendada para agregar lugares para festivales).

Agregando tu NPC

Así es como crearía un NPC de ejemplo que llamaremos Dobson:

  1. Cree un paquete de contenido de Content Patcher vacío. Por convención, nombraremos la carpeta [CP] Dobson.
  2. Cree los siguientes archivos:
    • assets/dialogue.json que contiene el diálogo.
    • assets/marriageDialogue.json que contiene el diálogo matrimonial (si corresponde).
    • assets/sprites.png que contienen sus sprites del mundo exterior.
    • assets/portraits.png que contiene sus retratos.
    • assets/schedule.json que contienen sus datos de programación.
  3. Editar el content.json para cargar los archivos:
    {
        "Format": "1.30.0",
        "Changes": [
            {
                "Action": "Load",
                "Target": "Characters/Dobson",
                "FromFile": "assets/sprites.png",
            },
            {
                "Action": "Load",
                "Target": "Portraits/Dobson",
                "FromFile": "assets/portraits.png",
            },
            {
                "Action": "Load",
                "Target": "Characters/Dialogue/Dobson",
                "FromFile": "assets/dialogue.json",
            },
            {
                "Action": "Load",
                "Target": "Characters/Dialogue/MarriageDialogueDobson",
                "FromFile": "assets/marriageDialogue.json",
            },
            {
                "Action": "Load",
                "Target": "Characters/schedules/Dobson",
                "FromFile": "assets/schedule.json",
            },
            {
                "Action": "EditData",
                "Target": "Data/NPCDispositions",
                "Entries": {
                    "Dobson": "adult/rude/neutral/positive/male/datable//Town/summer 7//BusStop 19 4/Dobson"
                },
            },
            {
                "Action": "EditData",
                "Target": "Data/NPCGiftTastes",
                "Entries": {
                    "Dobson": "You're giving this to me? This is amazing!/207 232 233 400/Thank you! This is a very interesting specimen./-5 -79 422/...What is this?/80 330/This is disgusting./2/That was very thoughtful of you./-4/ ",
                },
            },
            {
                "Action": "EditData",
                "Target": "Data/EngagementDialogue",
                "Entries": {
                    "Dobson0": "I can't believe I am about to be married!$h",
                    "Dobson1": "I hope I don't get cold feet",
                },
            },
        ]
    }
    

¡Eso es! Si carga su juego, debería aparecer el NPC. Si desea crear eventos, no olvide agregar ese archivo también.

Orientación sobre pixel art

Si desea orientación adicional sobre pixel art, consulte Modding:Índice#Ver también para obtener algunas guías recomendadas.