Outils pour utilisateurs

Outils du site


issue101:inkscape_partie_41

After last month's special celebratory detour, we return to finish the subject of aligning and positioning objects in Inkscape. We've already seen a variety of approaches, from grids and snapping through to tiled clones and the Align and Distribute dialog, but we still have two dialogs to consider. They both live near the bottom of the Object menu: “Transform…”, and “Arrange…” (“Rows and Columns…” if you're still using 0.48.x).

Après la parenthèse festive du mois dernier, revenons sur le sujet de l'alignement et de la distribution d'objets avec Inkscape. Nous avons déjà étudié une variété d'approches, depuis les grilles et le magnétisme jusqu'à la boîte de dialogue « Aligner et distribuer », en passant par le pavage de clones. Mais il nous reste deux boîtes de dialogue à examiner. Les deux se trouvent en bas du menu Objets : « Transformer… » et « Organiser… » (« Lignes et colonnes… » si vous utilisez encore la version 0.48).

The Transform dialog provides a more precise approach to moving, scaling, rotating and skewing objects when compared with simply dragging the selection handles using the mouse. In the world of SVG, every object can have a transformation applied to it. Rotate or skew an object, then look at it in the XML editor and you'll see that there's no obvious “rotate” or “skew” attribute, but rather a single “transform” attribute which holds a matrix that defines the cumulative effects of any transformations you may have applied. The details of this matrix are a little too mathematically intense for this series, but it's enough to know that each object can have its own matrix applied, and that a single matrix can combine the effects of moving, scaling, rotating and skewing into a single set of numbers. The Transform dialog is essentially a more user-friendly way of tweaking that matrix.

Le dialogue Transformer autorise des déplacements, mises à l'échelle, rotations et inclinaisons plus précis que ceux que l'on peut obtenir par simple cliquer-glisser sur les poignées d'un objet. Dans l'univers du SVG, tout objet peut se voir affecter une transformation. Faites tourner ou incliner un objet, puis regardez dans l'éditeur XML : vous verrez qu'il n'y a pas d'attribut « rotate » ou « skew », mais un seul attribut « transform » qui consiste en une matrice regroupant les effets cumulés de toutes les transformations que vous avez appliquées. Les détails de cette matrice relèvent de mathématiques un peu trop pointues pour ce tutoriel, mais il suffit de savoir que tout objet peut se voir appliquer sa propre matrice et que cette matrice peut combiner rotation, mise à l'échelle, déplacement et inclinaison au sein d'un seul ensemble de nombres. Transformer… est simplement une manière plus ergonomique de manipuler cette matrice.

On opening the dialog from the menu, or using the CTRL-SHIFT-M shortcut, you'll be presented with a simple interface featuring a handful of tabs, each with just a few fields. This dialog has seen little change between 0.48 and 0.91. The fields on the Move tab allow you to move your selected objects by a specific distance, when the “Relative move” checkbox is enabled. Disable this, and you can move your objects to absolute x and y coordinates. In addition, the current absolute coordinates are displayed in the fields. With 0.91, just about every spinbox in Inkscape lets you enter simple calculations, so there's a good argument for never enabling this checkbox in that version. Want to move your shape 50 pixels to the right? Just append “+50” to the number in the “Horizontal” box, then hit Return and watch the field update with the newly calculated value.

En ouvrant ce dialogue depuis le menu, ou en utilisant le raccourci Ctrl + Maj + M, vous verrez apparaître une interface simple proposant une poignée d'onglets, chacun doté d'un petit nombre de champs. Ce dialogue a peu évolué entre les versions 0.48 et 0.91.

Quand la case « Déplacement relatif » est activée, les champs de l'onglet déplacement vous permettent de déplacer l'objet selon la distance spécifiée. Décochez cette case et vous pourrez placer l'objet sur des coordonnées x et y absolues. De plus, les coordonnées absolues courantes sont affichées dans les champs. Depuis la version 0.91, tous les champs numériques d'Inkscape permettent la saisie de calculs simples, ce qui est une bonne raison de ne jamais cocher la fameuse case quand vous utilisez cette version. Vous voulez déplacer votre objet de 50 pixels vers la droite ? Ajoutez simplement « + 50 » au nombre affiché dans le champ « Horizontal », tapez Entrée et regardez les champs se mettre à jour avec la nouvelle valeur.

Positions and movements are based on Inkscape's own coordinate system which has the positive y axis running upwards from the bottom of the page (remember, this is the opposite of SVG's coordinate system, which has the origin at the top left, with the positive y-axis running downwards). Similarly, the selected objects are placed such that the bottom left corner of the bounding box is at the specified coordinates, with no option to use a different corner, or even the center of the box as the reference point.

