Aller au contenu


Fondu entre schockwave 3D


  • Vous ne pouvez pas répondre à ce sujet
14 réponses à ce sujet

#1 olihya

    Ceinture Jaune

  • Members
  • 28 messages

Posté 29 juillet 2009 - 09:10

Bonjour,
J'ai 2 niveaux de jeux sur 2 scènes Schockwave 3D.
Y a t il une solution pour enchainer ces 2 scenes Schockwave 3D d'une manière fluide icon_question.gif
Peut-être avec un fondu ou une transition icon_question.gif
Comment faire icon_question.gif
Bonne journée.

#2 glurp

    Modérateur

  • Moderateur
  • 1 249 messages

Posté 29 juillet 2009 - 10:03

Hello olihya,

Il y a peut-être moyen d'effectuer un fondu entre les deux en désactivant leur DTS et en manipulant leur blend (transparence)...
icon_arrow.gif Mais pour moi le meilleure moyen reste d'utiliser une capture d'écran sur la première scène que tu appliques comme une texture en overlay (avant plan) sur la deuxième icon_wink.gif

#3 olihya

    Ceinture Jaune

  • Members
  • 28 messages

Posté 30 juillet 2009 - 09:00

Citation (glurp @ Jul 29 2009, 11:03 PM)
Hello olihya,

Il y a peut-être moyen d'effectuer un fondu entre les deux en désactivant leur DTS et en manipulant leur blend (transparence)...
icon_arrow.gif Mais pour moi le meilleure moyen reste d'utiliser une capture d'écran sur la première scène que tu appliques comme une texture en overlay (avant plan) sur la deuxième icon_wink.gif


Merci Glurp,
Très bonne idée pour la capture d'écran.
J'avais mis un ecran "loading" entre les 2 scenes 3D mais avec la capture d'ecran je pense que cela peut faire son effet.
Je vais tester ça.
Bonne journée. icon_mrgreen.gif

#4 onelsonic

    Ceinture Verte

  • Members
  • 50 messages

Posté 31 juillet 2009 - 01:53

Humbles salutations gourou.gif

Chez moi,
quand c'est pour du web le fait de désactiver le DTS du sprite 3D ne fonctionne pas icon_rolleyes.gif
C'est pareil pour vous?? Est-ce que cela marche uniquement en standalone local???

Sinon si je veux recourir à une capture d'écran, comme j'utilise plusieurs cameras synchronisés pour mon sprite 3D,
mes cameras se déplacent au même rythme et chaque caméra affiche un groupe d'objet différent, du coup quand je récupère l'image de mon sprite 3D cela me renvoi uniquement l'image de la 1ère camera avec du fond noir, et pas moyen de récupérer ce qui s'affiche réellement à l'écran.

Y'a t-il un solution pour faire une vrai capture d'écran, sans passer par un Xtra car c'est pour du web icon_cry.gif

Modifié par onelsonic, 31 juillet 2009 - 01:53 .


#5 glurp

    Modérateur

  • Moderateur
  • 1 249 messages

Posté 31 juillet 2009 - 02:28

Hello onelsonic,

Bizarre que le DTS ne fonctionne pas, je n'ai jamais eu ce problème.
Pour faire une capture d'écran "générale" tu peux capturer l'image du stage ; (the stage).image ou _stage.image

#6 Alexx

    Ceinture Noire

  • Members
  • 343 messages

Posté 01 août 2009 - 07:56

heuuu, pourquoi vous cherchez toujours des solutions compliquées icon_mrgreen.gif

les acteurs 3D ont une propriété image qui permet de récupérer ce qui est actuellement affiché
il suffit de modifier également la propriété defaultrect de l'acteur 3D pour qu'elle coïncide avec les dimensions du sprite 3D afin d'obtenir l'image qui va bien

ensuite le fondu pourra être fait avec deux simples images, avant de repasser au nouvel acteur 3D

par contre, s'il faut faire le fondu pendant que ça bouge... là ça va être un poil plus chaud d'avoir un truc fluide wink.gif

#7 onelsonic

    Ceinture Verte

  • Members
  • 50 messages

Posté 02 août 2009 - 03:58

Hello
Je viens de faire quelques tests : dont voici le code :

