1

Freitag, 30. Januar 2015, 15:10

Script für ein Video im Hintergrund vom Titelbildschirm

Hallo, wie die Überschrift schon sagt suche ich nach einem Script mit dem ich ein Video oder mehrere Bilder nacheinander im Titelbildschirm (Hintergrund) laufen lassen kann, während man im Vordergrund "Neues Spiel", "Spiel Laden" usw. anwählen kann. Ich bin bereits auf eine Seite gestoßen, weiß aber nicht ob es damit umsetzbar ist:

EST - SOV Video Player ++ Script Conversion v 1.4 - Completed Ace Scripts - RPG Maker VX Ace Forums

Danke für eure Hilfe im voraus ;)

2

Samstag, 31. Januar 2015, 22:28

Dein Skript hat ein Problem - es ist nicht möglich, über das abgespielte Video noch etwas drüber zu legen, da dieses nicht vom RGSS komplett verwaltet und auch nicht vom RGSS auf den Bildschirm gezeichnet wird.
Wechselnde Bilder im Hintergrund zu zeigen ist aber kein Problem - wenn Du nicht mehr als ein paar Bilder da drin haben möchtest wird auch das Projekt nicht zu groß. Was genau würdest Du dir denn wünschen, wenn es zwar kein Film mit 24 Bildern pro Sekunde seien kann, aber schon sowas in Richtung Diashow?

3

Samstag, 31. Januar 2015, 23:11

Ja, eine Diashow wäre auch super, mit ca. 15-20 verschiedenen Bildern die nacheinander angezeigt werden. Aber wie gehe ich das an? Ohne Script ist das nicht umsetzbar, oder? Und dann gibt es ja auch ein Maximum an Bildern die man im Material-Manager einfügen kann, das sind 99 oder? weil bei meinem Projekt sehr viel mit Bildern gearbeitet wird. Würden diese Bilder vom Titelbildschirm dann mit unter die Begrenzung fallen? ;)

4

Samstag, 31. Januar 2015, 23:35

Diese Beschränkung ist mir neu - ansonsten kopier die Bilder doch per Hand in den entsprechenden Ordner. ;)

Ich kann mich da demnächst dransetzen. Hast Du irgendwelche Extrawünsche? Würde sonst Background1 mit der Diashow ersetzen, dass Du noch einen Rahmen drüber legen kannst und sonst nicht viel dazu machen. Wie möchtest Du festlegen, welche Bilder zu verwenden sind? Einfach eine Liste am Anfang des Quellcodes á la ['Bild1.png', 'Morphi.png', 'Hero.png'] oder lieber alle Bilder in Ordner "/System/Start/"? Oder was ganz anderes?

5

Samstag, 31. Januar 2015, 23:50

Ehrlich?! Aber nur wenn es nicht zu viel Arbeit macht, und du kannst dir auch zeit lassen so lange du möchtest. Dann sage ich schon mal vielen dank für die Hilfe.
Eine Liste wäre am besten, dann gebe ich die Namen ein und fertig^^ Extrawünsche hab ich eigentlich nicht. Wie funktioniert denn dann das mit den Zeitabständen? Kann man die einstellen wie lange es dauern soll bis ein neues Bild kommt? Und kann man auch Bilder von oben oder Unten ins Bild kommen lassen? Oder das sie Langsam erst Sichtbar werden? Wie bei einer gewöhnlichen Diashow. Falls das nicht geht, macht auch nix^^ Ich bin schon voll und ganz zufrieden wenn einfach mehrere Bilder nacheinander erscheinen. ;)

6

Sonntag, 1. Februar 2015, 00:06

Hm, an Übergangseffekte habe ich garnicht gedacht. Könnte man wohl einbauen, denke ich. FadeIn, FadeOut, Einfliegen (von Links, Rechts, Oben, Unten) ist alles kein Problem.

Vielleicht sowas dann?

Ruby Quellcode

