« 1 2 (3) 4 5 6 ... 21 »


Re: Portal BGE
OverdOzed
Inscrit:
05/11/2008 19:40
Post(s): 511
Mince ! j'aurais due poster mon message hier, maintenant cray à donner le lien que je voulais donner... enfin bon

En tout cas, super boulot !

J'avais fais quelques petit tests sur un système de portails moi aussi mais j'ai complètement oublier de sauvegarder mon fichier (oui, j'ai honte) et mon ordi m'a fait un joli écran bleu dans la soiré (ça arrive souvent, c'est à cause d'itune et de chrome, il font des truc bizarres quand ils sont lancer en même temps)... une après-midi de travaille perdu.

Au passage, si ça te tente, tu pourrais l’intégrer à mon template quand tu l'auras finis ( et quand je l'aurais finis moi aussi parce que j'ai participé au blocus de mon lycée depuis une semaine pendant laquel je n'ai pas fait grand chose dessus).

J'ai pas encore tester ta nouvelle version (il faut que je repasse sous linux pour pouvoir utiliser le bge de la 2.5 et là j'ai la flemme) mais pour les portails qui rentre à moitiés dans le mur ou dans le sol, tu peux faire on sorte de le placer automatiquement au-dessus ou à coté de l'endroit toucher pour qu'il ne rentre plus dans un mur ou dans le sol (en fonction de la face touché).
Et pour "le cube" nécessaire, en fait c'est une techique beaucoup plus simple mais assez longue à mettre en place.
Je pourrais pas t'expliquer tout en détail mais en gros il faut faire deux meshes pour le décor, un pour la physique, qui doit être très simple, et un pour l'affichage qui peut être plus complexe (au niveau des faces) après, il te suffit de modifier le mesh physique pour obtenir ton trou à l'arrière du portail.

@+

Contribution le : 21/10/2010 23:25
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
Fou Furieux du Clan
Inscrit:
02/11/2008 20:26
Post(s): 238
Parfois le portail bleu disparait ! C'est une erreur ou c'est voulu ?

Citation :
le produit vectoriel

Je l'avais complètement oublié celui-là !

Bon, pour le système de rotation, je suis resté avec les complexes pour éviter des sinus et cosinus dans tout les sens.

Voilà ce que j'ai à te proposer, tu n'aura qu'à greffer ce code où tu voudras, mais fais un ou deux tests car doué comme je suis il y a peut-être des erreurs :
from bge import logic as gl

#on aura besoin de phase pour le calcul d'angle d'un complexe, du sinus et cosinus
from cmath import phase
from math import cos, sin

#on defini i
i = complex(0, 1)

x, y, z = 0, 1, 2

rot = Joueur.orientation

#ici tu mets les coordonnees de la normale du portail "d'envoi"
nor_1 = ...
#la le portail de "reception"
nor_2 = ...

#calcul des modules des projections des normales pour ajuster la longueur des projections
mod_1 = (nor_1[x]**2 + nor_1[y]**2)**0.5
mod_2 = (nor_2[x]**2 + nor_2[y]**2)**0.5

#phi est l'angle entre le joueur et la normale du premier portail sur le plan horizontal
phi = phase(complex(-rot[y][x], -rot[y][y])) - phase(complex(nor_1[x]/mod_1, nor_1[y]/mod_1))

#calcul de l'angle entre la normale du 2eme portail et le joueur
angle =  phase(complex(nor_2[x]/mod_2, nor_2[y]/mod_2)) -phi

axey = complex(cos(angle), sin(angle))
axex = -i*axey

Joueur.orientation = [[axex.real, axex.imag, 0.], [axey.real, axey.imag, 0.], [0., 0., 1.]]


Voilà pour l'instant. Si ça ne marche pas fait moi signe et je trouverais un moment où j'aurais le temps d'y réfléchir plus profondément

@+

EDIT : correction des erreurs du script

Contribution le : 21/10/2010 23:36
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
OverdOzed
Inscrit:
24/07/2008 01:45
De Paris
Post(s): 3447
Citation :
Au passage, si ça te tente, tu pourrais l’intégrer à mon template quand tu l'auras finis.

Pourquoi pas.