Les positions et les mouvements sont calculés sur un système de coordonnées propre à Inkscape qui situe l'origine du repère en bas à gauche avec l'axe y orienté vers le haut (rappelez-vous : c'est le contraire du système utilisé par SVG qui situe l'origine en haut à gauche et oriente l'axe y vers le bas). De même, les objets sont placés de sorte que c'est l'angle inférieur gauche de leur boîte englobante qui se trouve aux coordonnées spécifiées, sans option qui permette d'utiliser un autre coin ou même le centre de la boîte comme point de référence.

The “Apply to each object separately” checkbox is effectively the opposite of the “Treat selection as group” checkbox in the Align and Distribute dialog. If you select multiple objects and leave this un-checked, then the transformation will be applied as though all the objects were grouped. With it checked, each object is individually transformed. When relatively moving things, there's little difference, but, for an absolute move, it results in all the items being placed at the same position on the page. It's also particularly relevant when using the other tabs, where the results can differ significantly due to the state of this checkbox. Consider the Rotate tab: there's a huge difference between rotating a group of separate objects and rotating each object individually.

La case « Appliquer à chaque objet séparément » est l'opposé de la case « Manipuler la sélection comme un groupe » que l'on trouve dans le dialogue Aligner et distribuer. Si vous sélectionnez plusieurs objets et la laissez décochée, alors la transformation sera appliquée comme si l'ensemble des objets constituait un groupe. Si vous la cochez, chaque objet sera transformé individuellement. Cela fait peu de différence dans le cas d'un déplacement relatif, mais un déplacement absolu aura comme résultat une pile d'objets tous situés aux même coordonnées sur la page. Cela est également très sensible quand on utilise les autres onglets, les résultats pouvant différer significativement selon l'état de cette case. Prenons l'onglet Rotation : il y a une grande différence entre faire pivoter un groupe d'objets et pivoter chacun d'eux individuellement.

The Scale, Rotate and Skew tabs in this dialog really need no additional explanation as the fields are all straightforward to understand. It's important to note, however, that only the current tab's values are used when the Apply button is clicked. You can't queue up a collection of movement, rotation and skewing to apply as a single operation, but instead have to press the button with the Move tab to the fore, then again with the Rotate tab selected, and so on. On the subject of the Rotate tab, there has been a slight change with version 0.91: this release adds buttons to determine whether rotations should be clockwise or anti-clockwise. The corresponding field accepts both positive and negative values in either release of Inkscape, so the buttons just make the existing functionality more obvious, rather than adding anything new.

Les onglets Échelle, Rotation et Inclinaison ne nécessitent pas d'explications supplémentaires, les intitulés de leurs champs étant parfaitement clairs. Toutefois, il est important de noter que seules les valeurs de l'onglet courant sont utilisées quand on clique sur le bouton Appliquer. Vous ne pouvez donc pas paramétrer une série de déplacements, rotations et inclinaisons, puis l'appliquer en une seule opération. Il vous faudra cliquer sur Appliquer avec l'onglet Déplacement en premier plan, puis recommencer avec l'onglet Rotation et enfin, Inclinaison.

Concernant l'onglet Rotation, un léger changement est apparu avec la version 0.91 : deux boutons ont été ajoutés pour déterminer si la rotation s'effectuera dans le sens des aiguilles d'une montre ou dans le sens contraire. Les champs correspondants acceptent à la fois les valeurs positives et les valeurs négatives, ce qui était déjà le cas dans les versions précédentes d'Inkscape. Ces boutons ne représentent donc pas une nouvelle fonctionnalité, mais une façon plus simple d'utiliser celle qui existait déjà.

The last tab, Matrix, allows you to directly manipulate the six values in the SVG matrix transformation. With the “Edit current matrix” checkbox enabled, you can modify the transform that's currently being applied to the selected element, if there is one. With this unchecked, any changes you make in this tab will be mathematically combined with the existing matrix to produce a new, cumulative matrix. If you are mathematically inclined, and wish to play around with this tab, I recommend reading the SVG specification for coordinate systems and transformations: http://www.w3.org/TR/SVG/coords.html

Le dernier onglet, « Matrice », vous permet d'accéder directement aux six valeurs de la matrice de transformation du SVG. En cochant la case « Éditer la matrice courante », vous pouvez modifier la transformation actuellement appliquée à l'objet sélectionné. Si elle est décochée, tous les changements que vous ferez seront mathématiquement combinés avec la matrice courante pour obtenir une nouvelle matrice. Si vous avez une inclination pour les mathématiques, et si vous voulez vous amuser avec cet onglet, je vous conseille de lire les spécifications du SVG concernant le système de coordonnées et de transformation : http://www.w3.org/TR/SVG/coords.html.

It's worth noting that SVG's transform attribute does allow for a series of individual translate(), scale(), rotate(), skewX() and skewY() functions to be used, rather than just the matrix() operation that combines them all. From an authoring perspective, it would be far nicer to store a 45° rotation in the SVG file as rotate(45), rather than matrix(0.707,0.707,-0.707,0.707,0,0), but there's no option in Inkscape to do that, unfortunately.

Il est intéressant de noter que l'attribut « transform » du SVG autorise toute une série de fonctions individuelles : translate(), scale(), rotate(), skewX() et skewY() au lieu de la seule fonction matrix() qui les combine toutes. Du point de vue de l'implémentation, il serait plus lisible d'écrire une rotation de 45° dans le code SVG plutôt que matrix(0.707,0.707,-0.707,0.707,0,0), malheureusement il n'y pas d'option dans Inkscape qui permette cela.

The last feature we'll consider in this part of the series is the dialog that can be found via Object > Rows and Columns… (0.48) or Object > Arrange… (0.91). The latter lays the interface out a little more neatly and adds a second tab, so I'll describe that version. 0.48 users should be able to work out the differences in the first tab, but you'll just have to look on in envy when I describe the Polar Coordinates options in the second.

La dernière fonctionnalité que nous examinerons dans le cadre de ce numéro est la boîte de dialogue qui s'ouvre avec Objet > Lignes et colonnes… (0.48) ou Objet > Organiser… (0.91). La dernière version présente une interface un peu mieux rangée et y ajoute un second onglet. C'est donc elle que je vais détailler. Les utilisateurs de la version 0.48 devraient être capables de passer outre ces différences sur le premier onglet, mais ils devront se contenter de me suivre avec jalousie quand je décrirai les coordonnées polaires du second.

Let's start by creating a few objects to arrange. I've deliberately used different sizes, and semi-randomly placed them. I've numbered them from left to right, top to bottom, to make it easier to see which object moves where – once they're arranged using the dialog. On selecting these nine objects and opening the dialog, it's possible to set various combinations of rows and columns, ranging from 1×9 to 9×1. These fields are dynamic: as items are added to, or removed from the selection, the rows and columns will change; similarly as each field is manually altered so the other will change to ensure that you don't end up with an impossible combination for the number of elements that are selected. In this example, I've set the arrangement to 3 rows by 3 columns.

Commençons par créer quelques objets à organiser. J'ai délibérément utilisé des tailles différentes et je les ai placés un peu au hasard. Je les ai numérotés de gauche à droite et de haut en bas, pour rendre plus facile la visualisation de leurs déplacements, une fois organisés par le biais du dialogue.

En sélectionnant ces neuf objets et en ouvrant la boîte de dialogue, il est possible de créer différentes combinaisons de lignes et de colonnes, de 1 x 9 à 9 x 1. Ces champs sont dynamiques : à mesure que des objets sont ajoutés, ou retirés de la sélection, les lignes et les colonnes changent. De façon similaire, si un champ est édité à la main, les autres seront mis à jour pour assurer que vous ne finissiez pas sur une combinaison incompatible avec le nombre d'éléments sélectionnés. Pour cet exemple, j'ai choisi un agencement de 3 lignes par 3 colonnes.

You can think of this dialog as creating a number of conceptual cells which are arranged in rows and columns, then your objects placed within them. They're “conceptual” in that they're never really created, or drawn, on the canvas, but serve as a tool to more easily describe how Inkscape arrives at its final layout. The height of each cell is determined by the height of the tallest object in the row, and the state of the Equal Height checkbox. If left unchecked, then the height of each row is free to change to suit the tallest object within it; if checked, all the rows will be the same height, equal to the tallest object in any of the rows. An analogous calculation is carried out to determine the width of each cell, too.

Vous pouvez vous figurer ce dialogue comme créant des cellules virtuelles organisées en lignes et colonnes, puis plaçant vos objets dans celles-ci. Elles sont « virtuelles » car elle ne sont jamais vraiment créées ou tracées sur la zone de travail, mais elles sont des outils qui permettent de décrire plus facilement la manière dont Inkscape parvient à la disposition finale. La hauteur de chaque cellule est déterminée par la hauteur du plus grand objet de la ligne et l'état de la coche Égaliser la hauteur. Non cochée, elle permet à chaque rangée de s'adapter à la hauteur du plus grand objet qu'elle contient ; cochée, elle oblige les lignes à prendre toutes la même hauteur : celle du plus grand objet de la sélection. La largeur de chaque cellule est déterminée selon un calcul analogue.

With the dimensions of each cell calculated, they are now distributed into their final positions. If the “Fit into selection box” radio button is active, they are evenly distributed to fit within the dimensions of the original selection's bounding box. This gives you the ability to distribute the objects within a specific area by carefully positioning two opposing corner objects. Alternatively you can select the “Set spacing” option, and enter values for the X and Y fields. In this mode the cells will be arranged with the specified amount of space between the columns (X value) and rows (Y value). These numbers can be negative if you want to make the cells overlap. Note that 0.48 allows these numbers to be specified only in pixels whereas 0.91, as you can see from the screenshot, has a pop-up menu from which to choose different units.

Une fois leurs dimensions déterminées, les cellules sont ensuite amenées à leurs positions définitives. Si le bouton radio « Ajuster à la boîte de sélection » est activé, elles seront réparties régulièrement à l'intérieur de la boîte englobante de la sélection d’origine. Cela vous offre la possibilité de distribuer les objets dans une surface que vous déterminerez en positionnant précisément deux coins opposés.

Vous pouvez également choisir l'option « Définir l'espacement » et entrer des valeurs pour les champs X et Y. Les cellules seront alors agencées avec les espaces spécifiés entre les lignes et les colonnes (Y pour les lignes, X pour les colonnes). Ces valeurs peuvent être négative si vous voulez que les cellules se chevauchent. Notez qu'avec la version 0.48 ces valeurs ne peuvent être exprimées qu'en pixels, alors que la version 0.91 permet de choisir d'autres unités via un menu déroulant (comme on peut le voir sur la capture d'écran).