1
2
3
@dia_list = [ Game_Dia.new( 'Hero.png',    20, :fadeIn ),
              Game_Dia.new( 'Chicken.png', 17, :fromLeft ),
              ...
Um die Einzelbilder zu konfigurieren? (Dateiname, Lebenszeit in Frames, Einblendeffekt)

7

Sonntag, 1. Februar 2015, 00:11

Genau das wäre perfekt! Besser könnte ich es mir nicht vorstellen ;)

8

Sonntag, 1. Februar 2015, 01:52

Na dann. Hier mal der Code. :hi:
Spoiler: Quellcode

:information: Den Quellcode auf einer neuen Skriptseite unter »▼ Materials« einfügen.

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#==============================================================================
# ** Animierter Titelhintergrund
#------------------------------------------------------------------------------
#  Ermöglicht mit einem "Diashow Effekt" mehrere Bilder im Titelmenü zu zeigen.
#  Lege hierfür ab Zeile 30 Dia Einträge an, nach dem Muster
#    ( Dateiname in /Graphics/Title1/, Lebenszeit in Frames, Überblendeffekt )
#  Für letzteres gibt es fünf Optionen:
#    :fadeIn
#    :fromTop
#    :fromLeft
#    :fromBottom
#    :fromRight
#  Die Bilder sollten deckend und so groß wie das Spielfenster seien und
#  werden zwischen Title1 und Title2 angezeigt.
#------------------------------------------------------------------------------
#  Autor: Playm
#  Datum: Jan 2015
#  Maker: RPG Maker VX Ace
#  Einfache Nutzung in nicht-kommerziellen VX Ace Projekten ist gestattet.
#  Keine kommerzielle Nutzung gestattet. Für Lizenzen an den Autor wenden.
#  Keine Weiterverbreitung in originaler oder abgeänderter Form gestattet.
#==============================================================================
# ** Scene_Title
#==============================================================================
class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * 
  #--------------------------------------------------------------------------
  def setup_dialist
    @dia_list = [Game_Dia.new( '1', 80, :fromTop ),
                 Game_Dia.new( '2', 40, :fadeIn ),
                 Game_Dia.new( '3', 40, :fromRight )
                 ]
    @dia_index = 0
    @dia_counter = @dia_list.first.lifetime
  end
  #--------------------------------------------------------------------------
  # * Alias
  #--------------------------------------------------------------------------
  alias_method( :org_create_bg_wo_dia, :create_background )
  alias_method( :org_dispose_bg_wo_dia, :dispose_background )
  #--------------------------------------------------------------------------
  # * Create Background
  #--------------------------------------------------------------------------
  def create_background
    org_create_bg_wo_dia
    setup_dialist
    @spriteset_dia = [ Sprite.new, Sprite.new ]
    @spriteset_dia.first.z = @sprite1.z + 1
    @spriteset_dia.last.z = @sprite1.z + 2
    @sprite2.z = @sprite1.z + 3
    @spriteset_dia.first.bitmap = Cache.title1( @dia_list.first.filename )
  end
  #--------------------------------------------------------------------------
  # * Free Background
  #--------------------------------------------------------------------------
  def dispose_background
    org_dispose_bg_wo_dia
    @spriteset_dia.each{ |sprite| sprite.dispose }
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    super
    update_dia      if @dia_counter > 0
    update_dia_fade if @dia_counter.zero?
  end
  #--------------------------------------------------------------------------
  # * Update Dia
  #--------------------------------------------------------------------------
  def update_dia
    @dia_counter -= 1
    if @dia_counter.zero?
      @dia_index = (@dia_index + 1) % @dia_list.size
      setup_next_dia
    end
  end
  #--------------------------------------------------------------------------
  # * Setup Next Dia
  #--------------------------------------------------------------------------
  def setup_next_dia
    # Standard
    @spriteset_dia.last.x = 0
    @spriteset_dia.last.y = 0
    @spriteset_dia.last.opacity = 255
    @spriteset_dia.last.bitmap= Cache.title1(@dia_list[@dia_index].filename)
    # Diff
    case @dia_list[@dia_index].transition
    when :fromLeft
      @spriteset_dia.last.x = -Graphics.width
    when :fromRight
      @spriteset_dia.last.x = Graphics.width
    when :fromTop
      @spriteset_dia.last.y = -Graphics.height
    when :fromBottom
      @spriteset_dia.last.y = Graphics.height
    when :fadeIn
      @spriteset_dia.last.opacity = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Update Dia Transition
  #--------------------------------------------------------------------------
  def update_dia_fade
    case @dia_list[@dia_index].transition
    when :fadeIn
      @spriteset_dia.last.opacity += 26
      swap_dia if @spriteset_dia.last.opacity == 255
    when :fromLeft
      @spriteset_dia.last.x += Graphics.width / 10
      @spriteset_dia.last.x = 0 if @spriteset_dia.last.x > 0
      swap_dia if @spriteset_dia.last.x == 0
    when :fromRight
      @spriteset_dia.last.x -= Graphics.width / 10
      @spriteset_dia.last.x = 0 if @spriteset_dia.last.x < 0
      swap_dia if @spriteset_dia.last.x == 0
    when :fromTop
      @spriteset_dia.last.y += Graphics.height / 10
      @spriteset_dia.last.y = 0 if @spriteset_dia.last.y > 0
      swap_dia if @spriteset_dia.last.y == 0
    when :fromBottom
      @spriteset_dia.last.y -= Graphics.height / 10
      @spriteset_dia.last.y = 0 if @spriteset_dia.last.y < 0
      swap_dia if @spriteset_dia.last.y == 0
    end
  end
  #--------------------------------------------------------------------------
  # * Swap Dia
  #--------------------------------------------------------------------------
  def swap_dia
    @spriteset_dia.reverse!
    @spriteset_dia.first.z = @sprite1.z + 1
    @spriteset_dia.last.z  = @sprite1.z + 2
    @spriteset_dia.last.opacity = 0
    @dia_counter = @dia_list[@dia_index].lifetime
  end
