Retour à l'accueil
Accueil Aide Rechercher Calendrier Identifiez-vous Inscrivez-vous
Bienvenue, Invité. Veuillez vous connecter ou vous inscrire.
Avez-vous perdu votre courriel d'activation?
16 Novembre 2018 à 15:07

Connexion avec identifiant, mot de passe et durée de la session
Règlement | Grades du forum | L'équipe de modération | Album photo | Chat
Rechercher:     avancée
Forums Zelda Solarus  |  Jeux amateurs  |  Tutoriaux  |  Tutoriaux "Développement"  |  Sujet: [Script RGSS] Simulateur de vidéos (par Darth Killer) 0 Membres et 1 Invité sur ce sujet.
Pages: [1] Imprimer
Auteur Sujet: [Script RGSS] Simulateur de vidéos (par Darth Killer)  (Lu 2833 fois)
Couet
Administrateur
Arbre Mojo
*
Hors ligne Hors ligne

Messages: 12 814


Jag är ingen bott


« le: 19 Mars 2006 à 09:56 »

Salut tout le monde ^^

J'ai conçu mon propre simulateur de vidéo pour RGP Maker, bien qu'il en existait un sur Yume Team... Donc autant partager clin d'oeil

Attention, si le codage est plus simple, il peut être plus délicat d'utilisation.

Script RGSS : Simulateur de vidéos

  • Niveau : Expert (4/5)
  • Requis : sait faire des GIFs animés et les décortiquer, sait faire des vidéos.
Citation de: Darth Killer
#========================================
#    Simulateur de cinématiques vidéo par Darth Killer
#========================================

class Anim
  def init(name, pics, sounds, waiters)
    @name = name
    @pics = pics
    @sounds = sounds
    @waiters = waiters
    $pic = Sprite.new
    $pic.x = 320
    $pic.ox = 320
    $pic.y = 240
    $pic.oy = 240
  end
  # Attendre 1/10e de seconde n fois
  def waiter(n)
    i = 0
    while (i < n)
      s = 10 * Time.new.to_f
      t = Time.new.to_f * 100
      d = t-s
      while(d < 1)
        t = Time.new.to_f * 100
        d = t - s
      end
      i += 1
      Graphics.update
    end
  end
  # 2) affichage d'une frame
  def graph_show(name, number)
    $pic.bitmap = Bitmap.new("Graphics/Movies/"+name+number.to_s)
  end
 
  # 3) jouer un son
  def anim_player(name,number)
    Audio.me_play("me", "Audio/me/Movies/"+name+number.to_s,100)
  end

 
  # 4) fonction coordinatrice
  def go
    size = @pics.length
    for i in 0...size
      self.graph_show(@name, @pics.at(i))
      if(@sounds.at(i) != 0)
        self.anim_player(@name,@sounds.at(i))
      end
      self.waiter(@waiters.at(i))
    end
    $pic = Sprite.new
  end
end

Vous devriez mettre ça dans un script avant Main. Je vous conseille de faire un script dédié à tous vos ajouts de petite taille et d'y mettre cette classe parmi les autres trucs présents clin d'oeil

Voici comment l'utiliser :
Faites un script qui contiendra la définition de toutes vos anim (avant Main bien entendu)

Il vous faut préparer une vidéo. Je vous conseille Flash plutôt que Movie Maker à cause de la suite des opération. Cependant on peut y arriver avec les 2 ^^
Pour plus de sûreté, la vidéo doit être consituée d'images 640x480 à fond noir (pour le plein écran centré ^^)

Une fois que votre vidéo est prête (pas enregistrée en format vidéo, ça servira à rien) exporter la bande son dans 1 fichier (WMA ou MP3 sont des formats intéressants) et la partie graphique dans un GIF animé. Puis Ouvrez votre GIF animé avec un logiciel spécialisé (Animation Shop) pour exporter les frames sous forme d'images, mais pensez à noter le nombre de 1/100 de secondes pendant lequel chaque frame s'affiche !

Le plus dur est fait. Maintenant on sauvegarde les images dans Graphics/Movies (à créer) ou un sous-dossier et le fichier son dans Audio/me/Movies ou un sous-dossier (de nom identique à celui du sous dossier de Graphics/Movies). Ces dossiers sont bien sûr à créer. Veuillez à ce que chaque images et le son aie un nom du type zk1.extension où zk est à remplacer par un nom de votre choix et 1 par le numéro de la frame ou du fichier son ^^

Pour la suite de l'explication je prend un exemple où mon film corespond à 4 frames, s'appelle zksample et possède 1 son au début. Chaque frame dure 1 seconde entière, sauf la dernière (moitié plus).
Code:
$zksample = Anim.new("zksample",[1,2,3,4],[1,0,0,0],[10,10,10,15])
le premier tableau [1,2,3,4] contient les numéros des images dans l'odre où elles doivent s'afficher. rien ne vous interdit de changer cet ordre ou de faire des répétitions d'images clin d'oeil
le 2e idem mais pour les sons. Notez que pour ce tableau le chiffre 0 indique au script "ne pas jouer de son". Le son déjà en cours continuera clin d'oeil
Le 3e tableau indique les temps d'attente en 1/100 de seconde. Temps pendant lequel la frame affichée restera affichée, après quoi le script passe à la frame suivante.

Et pour lancer l'anim en question :
Code:
$zksample.go
Voilà.


En lançant une animation de ce type avant le script Main vous pourrez faire ainsi une intro avant l'écran-titre.
En utilisant les insertions de script dans les commandes d'events RPG Maker vous pourrez faire des cinématiques.

