Cette zone comprend l'endroit où s'affiche et s'anime un objet.
La zone (volontairement bleue au démarrage) correspond à la zone d'un écran standard du CPC.
La zone (volontairement noire au démarrage) correspond à la zone du "border droit" du CPC.
Cette dernière zone (noire) est "flexible".
C'est à dire que l'on peut l'étendre ou la réduire
afin de réaliser des animations d'objets dans un écran
reformatté sur CPC à l'aide du registre 1 du CRTC. (Voir
zone "Paramètre écran CPC" : CRTC R1 + bouton appliquer)
Par défaut la valeur est à 40 (càd Registre 1 du
CRTC = 40) ce qui correspond à un format horizontal d'écran standard
sur CPC.
Vous pouvez donc agrandir ou rétrecir cette zone en modifiant 40 par une intervalle comprise entre 1 et 64.
Juste en dessous, vous avez accès à une palette des couleurs qui correspond aux ink 0 à 15 du CPC.
En cliquant sur une des 16 cases-couleur, vous avez la
possibilité de les modifier à votre convenance, selon les 27 couleurs disponibles sur CPC, ce qui
bien évidemment impactera les couleurs de votre objet et son
environnement.
- Zone "Source (objet)" :
Fichier objet :
En cliquant sur ce bouton, vous demandez à Make3DFrame
d'importer un fichier-objet déjà existant au format dit
".asc".
Le format ".asc" est à la base un format d'objet réalisé sous 3d studio sur PC.
Sa structure est simplement composée d'une série de
coordonnées x,y,z de vertex/points/faces formant l'objet en
question.
Pour en savoir plus sur sa structure, vous pouvez éditer un
".asc" tout simplement sous n'importe quel éditeur ascii
(notepad, blocnote, word...) afin de vous faire une idée plus
précise.
Plus pragmatiquement, un fichier objet ".asc" peut-être la
représentation d'un cube, d'un canard, d'une pyramide, d'une
tasse à café, d'un vaisseau spatial... bref, toute
"chose" est réalisable !
Pour information, sachez qu'il existe sur le net de nombreux sites
répertoriant des bibliothèques d'objets au format ".asc"
(google est votre ami)
Sachez également qu'il existe des convertisseurs sur PC qui
permettent à partir d'autres formats (3ds...) d'obtenir un
".asc" (google là encore est votre ami)
Recentrer l'objet :
Lorsque cette case est cochée, notre objet s'animera sur lui même.
Non cochée, notre objet ne tournera donc pas sur lui même.
Nombre d'images + pas + première :
C'est le nombre d'images que va comporter notre animation d'objet. Il
est par défaut fixé à 60 mais son intervalle
peut-être comprise entre 0 et 359.
C'est également le nombre de séquences/frames que va comporter notre objet une fois exporté sur CPC.
Ces séquences/frames, consécutivement misent bout à bout, formeront l'animation de notre objet sur CPC.
Vous avez également la possibilité de faire
démarrer votre animation à une séquence/frame bien
définie et de sauter ces séquences/frames selon un
pas.
C'est à celà que servent donc respectivement les valeurs "première" et "pas".
Plus simplement, celà se comporte comme une boucle
classique en Basic du type "FOR I = 0 TO 60 STEP 2" (ou 0 =
première et 2 = pas).
- Zone "Destination" :
Fichier CPC :
C'est ici que l'on donnera le nom de nos fichiers, de notre projet d'animation pour nos exports sur CPC.
Par défaut deux fichiers binaires seront créés. Un de données et un second dit d'index.
Le premier comportera les datas de notre objet (composé
d'octets) & son mouvement (composé d'adresses écrans CPC)
le tout "comprimés" dans un format dit "delta packing".
En gros, le delta packing (déjà utilisé par
Overflow/Logon-System dans les années 1992 dans ses previews
"all in 3d" et probablement par d'autres plus tard!) affiche/efface en
"frame n" seulement ce qui change par
rapport à la "frame n-1". A noter aussi que ce qui est identique
d'une frame à l'autre n'est bien évidemment pas re-stocké ni affiché.
Le second fichier, comporte une table d'index qui pointe vers ces "frame n", "frame n+1", frame "n+2".
A noter que l'on peut également dans certains cas se passer de
ce fichier d'index car chaque séquence/frame est
délimitée par un flag.
Sauvegarde source assembleur datas :
Cochée, cette case permet l'export d'un fichier ascii (.asm)
utilisable depuis un assembleur (winape ou maxam) comprenant ni plus ni
moins les mêmes données que les deux fichiers binaires
(datas+index) mais sous forme de db & dw.
Vous constaterez en éditant ce fichier ".asm", qu'il se compose sous la forme suivante :
"&00,&c0,&ff ...etc..." ce qui donne, appliqué
à une routine d'affichage en assembleur à peu près
ceci :
ld sp,table ; sp pointe sur la table
pop hl ; hl=&c000 et sp=sp+2
dec sp ; sp=sp-1
pop af ; a=&ff
ld (hl),a ; on met la valeur &ff dans &c000
Activer la compression :
Le delta packing permettant de fait une compression notoire, il est
également possible en cochant cette case, d'appliquer une
compression supplémentaire.
Grossièrement, celle ci, s'applique sur les adresses
écrans qui potentiellement se succèdent pour l'affichage
de notre objet (ex: &c000,&c001,&c002,&c003)
Nous avons observé que les résultats (très
variables selon l'objet!) obtenus sont en moyenne de l'ordre de 30% de
compression par rapport au mode sans, ce qui n'est finalement pas
négligeable.
Gestion banques memoires (128K) :
Cochée, cette case permet la même chose que la "sauvegarde
source assembleur datas" mais sous forme pré-machée et
fragmentée pour une utilisation dans les 4 bank-mémoires
supplémentaires de l'amstrad (&c0 + &c4, &c5,
&c6, &c7)
Export des .SCR de chaque image :
Cochée, cette case génère des copies
d'écrans de cpc (des .SCR de 16ko) de vos objets/animations et
ce autant de fois que sera souhaitée le nombre d'images/frames et son pas.
Vous pourrez d'ailleurs les visualiser sur votre CPC en les loadant simplement sous basic : load "fichierXXX.scr",&c000
Ou encore les visualiser sous l'excellentissime utilitaire graphique de Demoniak, ConvImgCPC.
Pour information, le mode écran CPC et les couleurs sont
exportés respectivement en &D7D0 et à partir de
&D7D1.
Mode export "Sprites" + leurs options :
Cochée,
cette case exportera le fichier ascii (.asm) de votre animation sous
forme de sprites, à savoir uniquement les valeurs (octets)
représentant l'objet et donc sans plus aucune adresse
écran.
Si la case "taille simple" n'est pas cochée vos "n-frames/sprites" comprendront en en-tête les octets suivants :
DB #25, #59, #2A, #6E ' (XD,YD,XA,YA)
XD = X de départ - XA = X d'arrivée
YD = Y de départ - YA = Y d'arrivée
Notez que :
(XA-XD)+1 = taille en octets de la largeur de votre sprite, soit dans ce cas : &2A-&25+1 = &06
(YA-YD)+1 = taille en octets de la hauteur de votre sprite, soite dans ce cas : &6E-&59+1 = &16
Si la case "taille simple" est cochée vos
"n-frames/sprites" comprendront directement la largeur+hauteur de votre
sprite et en en-tête vous trouverez donc les octets suivants :
DB #06, #16 ' (TailleX,TailleY)
Soit dans notre cas :
TailleX = taille en octets de la largeur de votre sprite = &06
TailleY = taille en octets de la hauteur de votre sprite = &16
Le bouton "mode ligne" exporte notre sprite linéairement (ou plus communément dit en largeur ou ligne) :
DB octet-&c000, octet-&c001, octet-&c002, octet-&c003
DB octet-&c800, octet-&c801, octet-&c802, octet-&c803
Le bouton "mode 1 colonne" exporte notre sprite sur une colonne :
DB octet-&c000, octet-&c800, octet-&d000, octet-&d800
DB octet-&c001, octet-&c801, octet-&d001, octet-&d801
Le bouton "mode 2 colonnes" exporte notre sprite sur 2 colonnes :
DB octet-&c000, octet-&c001, octet-&c800, octet-&c801, octet-&d000, octet-&d001
DB octet-&c002, octet-&c003, octet-&c802, octet-&c803, octet-&d002, octet-&d003
Notez que la compression n'est pas utilisable sur les sprites,
puisqu'elle est basée sur les adresses écrans
consécutives et qu'un sprite ne contient pas d'adresses
écrans...
- Zone de résultats/stats et de lancement/arrêt :
Cette zone, assez intuitive et
compréhensible, comprend le
déroulé de la génération de notre animation
comme son nombre de frames, leurs poids respectifs (compressés
ou
pas) en octets, le poids total du binaire généré
ainsi que quelques alertes, notemment lorsqu'il y a dépassement
de capacité mémoire pour le CPC.
Vous y trouverez aussi le bouton "Démarrer" qui comme son nom l'indique, démarre visuellement
l'animation & la génération des fichiers pour le CPC.
Quant au bouton "Arrêter", vous l'aurez tous deviné, il permet de stopper l'animation et l'export.
- Zone "Paramètres animation" :
Cette zone contient plusieurs cases, à savoir :
PX : coordonnée x - abscice de départ de l'objet +
"valeur" qui est son pas d'incrémentation (ou de
décrémentation si ce chiffre est négatif)
Pour faire simple, on incrémente on va vers la droite, on décrémente on va vers la gauche.
PY : coordonnée y - ordonnée de départ de l'objet
+ "valeur" qui est son pas d'incrémentation (ou de
décrémentation si ce chiffre est négatif)
Pour faire simple, on incrémente on va vers le bas, on décrémente on va vers le haut.
ZX : coordonnée z + "valeur" qui est son pas
d'incrémentation (ou de décrémentation si ce
chiffre est négatif)
Pour faire simple, on incrémente on augmente le zoom, on décrémente on réduit le zoom.
AX : angle en degrés de x au départ + "valeur" qui est
son pas d'incrémentation (ou de décrémentation si
ce chiffre est négatif)
AY : angle en degrés de y au départ + "valeur" qui est
son pas d'incrémentation (ou de décrémentation si
ce chiffre est négatif)
AZ : angle en degrés de z au départ + "valeur" qui est
son pas d'incrémentation (ou de décrémentation si
ce chiffre est négatif)
Pour faire simple, on peut faire bouger son objet dans tout les sens selon les valeurs apposées dans ces cases...
Editeur de séquence + case utiliser séquence :
L'éditeur
de séquence, permet comme son nom l'indique
de générer, créer, importer et exporter des
séquences d'animations/frames.
La fenêtre principale comprend le déroulé de votre
séquence. C'est-à-dire les différentes
étapes de votre animation en terme de coordonnées (PX,
PY, ZX, ZY, AX, AY, AZ) pour respectivement chacunes de vos "n" frames.
- Ces 7 valeurs de l'objet dans une frame "n" (ou Trame)
selectionnée sont modifiables via le bouton "Edition". Pour se
faire, placez-vous sur une frame (ou Trame), elle s'affiche dans les 7
cases coordonnées. Il vous suffit juste alors de corriger la
valeur souhaitée dans l'une de ces 7 cases de coordonnées
puis de valider vos changements avec le bouton Edition.
- Le bouton "Insertion" vous permet d'insèrer une frame
identique à celle selectionnée à la fin de
votre déroulé.
- Le bouton "Suppression" permet quant-à lui de supprimer une frame selectionnée.
Une petite fenêtre de messages de log (Nombre de trames
calculées...) est présente et un bouton "Effacer
messages" permet de la vider.
Le bouton "Exporter Séquence" sauvegarde/exporte votre
séquence au format ".CSV" pour réutilisation sous Excel !
Le bouton "Importer Séquence" load/importe une séquence au format ".CSV" (Excel est ton ami)
Le bouton "Effacer Séquence" efface du soft la séquence active.
Le bouton "Générer séquence depuis
paramètres" génère, comme son nom l'indique, la
séquence à partir des paramètres fournis dans la
zone "Paramètres animation" de la fenêtre principale de
Make3DFrame.
Si cochée, la case "Utiliser Séquence" située dans
la fenêtre principale de Make3DFrame prendra en compte VOTRE
animation créée/importée/stockée dans
l'éditeur.
Si pas cochée, ce seront bien évidemment les 14
champs-coordonnées de "Paramètres animation" qui seront
utilisés.
Zone "Paramètres écran CPC" :
Mode 0 : L'objet sera en Mode écran 0 sur CPC.
Mode 1 : L'objet sera en Mode écran 1 sur CPC.
Mode 2 : L'objet sera en Mode écran 2 sur CPC.
#0000 : La plage d'export des datas adresses-écran sera comprise
de &0000 à &3fff (CRTC registre 12 = &00)
#4000 : La plage d'export des datas adresses-écran sera comprise
de &4000 à &7fff (CRTC registre 12 = &10)
#8000 : La plage d'export des datas adresses-écran sera comprise
de &8000 à &bfff (CRTC registre 12 = &20)
#c000 : La plage d'export des datas adresses-écran sera comprise
de &c000 à &ffff (CRTC registre 12 = &30)
CRTC R1 + Bouton appliquer :
Permet, comme vu plus haut, de calculer/générer
automatiquement nos animations d'objets selon un reformattage
écran du CPC via le registre 1 du CRTC.
En clair, celà permet de faire des animations en "overscan" ou "introscan" (ou autre terme à votre convenance!)
Memoire Linéaire (R9=0) :
Cette case cochée permet d'exporter nos adresses écrans
de l'objet/animation généré de manière
linéaires (+&50 et non +&800 dans le cas d'un R1=40)
A savoir, par exemple, de cette forme : &c000, &c050,
&c0a0... Et non plus sous cette forme :
&c000,&c800,&d000...
Certains d'entre vous auront tout de suite compris l'utilité de
la chose couplée à une mise à zéro du
registre 4 et 9 du CRTC qui permet de faire de la rupture ligne
à ligne.
- Zone "Fond d'écran" :
Cette zone comprend la possibilité, en cochant les cases
adéquats, d'incorporer une image de fond & sa palette
à notre animation/objet.
Il suffit simplement de choisir le nom de votre fond en cliquant sur le
bouton nom et d'aller chercher votre image qui doit être au
format ".SCR" (ConvImgCPC)
La case à cocher "Importer palette" attribuera tout simplement
la valeur du mode-écran (stockée en &D7D0) et la
palette (stockée en &D7D1) du-dit fichier ".SCR" (ConvImgCPC)
- Zone "Paramètres objet" :
Les cases-boutons "Modes" respectivement cochées permettent
à notre objet d'apparaître et d'être exporté
soit :
- en points non cachés.
- en point cachés.
- en fil de fer, faces vides, non cachées.
- en fil de fer, faces vides, cachées.
- en fil de fer, faces pleines, cachées.
La case Stylo lignes/points, sélectionne la couleur des points
ou contours de notre objet parmis une des 0 à 15 dans la palette.
La case Stylo Fill, sélectionne la couleur des faces pleines de notre objet parmis une des 0 à 15 dans la palette.
Editeur d'objets :
L'éditeur d'objet, est assez
intuitif et permet comme son nom l'indique de créer,
importer et exporter des objets au format ".asc".
La
fenêtre principale bleue est le visuel ou figurera votre
objet. C'est également un plan X,Y,Z où vous pourrez
construire votre propre objet. Nous vous conseillons pour vos
premières créations de prendre une bonne vieille feuille
de papier et un crayon et de "dessiner" un objet (ou mieux un
petit logo en fil de fer en 2D) dans un plan X,Y en numérotant et notant respectivement les coordonnées de vos points. Puis, de tracer, numéroter et noter également vos faces (ou lignes) formant votre objet via ces points numérotés.
Un objet se compose de :
- Points numérotés de coordonnées X,Y,Z. Vous pourrez en "Editer/Ajouter/Supprimer" dans la zone "Points".
- Faces numérotées qui regroupent 3 points
numérotés et qui peuvent être identiques. Vous
pourrez en "Editer/Ajouter/Supprimer" dans la zone "Faces".
A noter que vous devrez cliquer sur le bouton "Editer" pour valider chacune de vos nouvelles corrections et/ou entrées.
Un exemple simple en 2D (oublions Z) :
Soit 3 points :
- Point0(X0,Y0)
- Point1(X1,Y1)
- Point2(X2,Y2)
Soit les valeur A,B,C représentant une face :
Cas 1 : Face0 >> A=point0 + B=point0 + C=point0 donnera une
"face-invisible-d'un point" reliant le point0 sur lui-même...
Cas 2 : Face0 >> A=point0 + B=point1 + C=point1 donnera une
"face-d'une ligne" reliant les point0 et point1 et point1 encore...
Cas 3 : Face0 >> A=point0 + B=point1 + C=point2 donnera une
"face-de trois lignes" (un triangle donc) reliant les point0 et point1
et point2.
Cas 4 : Si vous voulez faire un "tracé de deux lignes
consécutives", une solution est de faire 2 faces d'une ligne :
Face0 >> A=point0 + B=point1 + C=point1 (ou) A=point0 + B=point0 + C=point1
Face1 >> A=point1 + B=point2 + C=point2 (ou) A=point1 + B=point1 + C=point2
En selectionnant le "Mode",
comme dans la zone "Paramètre objets" de la fenêtre
principale de Make3DFrame, votre objet peut être
représenté soit :
- en points non cachés.
- en point cachés.
- en fil de fer, faces vides, non cachées.
- en fil de fer, faces vides, cachées.
- en fil de fer, faces pleines, cachées.
Vous trouverez également 4 "potentiomètres" ajustables :
- Le zoom, qui zoom votre objet.
- Les angles X,Y,Z qui permettent de voir votre objet dans tout les sens.
Le bouton "Modifier Paramètres" permet en cliquant dessus :
- De modifier les coordonnées du point central sur lequel sont appliqués les angles X,Y,Z.
- D'appliquer dans le cas d'objets trop petits un coefficient
zoom-multiplicateur. A noter que ce coefficient multiplicateur peut
être massivement lié à l'ensemble des X,Y,Z de vos
points ou pas !
Le bouton "Nouvel Objet" permet de ré-initialiser l'ensemble de votre projet d'objet afin d'en construire un nouveau.
Attention, une alerte vous précise bien que votre objet actuel dans l'éditeur sera effacé par le nouveau.
Le bouton "Lire Objet" permet d'importer un objet au format ".asc"
Le bouton "Fusionner Objet" permet de "merger/fusionner" un énième objet à la suite de l'actuel.
Le bouton "Sauver Objet" permet tout simplement de sauvegarder votre projet-objet au format ".asc"