end
#==============================================================================
# ** Game_Dia Struct
#==============================================================================
Game_Dia = Struct.new( :filename, :lifetime, :transition )
zum Lesen den Text mit der Maus markieren


Viel Erfolg mit deinem Projekt und ein schönes Wochenende.

9

Sonntag, 1. Februar 2015, 13:22

Vielen dank, das ging schnell^^ habe nur noch ein kleines Problem. Bekomme beim Starten die Fehlermeldung für Zeile 40.
Wenn ich das richtig verstehe, muss ich einen Ordner mit "Title1" in Graphics erstellen und die Titelbilder dort einfügen, oder?
Oder liegt es am VX? Sorry hab vergessen zu sagen das ich den VX nutze......nicht Ace. Müsste doch aber trotzdem gehen, oder?
Mir sagen nur diese in Rot geschriebenen Wörter nichts, kann der VX das lesen?

10

Sonntag, 1. Februar 2015, 16:16

Ach, das ist hier das VX-Unterforum? Upps D:

Aber keine Sorge, das Skript lässt sich schnell portieren:
Spoiler

:information: Den Quellcode auf einer neuen Skriptseite unter »▼ Materials« einfügen.

Ruby Quellcode

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#==============================================================================
# ** Animierter Titelhintergrund
#------------------------------------------------------------------------------
#  Ermöglicht mit einem "Diashow Effekt" mehrere Bilder im Titelmenü zu zeigen.
#  Lege hierfür ab Zeile 30 Dia Einträge an, nach dem Muster
#    ( Dateiname in /Graphics/System/, Lebenszeit in Frames, Überblendeffekt )
#  Für letzteres gibt es fünf Optionen:
#    :fadeIn
#    :fromTop
#    :fromLeft
#    :fromBottom
#    :fromRight
#  Die Bilder sollten deckend und so groß wie das Spielfenster seien und
#  werden unter der Titlegrafik gezeigt.
#------------------------------------------------------------------------------
#  Autor: Playm
#  Datum: Jan 2015
#  Maker: RPG Maker VX
#  Einfache Nutzung in nicht-kommerziellen  RMVX  Projekten ist gestattet.
#  Keine kommerzielle Nutzung gestattet. Für Lizenzen an den Autor wenden.
#  Keine Weiterverbreitung in originaler oder abgeänderter Form gestattet.
#==============================================================================
# ** Scene_Title
#==============================================================================
class Scene_Title < Scene_Base
  #--------------------------------------------------------------------------
  # * Lege hier alle Einzelbilder fest.
  #--------------------------------------------------------------------------
  def setup_dialist
    @dia_list = [Game_Dia.new( '1', 80, :fromTop ),
                 Game_Dia.new( '2', 40, :fadeIn ),
                 Game_Dia.new( '3', 40, :fromRight )
                 ]
    @dia_index = 0
    @dia_counter = @dia_list.first.lifetime
  end
  #--------------------------------------------------------------------------
  # * Alias
  #--------------------------------------------------------------------------
  alias_method( :org_create_bg_wo_dia, :create_title_graphic )
  alias_method( :org_dispose_bg_wo_dia, :dispose_title_graphic )
  alias_method( :org_update_wo_dia, :update )
  #--------------------------------------------------------------------------
  # * Create Background
  #--------------------------------------------------------------------------
  def create_title_graphic
    org_create_bg_wo_dia
    setup_dialist
    @spriteset_dia = [ Sprite.new, Sprite.new ]
    @spriteset_dia.first.z = @sprite.z - 2
    @spriteset_dia.last.z = @sprite.z - 1
    @spriteset_dia.first.bitmap = Cache.system( @dia_list.first.filename )
  end
  #--------------------------------------------------------------------------
  # * Free Background
  #--------------------------------------------------------------------------
  def dispose_title_graphic
    org_dispose_bg_wo_dia
    @spriteset_dia.each{ |sprite| sprite.dispose }
  end
  #--------------------------------------------------------------------------
  # * Frame Update
  #--------------------------------------------------------------------------
  def update
    org_update_wo_dia
    update_dia      if @dia_counter > 0
    update_dia_fade if @dia_counter.zero?
  end
  #--------------------------------------------------------------------------
  # * Update Dia
  #--------------------------------------------------------------------------
  def update_dia
    @dia_counter -= 1
    if @dia_counter.zero?
      @dia_index = (@dia_index + 1) % @dia_list.size
      setup_next_dia
    end
  end
  #--------------------------------------------------------------------------
  # * Setup Next Dia
  #--------------------------------------------------------------------------
  def setup_next_dia
    # Standard
    @spriteset_dia.last.x = 0
    @spriteset_dia.last.y = 0
    @spriteset_dia.last.opacity = 255
    @spriteset_dia.last.bitmap= Cache.system(@dia_list[@dia_index].filename)
    # Diff
    case @dia_list[@dia_index].transition
    when :fromLeft
      @spriteset_dia.last.x = -Graphics.width
    when :fromRight
      @spriteset_dia.last.x = Graphics.width
    when :fromTop
      @spriteset_dia.last.y = -Graphics.height
    when :fromBottom
      @spriteset_dia.last.y = Graphics.height
    when :fadeIn
      @spriteset_dia.last.opacity = 0
    end
  end
  #--------------------------------------------------------------------------
  # * Update Dia Transition
  #--------------------------------------------------------------------------
  def update_dia_fade
    case @dia_list[@dia_index].transition
    when :fadeIn
      @spriteset_dia.last.opacity += 26
      swap_dia if @spriteset_dia.last.opacity == 255
    when :fromLeft
      @spriteset_dia.last.x += Graphics.width / 10
      @spriteset_dia.last.x = 0 if @spriteset_dia.last.x > 0
      swap_dia if @spriteset_dia.last.x == 0
    when :fromRight
      @spriteset_dia.last.x -= Graphics.width / 10
      @spriteset_dia.last.x = 0 if @spriteset_dia.last.x < 0
      swap_dia if @spriteset_dia.last.x == 0
    when :fromTop
      @spriteset_dia.last.y += Graphics.height / 10
      @spriteset_dia.last.y = 0 if @spriteset_dia.last.y > 0
      swap_dia if @spriteset_dia.last.y == 0
    when :fromBottom
      @spriteset_dia.last.y -= Graphics.height / 10
      @spriteset_dia.last.y = 0 if @spriteset_dia.last.y < 0
      swap_dia if @spriteset_dia.last.y == 0
    end
  end
  #--------------------------------------------------------------------------
  # * Swap Dia
  #--------------------------------------------------------------------------
  def swap_dia
    @spriteset_dia.reverse!
    @spriteset_dia.first.z = @sprite.z - 2
    @spriteset_dia.last.z  = @sprite.z - 1
    @spriteset_dia.last.opacity = 0
    @dia_counter = @dia_list[@dia_index].lifetime
  end