Citation :
( et quand je l'aurais finis moi aussi parce que j'ai participé au blocus de mon lycée depuis une semaine pendant laquel je n'ai pas fait grand chose dessus)

Ces blocus sont ridicules...Enfin ce n'est pas le sujet de la discussion...



Gui36fr, merci pour ce code, il fonctionne (sauf que le portail est à plat, mais je compte y remédier un jour).
Par contre, je comprends vraiment pas.
phase(), complex()...i
Parce que du coup, il faudrait appliquer je pense une méthode similaire pour la transmission de la force.
Mais dans le blend que Cray a linké, aucune des ces instructions mathématiques complexes (c'est le cas de le dire ) ne sont abordées...Pourtant, ça marche du tonnerre !

edit : une màj avec le système de gui36fr : http://www.mediafire.com/?daaly3ldy7ykrl5

Contribution le : 22/10/2010 19:08
_________________
Tuto MaPZone
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
Fou Furieux du Clan
Inscrit:
02/11/2008 20:26
Post(s): 238
Citation :
Gui36fr, merci pour ce code, il fonctionne (sauf que le portail est à plat, mais je compte y remédier un jour).

C'est bien ce que j'avais prédit ! Pour remédier au problème, il faut que tu mettes la réorientation dans ce bloc if :
if nor_1[2] != 1. and nor_1[2] != -1. and nor_2[2] != 1. and nor_2[2] != -1.:

Mais pour éviter les erreurs d'opérations dues aux calculs de flottants, prend plutôt ceci :
if (-0.9 < nor_1[2] < 0.9) and (-0.9 < nor_2[2] <0.9):


Tu fera attention, il manque une lettre ligne 69 : c'est axey.imag et pas xey.imag (désolé, c'est de ma faute...).

Citation :
Par contre, je comprends vraiment pas.
phase(), complex()...i

Tu es en terminale S ? (c'est juste pour savoir s'il me faut t'expliquer ou laisser tes profs te l'expliquer... fainéant je suis ).

Citation :
Parce que du coup, il faudrait appliquer je pense une méthode similaire pour la transmission de la force.

C'est exactement la même chose (sans les erreurs), sauf quand l'un des portails est à l'horizontale (là faut copier la force vue que la rotation ne bouge pas).

Ça donne ceci :

EDIT : j'ai dis une belle ânerie il y a des modifs à faire, j'étudie ça et je le posterais plus tard

Ya plus qu'à tester

Contribution le : 22/10/2010 19:43
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
OverdOzed
Inscrit:
24/07/2008 01:45
De Paris
Post(s): 3447
Citation :
Tu fera attention, il manque une lettre ligne 69 : c'est axey.imag et pas xey.imag (désolé, c'est de ma faute...).

Oui, oui, j'ai vu, puis un peu avant aussi, tu es pas d'accord avec toi même...Tu mets un coup nor_1, un coup nor_p1
Enfin si tu as regardé mon blend, tu as dû constater que j'ai corrigé.

Citation :
Tu es en terminale S ?

Oui, je sais que ça viendra cette année, mais j'ai pas envie d'attendre. Je sais pas pourquoi on voit pas ça plutôt...Les STI voient les complexes en 1ère, les ES voient les matrices en 1ère, mais nous, S, on a encore vu ni l'un ni l'autre.
Enfin bon. J'ai regardé ce qu'est la transposition, et c'est simplissime. C'est plus l'inversion que j'ai pas compris mais vu que diviser par un nombre revient à multiplier par son inverse, je suppose que ça marche de la même façon pour les matrices : *invert(mat) est l'opération inverse de *mat.
D'ailleurs, c'est ce que j'utilise pour mes rotations (pour les objets, pas pour le joueur) et ça marche.

J'ai tenté de convertir le script du blend de Warwickallison pour la 2.5, mais ça fait des trucs bizarres.
Le script :
from bge import logic as gl
import VideoTexture
from mathutils import *