With these imaginary cells conceptually placed on the canvas, it's finally time to move your objects into them. The “Alignment” buttons let you define how to place each object within its cell, allowing for any of nine relative positions (though you'll probably just use the center button most of the time). Note that 0.48 had the same nine possibilities available, but laid out as a pair of three-option radio buttons which specified the horizontal and vertical alignments separately. Having distributed our virtual cells, and aligned the objects within them, the result is something like this:

Après avoir placé ces cellules imaginaires sur l'espace de travail, il est temps d'y placer nos objets. Les boutons verts « Alignement » permettent de définir où disposer les objets dans leurs cellules en offrant neuf possibilités d'alignement différentes (même si la plupart du temps vous vous contenterez du bouton « Centrer »). La version 0.48 offre les mêmes possibilités, mais à l'aide de deux ensembles de trois boutons radio qui concernent chacun un type d'alignement, horizontal ou vertical.

Après avoir réparti nos cellules virtuelles et aligné leur contenu à l'intérieur, nous obtenons un résultat qui ressemble à ceci :

It's important to understand how Inkscape chooses the order for the arrangement. Whereas other parts of the application use an object's z-index or selection order, this dialog is only concerned with the placement of the objects on the canvas. They're ordered from left to right, top to bottom, and laid out in the same way. You can see this effect quite clearly if I move the blue “8” object up a little, leaving its z-index the same, then reapply the arrangement:

Il est important de comprendre dans quel ordre Inkscape réalise cette organisation. Alors que d'autres outils utilisent l'index Z de l'objet ou l'ordre de la sélection, cette boîte de dialogue ne prend en compte que la position des objets sur l'espace de travail. Ils sont traités de gauche à droite et de haut en bas, et appliqués dans ce même ordre. Vous pouvez le constater clairement si je remonte un peu l'objet « 8 bleu » sans modifier son index Z, puis répète le processus d'organisation :

Because the objects are laid out from left to right, top to bottom, some arrangements can lead to an empty space in the bottom right corner. Here are the same nine objects in a 2×5 arrangement: Note that there's no way to get the blank space to be anywhere other than the bottom right cell. If you want a different alignment you'll have to manually alter the results afterwards. It's also not possible to have more than one blank cell – the dynamic nature of the Rows and Columns fields will stymie any attempts. Trying to put these nine objects into a 2×6 arrangement, expecting six objects on the top row, and three on the bottom, just leads to the same result as before and the fields adjusting themselves to 2×5.

Comme les objets sont répartis de gauche à droite et de haut en bas, avec certaines combinaisons, cela peut conduire à des espaces vides dans la cellule du coin inférieur droit. Voici nos neuf objets avec une combinaison de deux lignes et cinq colonnes :