Voilà voilà Mister Green
Vu que son utilisation est relativement compliquée n'hésitez pas à m'envoyer des remarque ou question. Mister Green
« Dernière édition: 20 Mars 2006 à 19:12 par Couet » Journalisée


Couet
Administrateur
Arbre Mojo
*
Hors ligne Hors ligne

Messages: 12 814


Jag är ingen bott


« Répondre #1 le: 21 Mars 2006 à 12:32 »

Good niouze : voici une version 1.1

La nouveauté : on peut faire des cinématiques zappables par appui touche !

Script RGSS : Simulateur de vidéos

  • Niveau : Expert (4/5)
  • Requis : sait faire des GIFs animés et les décortiquer, sait faire des vidéos.
Citation de: Darth Killer
#========================================
#    Simulateur de cinématiques vidéo v1.1 par Darth Killer
#========================================

class Anim
  def init(name, pics, sounds, waiters)
    @name = name
    @pics = pics
    @sounds = sounds
    @waiters = waiters
    $pic = Sprite.new
    $pic.x = 320
    $pic.ox = 320
    $pic.y = 240
    $pic.oy = 240
  end
  # Attendre 1/10e de seconde n fois
  def waiter(n)
    i = 0
    while (i < n)
      s = 10 * Time.new.to_f
      t = Time.new.to_f * 100
      d = t-s
      while(d < 1)
        t = Time.new.to_f * 100
        d = t - s
      end
      i += 1
      Graphics.update
      Input.update
    end
  end
  # 2) affichage d'une frame
  def graph_show(name, number)
    $pic.bitmap = Bitmap.new("Graphics/Movies/"+name+number.to_s)
  end
 
  # 3) jouer un son
  def anim_player(name,number)
    Audio.me_play("me", "Audio/me/Movies/"+name+number.to_s,100)
  end

 
  # 4) fonction coordinatrice
  def go
    size = @pics.length
    i = -1
    loop do
      i += 1
      if( (i == size) || (@zappable && (Input.press?(Input::C))))
        break
      end
      self.graph_show(@name, @pics.at(i))
      if(@sounds.at(i) != 0)
        self.anim_player(@name,@sounds.at(i))
      end
      self.waiter(@waiters.at(i))
    end
    $pic = Sprite.new
    Audio.me_stop
  end
end

Vous devriez mettre ça dans un script avant Main. Je vous conseille de faire un script dédié à tous vos ajouts de petite taille et d'y mettre cette classe parmi les autres trucs présents clin d'oeil

Voici comment l'utiliser :
Faites un script qui contiendra la définition de toutes vos anim (avant Main bien entendu)

Il vous faut préparer une vidéo. Je vous conseille Flash plutôt que Movie Maker à cause de la suite des opération. Cependant on peut y arriver avec les 2 ^^
Pour plus de sûreté, la vidéo doit être consituée d'images 640x480 à fond noir (pour le plein écran centré ^^)

Une fois que votre vidéo est prête (pas enregistrée en format vidéo, ça servira à rien) exporter la bande son dans 1 fichier (WMA ou MP3 sont des formats intéressants) et la partie graphique dans un GIF animé. Puis Ouvrez votre GIF animé avec un logiciel spécialisé (Animation Shop) pour exporter les frames sous forme d'images, mais pensez à noter le nombre de 1/100 de secondes pendant lequel chaque frame s'affiche !

Le plus dur est fait. Maintenant on sauvegarde les images dans Graphics/Movies (à créer) ou un sous-dossier et le fichier son dans Audio/me/Movies ou un sous-dossier (de nom identique à celui du sous dossier de Graphics/Movies). Ces dossiers sont bien sûr à créer. Veuillez à ce que chaque images et le son aie un nom du type zk1.extension où zk est à remplacer par un nom de votre choix et 1 par le numéro de la frame ou du fichier son ^^

Pour la suite de l'explication je prend un exemple où mon film corespond à 4 frames, s'appelle zksample et possède 1 son au début. Chaque frame dure 1 seconde entière, sauf la dernière (moitié plus).
Code:
$zksample = Anim.new("zksample",[1,2,3,4],[1,0,0,0],[10,10,10,15],true)
le premier tableau [1,2,3,4] contient les numéros des images dans l'odre où elles doivent s'afficher. rien ne vous interdit de changer cet ordre ou de faire des répétitions d'images clin d'oeil
le 2e idem mais pour les sons. Notez que pour ce tableau le chiffre 0 indique au script "ne pas jouer de son". Le son déjà en cours continuera clin d'oeil
Le 3e tableau indique les temps d'attente en 1/100 de seconde. Temps pendant lequel la frame affichée restera affichée, après quoi le script passe à la frame suivante.
Le dernier élément peut être true ou false et indique si l'animation peut ou non être zappée clin d'oeil

Et pour lancer l'anim en question :
Code:
$zksample.go
Voilà.

le reste ne change pas ^^
Journalisée


Pages: [1] Imprimer 
Forums Zelda Solarus  |  Jeux amateurs  |  Tutoriaux  |  Tutoriaux "Développement"  |  Sujet: [Script RGSS] Simulateur de vidéos (par Darth Killer)
Aller à:  

Propulsé par MySQL Propulsé par PHP Powered by SMF 1.1.20 | SMF © 2006, Simple Machines XHTML 1.0 Transitionnel valide ! CSS valide !
Zelda Solarus 2009Skin par Eidarloy
www.zelda-solarus.com