Page 1 of 2

Swf interactif (et pas uniquement un film)

Posted: Fri Jan 09, 2009 12:30 pm
by gui-aum
Bonjour à tous,
une question me tourne dans la tête depuis quelques temps, et après plusieurs heures de recherches, je ne trouve pas de réponse claire (ne serait-ce que possible/pas possible).

Je me demande s'il est possible de diffuser du contenu swf dans modul8, mais en gardant son interactivité (exemple: réactivité à la souris de clips sur la scène, drag & drop…). Pour cela j'imaginais importer un swf dans un quartz composer, mais j'ai l'impression que ce n'est pas possible, malgré des pistes à propos de la multiplication des sources vidéos. Bref, j'imaginais avoir mon swf ouvert sur mon bureau, à côté de Modul8, et qu'une action sur ce swf soit visible dans la compo finale.
Je me disais qu'il existait peut-être un moyen (utopie???) de "router" virtuellement l'affichage du swf vers un port dv ou usb, et ainsi importer le swf via la capture vidéo.

Est ce que ca dit quelque chose à quelqu'un, ce genre de bidouille?
Merci d'avance

Guillaume

Posted: Sat Jan 10, 2009 11:34 am
by sigmasix
salut,
modul8 utilise le plugin swf de safari pour lire les swf, tu dois pouvoir sans autre lire ton swf depuis la mediabank.
Tu semble vouloir modifier ton swf depuis un autre swf, c'est possible en passant par un serveur xml ou un truc du genre, le fait que ton swf soit dans modul8 ne devrait pas rendre plus compliqué l'intéraction entre deux swf distinct.

Posted: Sat Jan 10, 2009 3:10 pm
by gui-aum
Merci de ta réponse,
Avec le fait que les swf soient gérés par le plug-in, je pensais effectivement qu'il serait plus facile de jouer avec les swf.
Mais visiblement, ils sont joués de façon "autonome" dans modul8: le code qui est en rapport avec les objets de la scène fonctionne, mais de simples rollover ou loadMovie, qui font appel à des éléments extérieurs, ici la souris ou un swf externe, ne sont pas pris en compte.
Je sèche un peu, mais peut être qu'une solution serait de faire le pont entre le swf et M8 par l'intermédiaire d'un module (des paramètres midi envoyés au swf, mais je ne sais pas si c'est possible de passer des paramètres à un élément de la mediabank).
Je fondais des espoirs sur quartz composer, ca me semblait assez simple.