end
#==============================================================================
# ** Game_Dia Struct
#==============================================================================
Game_Dia = Struct.new( :filename, :lifetime, :transition )

zum Lesen den Text mit der Maus markieren


Zitat

Wenn ich das richtig verstehe, muss ich einen Ordner mit "Title1" in Graphics erstellen und die Titelbilder dort einfügen, oder?
Oder liegt es am VX?
Ne, im Ace gibt es diesen Ordner schon. Habe jetzt das Skript für den VX angepasst - die Bilder müssen jetzt in Graphics/System/ liegen, wo auch dein Title liegt. Übrigens: Der Title sollte deaktiviert oder mit transparenz ausgestattet werden, da die Diashow unter dem Title liegt - das habe ich deswegen so gemacht, damit Du mit dem Title einen einheitlichen Rahmen über die Show legen kannst, wenn Du das möchtest.

Zitat

Mir sagen nur diese in Rot geschriebenen Wörter nichts, kann der VX das lesen?
Du meinst die Symbole wie :fromLeft? Ja, die versteht der Maker. Die Symbole die ich verwende um dem Maker zu sagen welchen Effekt ich denn jetzt möchte sind sowas wie IDs, nur das man sie besser lesen und verstehen kann, als wenn ich dafür Zahlenkonstanten benutze.