Lingo


sprite(1).directToStage=FALSE
updatestage()
--_movie.stage.defaultRect=rect(0,0,800,600)
--put (the stage).rect
bobImage=image(800,600,32)
bobImage.copyPixels((the stage).image,rect(0,0,800,600),rect(0,0,800,600))
member("bob").image=bobImage

J'arrive maintenant à faire un "speudo" screenshot mais... après avoir mis mon sprite en DTS avec cette command : sprite(1).directToStage=FALSE

Mon rendu passe en mode software icon_neutral.gif
Donc le screenshot est bien là mais le rendu est pas top du tout icon_neutral.gif
vous avez une méthode pour faire un screenshot en OpenGL ou DirectX, sans Xtra ??

#8 Alexx

    Ceinture Noire

  • Members
  • 343 messages

Posté 02 août 2009 - 05:30

Citation (onelsonic @ Aug 2 2009, 05:58 PM)
vous avez une méthode pour faire un screenshot en OpenGL ou DirectX, sans Xtra ??



bah tu lis ma réponse juste avant ton dernier post et t'auras la solution ^^

sinon, pour info, pour ton code précédent, tu peux faire comme ça :

Lingo


member("bob").image = (the stage).image.crop(rect(0,0,800,600))

ça évite de créer une variable pour rien wink.gif

et donc, pour que ça marche direct sans bidouiller le dts :

Lingo

sprite(1).member.defaultRect = rect(0,0,800,600)
member("bob").image = sprite(1).member.image

vlà

Modifié par Alexx, 02 août 2009 - 05:33 .


#9 onelsonic

    Ceinture Verte

  • Members
  • 50 messages

Posté 03 août 2009 - 10:18

Citation (Alexx @ Aug 2 2009, 06:30 PM)

Lingo


sprite(1).member.defaultRect = rect(0,0,800,600)
member("bob").image = sprite(1).member.image


icon_neutral.gif Retour à la case départ, j'utilise plusieurs cameras pour mon sprite 3D et avec ta méthode, il m'est renvoyé que l'image de la camera par défaut avec un fond noir.

#10 onelsonic

    Ceinture Verte

  • Members
  • 50 messages

Posté 03 août 2009 - 10:49

Je résume :

1/ si je prend l'image du stage avec le DTS activé (TRUE)

Lingo


member("bob").image=_movie.stage.image
cela renvoi une image vide avec juste la couleur de background de ma movie

2/pour réccupérer l'image de screenshot via le stage je doit :
d'abord mettre le DTS de mon sprite 3D à FALSE et faire un updatestage

Lingo


sprite(1).directToStage=FALSE
updatestage()
member("bob").image=_movie.stage.image
cela renvoit une belle image en rendu mode SOFTWARE icon_rolleyes.gif

3/si je vais chercher directement l'image du 3D member

Lingo


member("bob").image=sprite(1).member.image
La j'ai une capture de l'image de la caméra par défaut(en Mode SOFTWARE icon_mad.gif ) avec un fond noir et pas le rendu de toutes les caméras actives.

Si vous avez une solution icon_neutral.gif je suis preneur

#11 glurp

    Modérateur

  • Moderateur
  • 1 249 messages

Posté 03 août 2009 - 02:31

Salut,

Je ne sais pas si j'ai bien saisi le problème, mais je confirme que si tu as plusieurs sprites 3d les uns à côté des autres sur ton stage et que tu veux faire une capture de toutes ces "caméras", désactiver tous les DTS et récupérer le _movie.stage.image est LA solution...

Décris peut-être un peu mieux ton idée... Tu veux capturer le rendu de plusieurs caméras, mais ces caméras sont-elles des sprites à part entière ou as-tu fait du multi-caméra ?

Pour info, c'est normal que la resource image de l'acteur (sprite(x).member.image) soit la caméra par défaut, car c'est sur le sprite que la caméra est définie (sprite(x).camera = member(x).camera[2]) et non sur l'acteur... member(x).image renvoit donc à la première caméra.

#12 onelsonic

    Ceinture Verte

  • Members
  • 50 messages

Posté 03 août 2009 - 06:59