cont = gl.getCurrentController()
scene = gl.getCurrentScene()
viewer = scene.active_camera
viewpos = viewer.position
r180 = Matrix.Rotation(180, 3, 'Y')
unmir = Matrix.Scale(-1, 3, Vector([1,0,0]))
for pss in [1,2,3]:
	n = 0
	for s in cont.sensors:
		portal = s.owner
		if 'otherportal' in portal:
			otherportal = scene.objects[portal['otherportal']]
		else:
			otherportal = cont.sensors[len(cont.sensors)-1-n].owner
		n+=1
		cam = scene.objects[portal.name+"cam"]
		m1=Matrix(*portal.orientation)
		m1.transpose()
		m1.invert()
		m2=Matrix(*otherportal.orientation)
		m2.transpose()
		
		if pss == 1:
			# Update video textures
			offset = Vector([0,0,0])
			if 'offset' in cam:
				offset = cam['offset']
			cam.position = Vector(otherportal.position) + \
				(Vector(viewpos) - Vector(portal.position))*m1*unmir*m2 + offset
			if 'video' in cam:
				cam['video'].refresh(False)
			else:
				matID=0
				video = VideoTexture.Texture(portal, matID)
				video.source = VideoTexture.ImageMirror(scene,cam,otherportal,matID)
				sz = 256
				if 'videosize' in cam:
					sz = cam['videosize']
				video.source.capsize = [sz,sz]
				video.source.background = [0,0,0,255] # black
				cam['video'] = video
		elif pss == 2:
			# Remove old fake objects
			if 'lasthits' in portal:
				for ob in portal['lasthits']:
					if ob not in s.hitObjectList:
						if 'portalcopy' in ob and ob['portalcopy'] != None:
							ob['portalcopy'].endObject()
							ob['portalcopy'] = None

		else:
			# Create/move fake objects
			list = []
			for ob in s.hitObjectList:
				if 'fake' not in ob:
					print(ob,"hit",portal)
					if 'portalcopy' in ob and ob['portalcopy'] != None:
						copy = ob['portalcopy']
					else:
						copy = scene.addObject(ob,ob,0)
						copy['fake'] = 1
						ob['portalcopy'] = copy
					opos = (Vector(ob.position) - Vector(portal.position))*m1
					copy.position = Vector(otherportal.position) + opos*r180*m2
					copy.localScale = ob.localScale
					ori = Matrix(*ob.orientation)
					ori.transpose()
					ori = ori*m1*r180*m2
					ori.transpose()
					copy.orientation = ori
					if opos[2] < 0: # Portal mesh is Z plane
						# Teleport
						ob.position,copy.position = copy.position,ob.position
						ob.orientation,copy.orientation = copy.orientation,ob.orientation
						ob.setLinearVelocity(Vector(ob.getLinearVelocity())*m1*r180*m2)
						ob.setAngularVelocity(Vector(ob.getAngularVelocity())*m1*r180*m2)
					list += [ob]
			portal['lasthits'] = list
		


Je pensais au début que le problème venait du fait que la matrice de rotation en 2.5 est la transposée de la matrice de rotation en 2.49. J'ai donc retiré toutes les lignes qui transposent les matrices (4 lignes si je n'en ai pas loupé). Mais il s'avère que ça bug toujours.

Edit : J'ai pas trop compris l'intérêt de la rotation à 180° non plus...Toujours est-il qu'il faut passer cette valeur en radians pour que ça marche...

Contribution le : 22/10/2010 20:22
_________________
Tuto MaPZone
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
Fou Furieux du Clan
Inscrit:
02/11/2008 20:26
Post(s): 238
Citation :
Oui, oui, j'ai vu, puis un peu avant aussi, tu es pas d'accord avec toi même...Tu mets un coup nor_1, un coup nor_p1

Ah oui mais tu regardera la ligne 69 il te manque encore le a de axey.

Citation :
Oui, je sais que ça viendra cette année, mais j'ai pas envie d'attendre.

Je t'aime bien, toi

Citation :
C'est plus l'inversion que j'ai pas compris mais vu que diviser par un nombre revient à multiplier par son inverse, je suppose que ça marche de la même façon pour les matrices

L'inversion (-rot si j'ai bien compris ce que tu me demandes) c'est parce que la vue du joueur est inversé d'un portail à l'autre (s'il rentre en "marche arrière", quand il ne regarde pas le portail il en ressort en le regardant, pareil dans l'autre sens, donc il faut inverser). Et le angle = ... - phi c'est pour la symétrie par rapport à la normale.

