Je prévois un jeu de simulation d'entreprise isométrique où le joueur voit un bureau avec les meubles habituels tels que des bureaux, des tableaux blancs, etc.
Les personnages (personnel / PNJ) du jeu doivent interagir avec ces objets en effectuant certaines tâches prédéfinies telles que taper sur le clavier au bureau ou écrire sur le tableau blanc, etc.
Ce qui m'intéresse, en particulier, c'est le scénario suivant:
Le personnage se déplace dans le bureau (1) jusqu'à son bureau (2) et s'assoit et commence à taper (3).
D'après ce que je comprends, j'aurais une feuille de sprite pour le mouvement du personnage (1) et un sprite statique pour le bureau (2) mais je ne comprends pas très bien comment la troisième étape serait gérée?
Existe-t-il un sprite combiné qui contient à la fois un bureau et du caractère? Je suppose que non, sinon j'aurais besoin d'une feuille de sprite pour chaque combinaison de bureau et de personnage.
Comment est-ce normalement géré?
ÉDITER:
Voici un exemple d'animation spécifique du jeu Theme Hospital. Vous pouvez voir la vidéo ici .
Pour autant que je puisse voir, l'animation est divisée en plusieurs étapes.
Étape 1 - Le personnage se déplace entre le bureau et la chaise.
Cela suggère que la chaise et le bureau sont en fait des sprites séparés.
Étape 2 - Animation du personnage assis
Remarquez comment, dans le dernier cadre, la chaise est plus proche du bureau.
Étape 3 - Animations de bureau
Étape 4 - Animation debout
C'est la même chose que s'asseoir mais joué à l'envers.
Étape 5 - Éloignez-vous
Utilisez l'animation de déplacement normal pour vous éloigner.
La question que je me pose est de savoir comment séparer au mieux ces animations et comment un graphiste fournirait-il habituellement ces animations?
Le personnage assis et tapant sur le bureau est-il en fait trois sprites différents (bureau, personnage et chaise)? Est-ce que quelqu'un connaît des exemples de sprites d'animations similaires?
EDIT 2:
Je suppose que ma plus grande préoccupation est que j'ai les bonnes attentes sur l'apparence réelle des sprites. Je ne peux pas les dessiner moi-même, donc je devrai payer quelqu'un pour le faire et je suppose qu'il existe une sorte de meilleure pratique pour faire ce genre d'animations?
Une autre idée serait d'inclure une image Buffer Depth / Z avec vos sprites, similaire à la façon dont les API 3D (OpenGL) garantissent que les polygones ne se chevauchent pas. Pour un jeu de sprite de base, cela pourrait être juste un tas de bits 0/1 (bitmap noir et blanc) (bien que vous puissiez utiliser plus de niveaux de profondeur si vous le souhaitez).
Si vous avez un sprite combiné de «chaise de bureau» et que vous souhaitez que la chaise apparaisse devant d'autres sprites (c'est-à-dire des personnes) sur cette place, vous feriez la version Z-Buffer du char «noir» tandis que le bureau serait «blanc» .
Lorsque vous effectuez le rendu de l'image-objet dynamique (une personne) sur cette vignette, elle vérifie la couleur du tampon de profondeur. Pour les pixels qui sont 0 (noir), vous sautez le dessin des pixels des sprites de la personne et laissez simplement ceux du fauteuil là-bas.
Plutôt que de vérifier chaque pixel 1 à la fois, une façon plus simple de faire la vérification serait de multiplier les pixels de l'image-objet par la valeur de la mémoire tampon de profondeur, car la profondeur la plus proche serait 0 et d'annuler le. Ensuite, bien sûr, vous devez colorkey (sauf si vous avez un canal de couleur alpha).
Bien sûr, cela ajoute des frais généraux (bien que vous puissiez l'ignorer pour tout ce qui n'a pas besoin de plusieurs niveaux de profondeur comme une chaise de bureau). Vous devez également synchroniser vos animations (c'est-à-dire que la personne devra correspondre avec l'anim de la chaise de bureau). Cela ne vous donne pas la même flexibilité que d'avoir tout un tas de sprites séparés.
la source