(Pour être concret, j'avais envie de profiter de la souplesse de flash pour créer des animations à rubriques, un peu comme un site en entier, qui correspondraient aux différentes pistes du set, ce qui permettrait de changer des arrières plans, de créer des transitions et des choses complexes, tout en les envoyant de manière hyper simples. Une fois ceci intégré dans M8, je pourrais ajouter des calques dessus. Ca mélange à la fois la souplesse et la puissance de flash pour faire des contenus interactif, et l'architecture propre au live de m8. Je ne sais pas si c'est bien clair…)

Je vais continuer de chercher un peu, avec les modules et osc, genre envoyer les coordonnées de la souris au sein d'un module vers le swf.
Je vous tiens au courant en cas de succès.

Posted: Sat Jan 10, 2009 5:29 pm
by zoophar
Hello Gui_aum
Je ne connais pas trop comment flash agit dans Modu8 mais
Tu ne peut effectivement interagir directement avec le .swf par la souris dans la fenêtre de preview...
(si tu essaies un drag/drop, ça déplace tout simplement la fenêtre de preview de M8...

MAIS Je vois que tu t'essaies aussi un peu de .qtz...
Je fondais des espoirs sur quartz composer, ca me semblait assez simple.

oui, tes espoirs ne sont pas vains
tu peut envoyer des messages midi de Modul8 à Quartz Composer

sur le manuel p104, tu trouvera:
modul8.sendMidiMessage(endpoint,channel,message,Controller_Number,Controller_value)


EXEMPLE:
Dans un petit module, j'ai posé un bouton potentiomêtre appellé "sendX".
J'ai définit ses valeurs comme MIN:0 , MAXIMUM:127
(c'est du midi donc ca va de 0 à 127)

et dans le "script", plus précisément dans le "message Event"j'ai ecrit:

Code: Select all

if msg == 'sendX':
   vol= module.getValue('sendX',0)
   modul8.sendMidi(u'Bus 1',1,'CONTROL_CHANGE',1,vol)


voila. M8 envoie un signal midi sur le channel 1...

SUPER, et alors... mon Driver IAC (utilitaires/ Configuration Audio et Midi) est connecté,
j'ai posé un objet midi dans Quartz composer il ne voit rien quand il est chargé dans M8...
oui...il te faut un des excellents patch de kineme.net qui modifie le midi patch de base, pour qu'il fonctionne en mode sécurisé.

Tu copiera ce patch dans: Disque_Mou/Bibliotheque/Graphics/Patches
(si le dossier Patchesn'existe pas, ce qui est surrement le cas, crées le).

En espérant t'avoir permis d'avancer un peu

Posted: Sat Jan 10, 2009 6:36 pm
by gui-aum
Zoophar, merci beaucoup pour cette réponse si détaillée.
C'est effectivement ce genre de business que j'avais en tête…
L'idéal serait de pouvoir intégrer ce swf dans un qtz. Ou de les lier d'un façon ou d'une autre.

Bon, en tout cas, ton coup de main m'épargne déjà pas mal de tâtonnements.
Je vous rendrai quelques comptes, quand j'aurai avancé.

Encore merci, Zoophar et Sigma6 :D

Guillaume

Posted: Sat Jan 10, 2009 6:54 pm
by zoophar
Désolé de te dire ça mais la tu va être le genre de personne qui prends "une ferrari pour aller chercher des oeufs"...

en fait, ce que tu veut faire, c'est partir de Paris pour aller à Rome, en passant par Athènes...
(bon, tu me dira, tous les chemins mènent à Rome ;-) )

oui je sais, je suis arrogant parfois... désolé

quoique si ça marche, je serais vraiment interessé de savoir à quelle vitesse ça tourne...

Moi j'ai une petite machine et de mon coté, Qtz perds pas mal de vitesse de rendu quand il est dans M8...

Posted: Sat Jan 10, 2009 8:40 pm
by gui-aum
J'ai tout à fait conscience de ce que tu racontes, pour une raison simple, c'est que c'est assez vrai.
Qu'est ce qui me pousse à essayer un tel bricolage?
1- l'envie de mixer mes expérimentations Processing et Flash, qui fonctionnent en temps réel et souvent en réaction à des événements extérieurs (souris ou autre), et la souplesse que permettrait M8 pour le diffuser et les travailler avec d'autres matières.
Je trouverais cela assez intéressant de travailler avec des choses plus "imprévisibles" que des boucles vidéos.
D'autre part, cela permettrait de "scénariser" un peu une partie d'un set, d'une façon hyper simple: genre touche 1/chap 1 du flash, touche 2=> transition puis chap 2 du flah… en gros ce que je fais pour mes sites.
Ceci m'amène au point n°2- Je préfère, pour une question de temps, continuer à bricoler mon code avec flash et essayer de faire communiquer avec M8, plutôt que de réapprendre un nouveau soft, ou un nouveau langage. Et puis, j'ai vraiment bcp de plaisir à travailler avec M8. Pas envie de passer à pure data, ou vvvv, ou je ne sais quoi…

Voilà voilà,ca se discute, mais étant plutôt graphiste que VJ, je dois avoir tendance à emprunter des chemins inutilement compliqués…

Et effectivement, tous les chemins mènent à Rome: ce qui est important, c'est le résultat! Pour ca… ca reste à voir…

ciao

G

Posted: Sun Jan 11, 2009 12:47 am
by zoophar
ach... je comprends...
Tu utilises Processing... c'est un tres bon prog et des personnes font choses hallucinantes sont faites avec ce prog (flight 404 entrre autre, et tant d'autres) d'ailleurs, en parlant de flight 404 et du barbarian group, je sais pas si tu as vu mais il y a une interview sur le site...

en faisant un peu de "Kow Fu figthing" de bas étage, je suis tombé sur plainview... un full screen browser, spécialement fabriqué pour des présentations... c'est peut être une solution pour tes swf...

Si tu as deux mac et un boitier analogique (perso', j'aime beaucoup le canopus):
le premier fait tourner tes swf avec plainview. le signal video est récupéré par le boitier qui "l'injecte" dans le deuxieme mac via firewire et M8 le voit comme une "camera DV"

sinon, tu peut toujours rendre les scenes séparément depuis flash (si chaque chap == scene)... et les utiliser comme média indépendant...

Autre soluce:Si tout les chapitres sont mis bout a bout et qu'ils ont la même durée.
J'ai fait un module (disponible dans la librairie de modules M8.)
qui te permet plus simplement de jouer par exemple:
les premiers 25% de tout le media. puis, d'un seul clic, de jouer le deuxième quart du média... puis le dernier quart, et le 3ème quart, c'est toi qui voit... j'avais fait un post à ce sujetil y a un bout de temps...

peut être que ce module t'aidera...

si jamais, n'hésite pas à écrire sur la page du post, comme tu vois, je n'ai pas beaucoup de commentaire et ça aiderait pas mal à améliorer ces modules

ah oui... ce module s'appelle (zr)movie_mod

Posted: Sun Jan 11, 2009 1:36 am
by sigmasix
bon, j'ai pas lu tout en détails, mais je vois que tu utilise processing, tu peux envisager de créer une interface de controle dans processing qui envoie des infos via un xml socket à ton swf. ca te permettrait de le controller à distance tu pourrais contourner modul8!

Posted: Sun Jan 11, 2009 7:14 pm
by gui-aum
Bon, je vais essayer de répondre à tout ça!

En fait, le point de départ de la question était que vu que Modul8 intègre les swf depuis le plugin web, je me disais que l'on était plus bien loin de pouvoir les bidouiller direct dans le soft. Visiblement c'est compliqué que ce que je pensais, mais ca reste intéressant, pour certaines idées que j'ai envie d'essayer.

D'autre part, oui, je connais le boulot de flight 404, et bon, c'est une autre dimension. Et le Barbarian Group, ca ressemble un peu à l'agence de rêve. Un peu comme celle de Karsten Schmidt, postspectacular. En tous cas, j'ai un peu chopé le virus du code avec Processing, et le moins que l'on puisse dire, c'est que pour des gens comme moi qui ont été formés à l'image mais pas à la prog, c'est une porte d'entrée ultra conviviale.
Plainview, effectivement, génial pour des présentations clients. Après, il est facile avec flash de créer des applis fullscreen.

J'ai effectivement pensé hier soir à la solution des deux ordis, et du pontage firewire. Ca, ca marche, c'est sûr. A voir s'il n'y a pas moyen de faire ca de façon logicielle (on économise un ordi, c'est pas rien).

Je vais me pencher sur ton module, mais à priori, justement, chaque "chapitre" aurait une durée indeterminée, puisque calé sur une piste du set du musicien. D'où l'interêt de pouvoir gérer départs et transitions depuis un flash, par exemple.

Enfin sigma, je ne veux pas contourner M8! Pour la diffusion, y'a pas mieux, et je bosse surtout avec des boucles vidéos. L'intégration de flash, c'est pour amener un peu d'interactivité à ce qui se passe... C'est loin d'être indispensable, j'en conviens, mais ca me branche d'essayer.

Plus qu'à trouver du temps.
Merci d'en consacrer à la question, d'ailleurs.

G

Posted: Mon Jan 12, 2009 2:11 am
by sigmasix
salut,
je ne disais pas d'abandonner modul8, mais contourner modul8 pour envoyer des messages à ton swf.

En gros, dans processing tu créé un serveur xml et des actions qui seront envoyées. Dans to nswf, tu te connecte à ton serveur et tu récupère ces actions et en fait ce que tu veux.
Normalement, n'importe ou que tu ouvre ton swf, il devrait se connecter à ton applet, donc, dans modul8 aussi (à tester, et si tu essaie je serais intéressé de savoir si cafonctionne ;) )

Posted: Mon Jan 12, 2009 10:33 am
by gui-aum
ok, effectivement sur le papier ca marche…
C'est encore une autre méthode, mais similaire à celle du module m8 qui envoie des param midi au swf. A voir…
Faut que je fasse des tests, y'a rien de sur dans la mesure ou un loadMovie (charger un autre swf à l'interieur du swf chargé) ne fonctionne pas.
Ca serait intéressant d'avoir une liste des instructions et des classes utilisables dans un swf depuis m8.

Je vous tiens au courant de mes résultats…

Posted: Mon Jan 19, 2009 2:29 am
by gui-aum
Bonsoir, un petit mot pour vous faire part de mon avancement…
J'aperçois une solution, et, oh, joie, elle ne semble pas trop compliquée…
Pour l'instant, je n'en suis qu'à de basiques essais, mais au moins, ça à l'air de marcher.
Ca se présente comme ça:

Modul8+module OSC --> passent des infos OSC à FLOSC --> qui lui-même cause à un XML Socket --> appelé depuis le swf

Tout ce petit monde communique, et quand je bidouille M8, le carre qui est dans le swf réagit. Y compris lorsque ce swf est diffusé. Et c'est Flosc qui fait tout le boulot.

J'essaie de faire un truc un peu générique et je mettrai un zip en ligne.

Ciao

Guillaume

Posted: Mon Jan 19, 2009 11:02 am
by david
Bonjour gui-aum,

gui-aum wrote:y'a rien de sur dans la mesure ou un loadMovie (charger un autre swf à l'interieur du swf chargé) ne fonctionne pas.
Ca serait intéressant d'avoir une liste des instructions et des classes utilisables dans un swf depuis m8.


Pour ce qui est du chargement de fichiers (swf ou autre) depuis un swf ça marche uniquement si on utilise un path absolu :
file:///tmp/toto.swf

On va corriger ça dans une prochaine version.

Effectivement, on ne forwarde pas les événements souris (position, clic), clavier au flash.

A suivre donc.

Posted: Mon Jan 19, 2009 11:19 am
by gui-aum
Bonjour David,
merci pour cette info, c'est très intéressant pour moi!

De mon côté,je vais essayer de créer un module avec un pad qui permettra d'envoyer des coordonnées x et y au swf. Une sorte de trackpad, à distance, pour piloter le flash.

Le fait de ne pas forwarder les événements est somme toute assez logique, cela interfèrerait avec les événements M8. J'imaginais la possibilité d'ouvrir le swf à coté (ou à l'intérieur d'un module, pourquoi pas?), pour intéragir dessus à certains moments du set.
Je ne sais pas si c'est une grosse priorité pour vous… C'est une utilisation peut être marginale. Et le swf est déjà pas mal implanté.

Merci David, et bonne journée

Guillaume