Il n'est pas possible d'obtenir cet espace blanc ailleurs que dans ce coin inférieur droit. Si vous souhaitez un alignement différent vous devrez rectifier ce résultat ultérieurement. Il n'est pas non plus possible d'obtenir plus d'une cellule vide : le caractère dynamique des champs « Lignes » et « Colonnes » déjouera toute tentative. Tenter d'organiser ces neufs objets en deux lignes et six colonnes, pour avoir six objets dans la ligne du haut et trois dans celle du bas, conduit simplement au même résultat que précédemment, les champs s'ajustant automatiquement à 2×5.

The second tab of this dialog allows you to place objects in a polar arrangement. You can either draw a circle, ellipse or arc as a guide on which to place your objects, or you can enter the parameters for such a shape within the dialog itself. The easiest way to do this is to draw a target shape (circle, ellipse or arc) that you wish to place your objects on. Send it to the bottom of the z-order, then select all the objects you wish to arrange plus the target itself. Ensuring that “First selected…” is active, click the Arrange button. With our previous selection of nine rounded rectangles, and a grey ellipse as the target, the result is something like this: As you can see, the objects have been arranged anti-clockwise, starting from the top right. To make them run clockwise from the top left, flip the ellipse horizontally first. For clockwise from the bottom right, flip it vertically. For anti-clockwise from the bottom left, flip it both horizontally and vertically before creating the arrangement.

Le second onglet de cette boîte de dialogue vous permet d'organiser vos objets de manière polaire. Vous pouvez soit tracer un cercle (ou une ellipse, ou un arc) pour vous guider dans le placement de vos objets, soit entrer les paramètres définissant cette forme dans le dialogue lui-même.

La façon la plus simple de procéder est de tracer la forme cible (cercle, ellipse ou arc) sur laquelle vous souhaitez placer vos objets. Placez-la tout en bas de l'ordre Z (touche Fin) puis ajoutez à la sélection l'ensemble des éléments que vous voulez organiser. En vous assurant que le bouton radio « Premier cercle/ellipse/arc sélectionné » est activé, cliquez sur Organiser. Avec notre sélection précédente, neuf rectangles arrondi, et une ellipse grise comme cible, le résultat ressemble à ceci :

Comme vous pouvez le voir, l'organisation s'est faite dans le sens inverse des aiguilles d'une montre en commençant en haut à droite. Pour que cela se fasse dans le sens horaire, en commençant en haut à gauche, commencez par retourner votre ellipse horizontalement (touche H). Sens des aiguilles d'une montre en commençant en bas à droite : retournez-la verticalement (V) ; sens contraire des aiguilles d'une montre en commençant en bas à gauche : retournez-la verticalement et horizontalement avant de créer l'arrangement.

the target object is your only circle, ellipse or arc in the selection, it doesn't really matter whether you use the “First selected…” or “Last selected…” option. If you do have more than one, however, you should ensure that you select the target first, then add everything else to the selection (“First Selected…”) or select everything else, then add the target to the selection (“Last selected…”). If you don't wish to create an additional object on the canvas to use as a target, the “Parameterized” option reveals additional fields (shown in the screenshot) to let you specify the details of the target arc to use. Realistically, it's almost always easier to draw an arc on the canvas to use as the target. You'll get visible feedback as to where your objects will be placed, and you can simply delete the arc once your arrangement is done, if you don't want it left in the drawing.