Zitat

Bekomme beim Starten die Fehlermeldung für Zeile 40.
Probier mal die Version für den VX aus. Wenn immernoch Fehler kommen (habe das Skript so Pi mal Daumen portiert, habe den VX gerade nicht installiert), bräuchte ich den genauen Text - Du kannst mit Strg+C den Inhalt einer Fehlermeldungsbox in die Zwischenablage kopieren.

11

Sonntag, 1. Februar 2015, 16:40

Einfach genial, Ich kann gar nicht sagen wie dankbar ich bin, jetzt macht der Titel echt was her.....zumindest wenn ich jetzt ein bischen dran gebastelt habe^^
Vielen vielen Dank ;) läuft einwandfrei

Motto: So lasset uns kein Trübsal sinnieren und gar königlich dinieren!

  • Nachricht senden

12

Donnerstag, 5. März 2015, 12:42

Kann mir jemand ein Beispiel dafür zeigen?
Mir werden nur die ersten 2 Bilder gezeigt und dann stoppt alles.
Scheint ja angeblich irgendwie zu funktionieren.
Benutze die VX-Version.
  • :cake: So lasset uns beginnen! :new:

    • Ein Abenteuer, wie du es noch nie erlebt hast!
      Tauche ein in die wunderbare Welt des Königs und erlebe auf deiner Reise die verrücktesten Dinge!
      NICHT MEHR LANGE! :navigation-right: Hier gibt es weitere Informationen! :navigation-left:
    • Jetzt die Demo herunterladen!
      Bild
      Euch erwartet eine Welt, wie sie nur ein exzentrischer König veralbern könnte...
    • Titelbild
      Bild
  • :fires: XBOX 360 Bild

    Bild
  • :new: Avatar im Großformat

    Bild