La division par mod (le module du projeté (sa longueur, si tu préfères)) c'est pour agrandir le projeté si son module n'est pas égal à 1 (produit en croix) :
(avec x' et y' les coordonnées du projeté (donc z'=0) et x, y et z les coordonnées de la normale)
x' = x*module(x, y, z)/module(x, y) = x*1/module(x, y) = x/module(x, y)
y' = y*module(x, y, z)/module(x, y) = y/module(x, y)

On a donc:
module(x', y')² = (x')² + (y')² = x²/(x² + y²) + y²/(x² + y²) = (x² + y²)/(x² + y²) = 1

Or la racine carré de 1 est 1 : le projeté est correcte


Pour l'orientation de la force, tu veux garder l'orientation entière ou seulement sur un plan horizontal ?

EDIT :
Finalement, j'ai conservé entièrement la force, mais si tu ne la veux qu'à l'horizontal, tu remplaces force[z] par 0. à la fin :
from bge import logic as gl

#on aura besoin de phase pour le calcul d'angle d'un complexe, du sinus et cosinus
from cmath import phase
from math import cos, sin

#on defini i
i = complex(0, 1)

x, y, z = 0, 1, 2


force = ...
mod_force = (force[x]**2 + force[y]**2)**0.5

#ici tu mets les coordonnees de la normale du portail "d'envoi"
nor_1 = ...
#la le portail de "reception"
nor_2 = ...

if (-0.9 < nor_1[2] < 0.9) and (-0.9 < nor_2[2] <0.9):
	#calcul des modules des projections des normales pour ajuster la longueur des projections
	mod_1 = (nor_1[x]**2 + nor_1[y]**2)**0.5
	mod_2 = (nor_2[x]**2 + nor_2[y]**2)**0.5
	
	#phi est l'angle entre la "force" et la normale du premier portail sur le plan horizontal
	phi = phase(complex(-force[x]/mod_force, -force[y]/mod_force)) - phase(complex(nor_1[x]/mod_1, nor_1[y]/mod_1))
	
	#calcul de l'angle entre la normale du 2eme portail et la "force"
	angle =  phase(complex(nor_2[x]/mod_2, nor_2[y]/mod_2)) -phi
	
	force = [cos(angle)*mod_force, sin(angle)*mod_force, force[z]]

Gare aux erreurs...

Bon blend

EDIT : correction des erreurs du script

Contribution le : 22/10/2010 21:32
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
OverdOzed
Inscrit:
24/07/2008 01:45
De Paris
Post(s): 3447
Citation :
L'inversion (-rot si j'ai bien compris ce que tu me demandes) c'est parce que la vue du joueur est inversé d'un portail à l'autre (s'il rentre en "marche arrière", quand il ne regarde pas le portail il en ressort en le regardant, pareil dans l'autre sens, donc il faut inverser). Et le angle = ... - phi c'est pour la symétrie par rapport à la normale.

Heu je pensais plutôt à rot.invert(), mais si tu dis que -rot fait la même chose, ça sera plus simple.
edit : Bah non, ça marche pas, "-rot"...Faut faire rot.invert()

Citation :
La division par mod (le module du projeté (sa longueur, si tu préfères)) c'est pour agrandir le projeté si son module n'est pas égal à 1 (produit en croix) :
(avec x' et y' les coordonnées du projeté (donc z'=0) et x, y et z les coordonnées de la normale)
x' = x*module(x, y, z)/module(x, y) = x*1/module(x, y) = x/module(x, y)
y' = y*module(x, y, z)/module(x, y) = y/module(x, y)

On a donc:
module(x', y')² = (x')² + (y')² = x²/(x² + y²) + y²/(x² + y²) = (x² + y²)/(x² + y²) = 1

Or la racine carré de 1 est 1 : le projeté est correcte

Ou là !
A froid, je te suis pas, mais j'essayerais de faire un dessin.

Et merci encore pour le code, je vais tester ça. Mais pour les objets en général, n'y a-t-il pas un moyen de conserver la force sans tous ces calculs ? Parce que Warwick ne se prend pas la tête avec tout ça...

edit : J'ai testé, et il y a un problème : le cos de cmath donne une complexe, et une force doit être donnée par des float...Et float() ne fonctionne pas pour la conversion. Que faire ?

Contribution le : 23/10/2010 11:30
_________________
Tuto MaPZone
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
Fou Furieux du Clan
Inscrit:
02/11/2008 20:26
Post(s): 238
Bonjour,

Citation :
edit : J'ai testé, et il y a un problème : le cos de cmath donne une complexe, et une force doit être donnée par des float...Et float() ne fonctionne pas pour la conversion. Que faire ?

Ah bah oui, c'est logique... j'ai utilisé le cos et le sin de cmath, donc ça retourne des complexes.

Change la ligne
from cmath import phase, cos, sin
par
from cmath import phase
from math import cos, sin


Citation :
edit : Bah non, ça marche pas, "-rot"...Faut faire rot.invert()

??? Bizarre, ça devrait marcher pourtant. Mais quand je parlais de faire "-rot", c'était seulement pour inverser les coordonnées or elles y sont déjà dans le code que je t'ai donné, tu n'as donc rien à changer

En réalité ce que j'ai fait dans ces lignes c'est (en gros) : rot[y][x] = -rot[y][x] et rot[y][y] = -rot[y][y] mais ça ce fait rapidement dans ma ligne où je calcul phi. Tu n'as rien à toucher ni avant ni après, sauf erreur de ma part.

Quand à rot.invert() ça retourne toute la matrice (donc ça inverse tout), mais je ne le fait pas au cas où il y aurait besoin de garder la matrice originale plus loin dans le code ; je préfère inverser mes nombres dans mes calculs

Citation :
Ou là

Euh... développe tous mes calculs et tu comprendras. Le module d'un vecteur est sa longueur, et la longueur d'un vecteur (x, y, z) est la racine carré de x²+y²+z². Je suis un peu fainéant, donc la moitié (parfois les trois quarts) des calculs se font dans ma tête et pas sur ma feuille (ou sur mon clavier...)

Citation :
Mais pour les objets en général, n'y a-t-il pas un moyen de conserver la force sans tous ces calculs ? Parce que Warwick ne se prend pas la tête avec tout ça...

Warwick calcul tout avec des matrices 3x3 (donc 9 données qui changent d'un coup à chaque calcul), moi je travaille avec des complexes (2 données) et mon esprit plus ou moins logique : quel est la plus simple des méthodes ? Et bien avec un ordi tu peux facilement travailler avec des matrice, à condition de ne pas te planter car pour chercher une erreur, c'est parfois long... Sur une feuille de papier (je passe toujours par ma feuille et mon crayon avant de faire un script), les complexes sont un outil qui reste assez simple, et on peut faire un dessin. Un inconvénient c'est qu'on ne peut pas calculer directement des positions en 3D avec les complexes, mais là on travaille sur un plan. Pour moi le plus simple dans ce cas c'est les complexes, mais rien ne t'interdit de travailler avec les matrices
De plus, Warwick prend plus de 20 lignes pour son programme, si tu compactes le mien (càd sans les commentaires et les sauts de lignes) en a un vingtaine à tout casser, en utilisant 4 fonctions qui restent assez simples (création de complexe (pas vraiment une fonction de calcul), calcul d'angle (phase()), cosinus et sinus). À toi de juger, tu es maître de ton projet

Contribution le : 23/10/2010 12:32
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
OverdOzed
Inscrit:
24/07/2008 01:45
De Paris
Post(s): 3447
Ok, je verrais tout ça dans une semaine, parce que là je prends l'avion dans quelques heures.
Je me demande si on ne peut pas utiliser des méthodes de l'objet comme getVectTo(other) ou alignAxisToVect(vect, axis=2, factor=1.0) pour obtenir le même résultat...

Contribution le : 23/10/2010 13:28
_________________
Tuto MaPZone
Créer un fichier PDF de la contribution Imprimer


Re: Portal BGE
Fou Furieux du Clan
Inscrit:
02/11/2008 20:26
Post(s): 238
getVectTo(other) sert à obtenir le vecteur entre les centres de 2 objets A et B, c'est à dire le vecteur AB. Je n'en vois pas l'utilité dans ce cas (ou alors tell me why).

alignAxisToVect(vect, axis=2, factor=1.0) sert à orienter l'un des axes d'orientation d'un objet par rapport à un vecteur. On pourrait éventuellement l'utiliser si la réorientation du perso s'effectuait sur 3 dimensions, pour des raisons de simplicités. Mais il n'y en a pas forcément besoin sur 2 dimensions : ton perso n'a qu'un axe de rotation (z), les autres axes restent sur un plan horizontal.
Effectivement, on peut l'utiliser, mais il faut créer le vecteur, et je pense qu'au final à une ou deux lignes près le script est le même.

EDIT : Bon voyage

Contribution le : 23/10/2010 14:30
_________________
Guillaume
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant
« 1 2 (3) 4 5 6 ... 21 »




Enregistrer votre réponse
Compte*
Nom   Mot de passe   Authentification
Message:*



[Recherche avancée]



Sujets récemment répondus
Forums Sujets Réponses Lus Dernières contributions
Questions & Réponses Choisir Rendu sur la carte graphique de l'ordinateur 2 51 Aujourd'hui 16:28:34
masje 
Questions & Réponses Extrusion régulière sur plusieurs angles ?    [1][2] 12 144 Aujourd'hui 15:37:27
Fracoris 
Questions & Réponses Impossible de faire un bevel regulier 5 98 Aujourd'hui 15:13:15
Eleonor-e 
Questions & Réponses [non résolu] Des conseils ? 3 76 Aujourd'hui 09:50:49
moonboots 
[WIP] et travaux terminés [WIP] Bataille Navale // Animation 3d    [1][2][3] 24 1801 Hier 22:02:15
Bibi09 
[WIP] et travaux terminés Teeny Tiny - Story 1 93 Hier 21:42:22
Bibi09 
Questions & Réponses des rayures bizzard ? 3 54 Hier 20:52:08
Eleonor-e 
Mes premières images sous Blender (débutants) Les trucs à Élé 6 155 Hier 18:53:11
Eleonor-e 
Questions & Réponses [non résolu] Impossible d'effectuer un boolean sur sculpt 3 70 Hier 15:04:53
busanga 
Questions & Réponses Longueur d'une courbe de béziers ? 3 188 Hier 01:23:27
Eleonor-e 
Questions & Réponses Viewer node ne fonctionne pas 1 80 Hier 01:21:41
Eleonor-e 
Mes premières images sous Blender (débutants) club Blender en collège/lycée    [1][2][3]...[6] 59 24391 10/11 21:05:52
Thewada 
Le coin des geeks config pour projet d'environ 30 000 000 de vertex 3 216 09/11 13:56:22
Bibi09 
The Blender Clan 'tchat Suivez mes périples sur les voies de la création avec Blender, Krita, Inkscape, Unity et d’autres 5 428 08/11 19:45:45
xanatos67 
Questions & Réponses Poils qui pousse à l'origine de l'objet 2 134 08/11 14:18:59
Horemheb 
Questions & Réponses Question sur IvyGen 1 142 08/11 00:41:27
Rimpotche 
Questions & Réponses Les courbes sur 2.8 font planter le programme 4 145 07/11 19:54:38
Rimpotche 
Questions & Réponses [non résolu] Probleme : Bug mode rendu    [1][2] 11 275 07/11 19:15:20
vinceproduc 
Moteur de jeu GameBlender et alternatives [résolu] Programmer un archer à cheval    [1][2][3] 25 730 07/11 15:10:44
Bibi09 
Questions & Réponses [résolu] Fichier.blend1?? 6 195 07/11 10:43:44
Fracoris 

Qui est en ligne
71 utilisateur(s) en ligne (dont 35 sur Forums)

Membre(s): 0
Invité(s): 71


plus...
Nouveaux membres
MazieHealy 12/11/2019
MorrisHens 12/11/2019
21600883 11/11/2019
Eleonor-e 11/11/2019
DAOUDA 8/11/2019

AikonFR
8/11/2019
LouYa9 6/11/2019
nikita182 6/11/2019
parki 6/11/2019
papillon 5/11/2019
Dernier Ajout
2019-11-05 01.JPG

Evènements à venir
Nov 18
Anniversaire de RichDeg
Dec 29
Anniversaire d'ebrain
Jan 11
BUG de Lyon
plus 278 plus d'élément(s)
 Par Mickaël Guédon [ebrain] © 2003-2019 The Blender Clan - hébergé par TuxFamily - Site déclaré à la CNIL sous le numéro 1155445