PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Skipfunktion / MessageFenster verschieben / Soundeinstellung



Enf0rc3
26.07.2010, 22:00
Und nun auch hier ein Hallo.

Bin derzeit sehr eingerostet in sachen RPG-Maker und muss erstmal meine kleinen Grauenzellen wieder aktiviern *G*.

Für einige Sachen brauch ich allerdings hilfe da ich derzeit allein nicht weiß wie ich das umsetzen soll.

1.

Skipfunktion

Ich bin grade dabei ein Eroge nachzubaun und in fast allen Eroges gibt es eine Skip funktion die denn Text im Spiel durch halten der "STRG" Taste schnell überfliegt bzw einfach schnell durchläuft...

Bsp.

Der Spieler bekommt in seiner Messagebox ungefähr 20 aufeinanderfolgende Nachrichten (Dialog) um sie alle zu lesen braucht er ungefähr 1-2 Min, nun hat der Spieler aber keine Lust diesen Text zu lesen und will die Nachrichten durch halten einer Taste solange Überspringen (sehr schnell) bis er die Taste loslässt.

Wie bau ich sowas im RPGMaker ein?

Hier noch ein Bsp mit nem Video was ich hochgeladen habe...

http://www.youtube.com/watch?v=9wW1p7lNpfk

2.

MessageFenster verschieben

ERLEDIGT

\P[0] Das ist ein Test

Damit spielt er die Nachrichten genau über dem Helden ab, reicht für mich vollkommen
Sagt ansich schon alles aus, wenn ich per Event eine Nachricht ausgebe die im Bottom bereich dargestellt wird, wie krieg ich es hin das die Nachricht noch etwas tiefer angezeigt wird als im Bottom Bereich?
Bsp..

http://s5.directupload.net/images/100726/9fhbi6xt.jpg (http://www.directupload.net)



3.

Soundeinstellung

Möchte in meinen Optionmenü Soundopitonen einbauen, wo der Spieler die Lautstärke von BGM,Soundeffekt,Sprachausgabe reguliern kann. wie baue ich sowas ein?

Um das hier noch etwas genauer zu erklären, bsp ihr seid auf Map 120 mit Musik 12 oder sowas, ihr geht dann ins Optionmenü und wollt die Lautstärke von Musik runterstellen...
Bei der Sprachausgabe ist mein eigentlicher Problem...bsp

Ein Event läuft mit ca 100 nachrichten die alle einzelt durch Sprachausgabe gesprochen werden, wenn der Spieler nun in Option menü geht und will das die Sprachausgabe lauter/leiser eingestellt werden soll, wie stell ich das an? Mir würde nur ne unschöne Variante mit Variablen einfallen

4.

Videos abspielen in FULLSCREEN!

Moin, suche einen Script der auch .avi Files im Fullscreen abspielt ohne das bekannte "Flackern", wenn jemand so einen Script kennt wäre ich ihm ebenfalls dankbar

bluedragon05
19.08.2010, 22:24
Zu 1 und 4 kann ich dir im Moment auf Anhieb leider nichts sagen,
aber zu deinem 3.Problem mit der Lautstärkeregulierung hätte ich eine Idee.

Und zwar kannst die Lautstärke mit einer Variable regulieren, welche du mit Hilfe von Ruby einstellst.

Dazu legst du entsprechend für BGM, BGS, ME(=Musikeffekte) und SE(=Soundeffekte) je eine Instanzvariable in der Klasse Game_System an, welche du z.B. vol_bgm, vol_bgs usw. nennen könntest (vol=volume=Laustärke).
In dieser Klasse befinden sich auch die entsprechenden Methoden, welche zum Abspielen der Musik und Sounds zu ständig sind. Sie enden mit _play(für Abspielen) und beginnen mit den Audiotypen(z.B. bgm_play).
Ich weiß nicht genau, wie du die Lautstärke verwalten willst, aber eine Idee -von der ich hier mal ausgehe, lässt sich leicht abändern ;)- ist die, dass du in deinen Variablen Werte von 0 bis 100 speicherst, welche die relative Lautstärke in Prozent darstellen. Die Methoden, die ich vorhin erwähnt habe, bekommen als Parameter bgm.volume (bzw. bgs/me/se.volume), welche die mit den Reglern im rpg-maker xp eingestellte Lautstärke darstellt.
Wird z.B. in deiner Variable vol_bgm 40% eingestellt, so soll die Musik nur mit 40% der voreingestellten Lautstärke abgespielt werden. Also ziehst du von diesem Parameter die Differenz von 60% ab. Algemein also: bgm.volume-(100-vol_bgm).
Desweiteren muss die Variable zu Beginn des Spiels unter initialize mit 100 initialisiert werden.
Ich habe mal einen Codeauschnitt der Klasse hier angehängt, in welchem die Änderungen fett dargestellt sind. Wie bei bgm_play muss auch bei bgs_play, me_play und se_play verfahren werden.