Si votre objet cible est le seul cercle, la seule ellipse ou le seul arc de votre sélection, que vous choisissiez « Premier sélectionné… » ou « Dernier sélectionné… » n'a pas vraiment d'importance. S'il y en a plusieurs, toutefois, vous devez veiller à sélectionner la cible d'abord puis tout le reste (« Premier sélectionné… ») ou à sélectionner vos objet d'abord avant d'ajouter votre cible à la sélection (« Dernier sélectionné… »).

Si vous ne souhaitez pas créer un objet de plus sur votre espace de travail pour servir de cible, l'option « Paramétré » affiche des champs supplémentaires (voir capture d'écran) qui vous permettent de spécifier les caractéristiques de l'arc à utiliser. En réalité, il est presque toujours plus facile de dessiner l'arc qui va servir de cible : vous aurez ainsi un aperçu de la manière dont vos objets vont s'organiser et vous pourrez toujours effacer l'arc par la suite si vous ne souhaitez pas qu'il apparaisse dans le dessin.

The specific position of each object on the target shape is set using the “Anchor point” section in the top half of the dialog. You can specify one of nine positions on the object's bounding box – so choosing the top-left button, for example, would position the objects such that the top-left corner of each individual bounding box is placed on the target. The center button is the most common choice here, and is the one I used for the previous image. An interesting alternative is to use the “Object's rotational center” option. This will position each object so that its rotational center is placed on the target, allowing you a finer degree of control over the placement of each individual object. The “Rotate objects” checkbox determines whether your objects will be rotated when they are arranged, or left with their original orientation. The previous image was made with this checked; had it been left un-checked, all of the positioned objects would have retained their original orientation, such that the numbers would all have been the right way up.

La position de chaque objet sur la forme cible est définie en utilisant la section « Point d'ancrage » de la partie supérieure du dialogue. Vous pouvez choisir une des neuf positions sur la boîte englobante de l'objet, par exemple, activer le bouton supérieur gauche placera vos objets de sorte que le coin supérieur gauche de chaque boîte englobante se place sur la cible. Le bouton du centre restera le choix le plus courant et c'est celui que j'ai utilisé pour l'image précédente. Une alternative intéressante est d'utiliser l'option « Centre de rotation de l'objet ». C'est alors le centre de rotation de l'objet qui sera placé sur la cible, vous permettant un contrôle plus fin de la disposition de chaque élément.

La case à cocher « Tourner les objets » détermine si vos objets subiront ou non une rotation quand ils sont organisés. L'image précédente a été réalisée avec cette option, sans cela, les objets auraient conservé leur orientation d'origine, de sorte que les numéros n'auraient pas eu la tête en bas.

There's a small bug that you may have to work around: whilst writing this article, I found that the Polar mode would occasionally place all my objects on top of each other, rather than spacing them out around the target shape. I was able to reliably fix this by undoing the placement, then shifting the target object up (SHIFT-Up arrow), then back down to its previous position (SHIFT-Down arrow), before repeating my arrangement attempt. That concludes our look at the myriad ways in which you can arrange and position objects within Inkscape. Amongst them there should be something to suit most artistic requirements. From snapping to grids, tiled clones to polar arrangements, Inkscape has far more ways to position your shapes than initially meets the eye.

Il existe un petit bogue que vous devrez peut-être contourner : en écrivant cet article, je me suis aperçu que, parfois, le mode polaire empilait tous mes objets les uns sur les autres plutôt que de les répartir autour de la forme cible. J'ai pu résoudre cela efficacement en annulant l'organisation puis en déplaçant l'objet cible vers le haut (Maj + flèche directionnelle) avant de le ramener à sa position d'origine (Maj + flèche directionnelle), avant de renouveler ma tentative d'organisation.

Cela termine notre inventaire des mille et une recettes pour placer et organiser des objets avec Inkscape. Parmi elles, vous devriez trouver celle qui satisfera vos exigences artistiques les plus pointues. Avec le magnétisme, les grilles, les pavages de clones et l'organisation polaire, Inkscape dispose de bien plus de ressources pour disposer vos formes qu'il n'y paraît au premier regard.

issue101/inkscape_partie_41.txt · Dernière modification : 2015/10/07 16:55 de auntiee