Je fait du multicaméras:
J'ai un seul et unique sprite 3D
j'ai plusieurs cameras, pour chaque camera j'ai définit le rootNode comme étant un groupe comme suit :
camera2=scene.newCamera("cameraNo2")
camera2.rootNode=scene.newGroup("bg")
J'ai en tout 4,5 cameras.
Et donc quand je fait un
member("bob").image=sprite(1).member.image
Le member me renvoi une capture en mode software du groupe d'objet attaché à ma camera pas défaut, les objets du groupe en question s'affichent donc et là où il y en a pas j'ai un fond noir icon_neutral.gif
Voiloo sinon la méthode de desactiver le DTS me donne des screenshot tout pixelisés en Mode software donc pas cool.

Vous avez une idée pour faire un beau screenshot en 32bit couleur > OpenGL ou DirectX donc et qui support le multicaméra sans Xtra???

Modifié par onelsonic, 03 août 2009 - 07:00 .


#13 glurp

    Modérateur

  • Moderateur
  • 1 249 messages

Posté 03 août 2009 - 07:32

Citation (onelsonic @ Aug 3 2009, 08:59 PM)
Vous avez une idée pour faire un beau screenshot en 32bit couleur > OpenGL ou DirectX donc et qui support le multicaméra sans Xtra???

Ok, j'ai enfin saisi la question icon_biggrin.gif
Hélas, la réponse est non...
Car tu n'as pas accès à l'image rendue en DTS (c'est directX ou openGL qui gère l'image finale et on y a pas accès sous director).

Mais pourquoi ne pas utiliser un Xtra comme ScrnXtra ?



#14 onelsonic

    Ceinture Verte

  • Members
  • 50 messages

Posté 09 août 2009 - 12:33

Citation (glurp @ Aug 3 2009, 08:32 PM)
Mais pourquoi ne pas utiliser un Xtra comme ScrnXtra ?


Je fais du shockwave pour le web uniquement je suis donc par nature assez réticent envers toute forme d'Xtra qui demande des trucs à installer (des clics utilisateurs, des fenêtres pop-up en plus et tralala...)

J'ai cependant tenté le coup... bandit.gif
ma fonction SceenToMember() marche très bien en local (après avoir manuellement copié l'Xtra dans le dossier d'installation de director)

L'Xtra est bien ajouté dans la movie, sur mon ftp dans le dossier où se trouve mon dcr j'ai créer un dossier Xtra et j'ai mis dedans le fichier ScrnXtra.x32, et comme je le redoutais ça marche pas.
Erreur Shockwave icon_cry.gif

J'aime director mais je trouve que faire un truc simple et de plus en plus compliqué à réaliser je sait pas pour vous.
(entre esquiver les bugs internes, débugger les dcr online à la main...)

Ce que je veux faire tient en 27 lignes de code avec unity... ça devient désespérant icon_neutral.gif
http://unity3d.com/support/documentation/S...ncodeToPNG.html

Je cherche à faire un screenshot de mon dcr 3D et copier l'image obtenue sur le server local.
j'ai pas de problème pour mettre une image que j'encode en png sur le serveur depuis director mais IMPOSSIBLE de faire le screenshot depuis OpenGL ou DirectX, sur du online....

Pourquoi faire simple quand on peut faire compliqué, sinon on peut imaginé faire du lancer de rayon et récupérer chaque valeur de couleur pour les pixels...??
HELP

Modifié par onelsonic, 09 août 2009 - 12:34 .


#15 glurp

    Modérateur

  • Moderateur
  • 1 249 messages

Posté 10 août 2009 - 07:27

Citation (onelsonic @ Aug 9 2009, 02:33 PM)
sinon on peut imaginé faire du lancer de rayon et récupérer chaque valeur de couleur pour les pixels...??


Au mieux tu parviendras à faire un rendu software icon_confused.gif
Donc soit tu te contentes d'un screenshot software, soit tu te mets en quête d'un xtra shockwave safe qui te permet de faire un screenshot (il y a en sûrement, moi je conseille tjs screenxtra parce qu'il fonctionne bien en local et qu'il est gratuit)...

Modifié par glurp, 10 août 2009 - 07:27 .






1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS - Tel. 0826 466 613 - Fax. 01 72 70 31 38

FFP