class Game_System
#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------
attr_reader :map_interpreter # map event interpreter
attr_reader :battle_interpreter # battle event interpreter
attr_accessor :timer # timer
attr_accessor :timer_working # timer working flag
attr_accessor :save_disabled # save forbidden
attr_accessor :menu_disabled # menu forbidden
attr_accessor :encounter_disabled # encounter forbidden
attr_accessor :message_position # text option: positioning
attr_accessor :message_frame # text option: window frame
attr_accessor :save_count # save count
attr_accessor :magic_number # magic number

attr_accessor :vol_bgm # Lautstärke für BGM
#--------------------------------------------------------------------------
# * Object Initialization
#--------------------------------------------------------------------------
def initialize
@map_interpreter = Interpreter.new(0, true)
@battle_interpreter = Interpreter.new(0, false)
@timer = 0
@timer_working = false
@save_disabled = false
@menu_disabled = false
@encounter_disabled = false
@message_position = 2
@message_frame = 0
@save_count = 0
@magic_number = 0

@vol_bgm = 100 # Standard-Lautstärke für BGM ist 100%
end
#--------------------------------------------------------------------------
# * Play Background Music
# bgm : background music to be played
#--------------------------------------------------------------------------
def bgm_play(bgm)
@playing_bgm = bgm
if bgm != nil and bgm.name != ""
Audio.bgm_play("Audio/BGM/" + bgm.name, bgm.volume-(100-vol_bgm), bgm.pitch)
else
Audio.bgm_stop
end
Graphics.frame_reset
end
#Rest der Klasse Game_System
end
Wenn du nun über ein (Common-)Event darauf zugreifen willst, so wählst du den Script-Befehl (3.Seite) aus und gibst folgendes ein:

$game_system.vol_bgm = wert
wert ersetzt du durch einen Wert deiner Wahl. Möchtest du die Variable erhöhen oder erniedrigen, so ersetzt du das "=" durch ein "+="(erhöhen) oder durch ein "-="(erniedrigen). Analog geht das für BGS,ME und SE.
So könntest du auch in deinem Soundmenü die Lautstärke regulieren.

Mit der Sprachausgabe ist etwas kniffliger. Ich vermute mal, du möchtest diese als Soundeffekt (SE) abspielen, aber über einen Extra-Lautstärkeregler einstellen, oder? Mir fällt da im Moment auf Anhieb nur die Idee ein, auch hierfür eine Variable z.B. mit Namen sprachausgabe zu machen, allerdings unter Game_Temp (analog zu bgm&Co) und diese unter initialisize von Game_Temp auf false zu setzen. Sobald du dann in einem Event einen Soundeffekt mit Sprachausgabe abspielen möchtest, markierst du ihn im Script-Befehl mit $game_temp.sprachausgabe = true als Sprachausgabe. Nach dem Abspielen machst du das gleiche per Script-Befehl, nur dass du anstelle von true die Variable auf false setzt.
Unter Game_System ersetzt du die Methode se_play(se) durch

def se_play(se)
if se != nil and se.name != ""
if $game_temp.sprachausgabe == true
Audio.se_play("Audio/SE/" + se.name, se.volume-(100-vol_sprache), se.pitch)
else
Audio.se_play("Audio/SE/" + se.name, se.volume-(100-vol_se), se.pitch)
end
end
Die Variable vol_sprache legst du analog zu bgm_vol unter Game_System an. Wie du siehst ist hierbei auch vol_se (ebenfalls vorher wie bgm_vol anzulegen) mit drinne.
Wenn die Sprachausgabe nun aktiviert(=true) ist, so wird auf die Lautstärke für die Sprachausgabe zugegriffen, ansonsten(=false= wird auf die Laustärke für die restlichen SE zugegriffen.
Ob das mit der Sprachausgabe klappt, habe ich jetzt nicht getestet. Aber das andere müsste gehen.

Ich hoffe, ich konnte dir hiermit helfen. Ist jetzt ein wenig lang geworden, aber eigentlich sind das wenige Änderungen. ;)