13

Donnerstag, 5. März 2015, 22:05

Inwieweit stoppt alles? Hängt sich der RGSS Player auf?

Kannst Du uns mal zeigen, wie deine Einstellungen aussehen? Also alles was Du hier eingetragen hast:

Ruby Quellcode

26
27
28
29
30
31
32
33
34
35
36
  #--------------------------------------------------------------------------
  # * Lege hier alle Einzelbilder fest.
  #--------------------------------------------------------------------------
  def setup_dialist
    @dia_list = [Game_Dia.new( '1', 80, :fromTop ),
                 Game_Dia.new( '2', 40, :fadeIn ),
                 Game_Dia.new( '3', 40, :fromRight )
                 ]
    @dia_index = 0
    @dia_counter = @dia_list.first.lifetime
  end

Motto: So lasset uns kein Trübsal sinnieren und gar königlich dinieren!

  • Nachricht senden

14

Freitag, 6. März 2015, 01:48

Ja, hab es schon gelöst.
Das Problem war, dass es wohl keine Option gab für "nichts tun". Hatte das dritte Attribut weggelassen.

Ruby Quellcode

1
2
3
4
5
6
7
8
@dia_list = [Game_Dia.new('title_text 001', 1, :nothing),
                 Game_Dia.new('title_text 002', 1, :nothing),
                 Game_Dia.new('title_text 003', 1, :nothing),
                 ...
 
    when :nothing
      swap_dia
    end


Oder verstehe ich etwas falsch? :D
So läuft es nämlich bei mir einwandfrei.
  • :cake: So lasset uns beginnen! :new:

    • Ein Abenteuer, wie du es noch nie erlebt hast!
      Tauche ein in die wunderbare Welt des Königs und erlebe auf deiner Reise die verrücktesten Dinge!
      NICHT MEHR LANGE! :navigation-right: Hier gibt es weitere Informationen! :navigation-left:
    • Jetzt die Demo herunterladen!
      Bild
      Euch erwartet eine Welt, wie sie nur ein exzentrischer König veralbern könnte...
    • Titelbild
      Bild
  • :fires: XBOX 360 Bild

    Bild
  • :new: Avatar im Großformat

    Bild

15

Freitag, 6. März 2015, 14:45

Ah, ja es gibt nur diese Überblendeffekte. Ein Überblendeffekt der einfach nur animationslos das Dia wechselt war nicht implementiert.

Dein Edit ist schon richtig, das funktioniert genauso. :thumbsup:
Viel Erfolg mit deinem Projekt.

Motto: So lasset uns kein Trübsal sinnieren und gar königlich dinieren!

  • Nachricht senden

16

Freitag, 6. März 2015, 16:52

Alles klar, danke! :D
  • :cake: So lasset uns beginnen! :new:

    • Ein Abenteuer, wie du es noch nie erlebt hast!
      Tauche ein in die wunderbare Welt des Königs und erlebe auf deiner Reise die verrücktesten Dinge!
      NICHT MEHR LANGE! :navigation-right: Hier gibt es weitere Informationen! :navigation-left:
    • Jetzt die Demo herunterladen!
      Bild
      Euch erwartet eine Welt, wie sie nur ein exzentrischer König veralbern könnte...
    • Titelbild
      Bild
  • :fires: XBOX 360 Bild

    Bild
  • :new: Avatar im Großformat

    Bild

Social Bookmarks