❤ 0
Tutorial fondé et rédigé par Alexandre_Leroy.
Script permettant de réaliser ce tutorial rédigé par Corbaque.
Faire un Custom Title System en Event
/ Table des Matières/
1/Historique
2/Niveau Requit pour le principal de ce tutorial
3/FAQs
4/Matériaux Necessaire à la realisation
5/Variables et Interrupteurs necessairent
6/Scripts à inserer
7/ Votre introduction
8/Apparition des images de l'Ecran Titre
9/Les systems de votre Ecran Titre
10/Autre : Une option Quitter
11/Demo Technique
1/Historique:
- Fondé et rédigé le Samedi 20 Mai 2006
- Re-rédigé le Lundi 08 Janvier 2007
2/Niveau Requit pour le principal de ce tutorial:
Chaque section étant sur un niveau de cinq étoiles * , une étoile correspondant à un niveau de difficulté de facile ( 1 étoile ) à Expérimenté ( 5 étoiles ).
- ( Page 1 ) Condition ***
- ( Page 1 ) Gestion des Interrupteurs ***
- ( Page 1 ) Gestions des Variables ***
- ( Page 1 ) Attendre *
- ( Page 1 ) Modifier l'Equipe *
- ( Page 2 ) Téléporter l'Equipe *
- ( Page 2 ) Afficher une Image *
- ( Page 2 ) Deplacer une Image **
- ( Page 2 ) Effacer une Image *
- ( Page 2 ) Jouer un effet sonore ( SE ) *
Bien sur ses facultés ne sont utiles à connaitre pour faire les bases de l'Ecran Titre, si vous trouviez des choses à rajouter ou une autres façons de faire, cela pourrait peut-être relever plus de sections que je vous ai cité ou un plus grand niveau dans certaines
Legende des Etoiles:
* Du niveau de toutes personnes
** Releve un peu d'attention
*** Avoir déjà utilisé cela est necessaire.
**** Requit un peu de connaissance dans la section.
***** Un niveau très élevé est requit.
3/FAQs:
Qu'est ce que c'est que ce tuto ?
En 1er temps , c'était un script que j'avais trouvé sur le net qui permettait de faire une intro en event avant l'Ecran Titre .
Commentaire : Attention ne vous barrez en courant en disant c'est j'ai comprit parce que vous allez revenir en larme en disant j'ai plein de bug .
A quoi sert t'il ?
Il vous servira (c'est ce que permettait le script qui vous donnait la possibilité mettre une intro en event avant l'Ecran Titre , mais ce qui est interessant dans ce tuto , c'est les possibilité inconnu qu'offre ce script que je vais vous faire découvrir .
Quel intêret de faire un Ecran Titre alors que l'on en a deja un ?
Justement , ce qui est dommage avec quasi tout les projet Rpg Maker , c'est que tout les Ecran Titres sont les mêmes , tous avec un fond joli ou beau et un cadre centré en bas avec les option Nouveau Jeu, Charger Et Quitter , aors qu'avec ce tuto , vous n'aurez aucune limite si ce n'est les chargement et sauvegarde .
Commentaire : Bon je pense que j'ai pas besoin de rajouter d'autres FAQs , l'on va passer au Ressource .
4/Matériaux Necessaire à la realisation:
a/ Des pictures:
- Un fond en noir et/ou en blanc selon ce que vous allez faire.
- Les images composant le fond de votre Ecran Titre qui ne bougera pas.
- Une image des choix de l'Ecran Titre dont chacun selectionné par exemple Nouveau Jeu, Charger Jeu, etc...
Commentaire: Dans ce tutorial nous prendrons seulement Nouvelle Partie et Charger Partie.
- Des images pour votre introductions si vous en avez.
Commentaire: si jamais vous n'avez pas bien comprit les ressources necessaire, vous pourrez voir comme exemple celles de la demo qui est téléchargable plus bas.
5/Variables et Interrupteurs necessairent:
Interrupteurs:
- " Introduction Passé " qui vous servira à passez à votre Ecran Titre et Activer les systems lorsque votre introduction sera fini.
- " Touche Bas " ( Pour gerer le deplacement )
- " Touche Haut " ( Pour gerer le deplacement )
- " Touche A " ( Pour gerer la validation )
Variables:
- " CTS_ Choix" qui vous servira à montrer et choisir la selection.
6/Scripts à inserer:
Enlever le Scène Title par Corbaque.
Renplacer Scène Title par ceci
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
| #==============================================================================
# Pour que la map s'affiche directement, créé par Corbaque
#==============================================================================
class Scene_Title
def main
if $BTEST
battle_test
return
end
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
$game_party.setup_starting_members
$game_map.setup($data_system.start_map_id)
$game_player.moveto($data_system.start_x, $data_system.start_y)
$game_player.refresh
$game_map.autoplay
$game_map.update
$scene = Scene_Map.new
def battle_test
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
Graphics.frame_count = 0
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
$game_party.setup_battle_test_members
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
$game_system.se_play($data_system.battle_start_se)
$game_system.bgm_play($game_system.battle_bgm)
$scene = Scene_Battle.new
end
end
end |
Ensuite créer un nouvel emplacmeent de script ui doit être au dessus de "main" et rentrer le script ci dessous en l'appelant " Scène Title 2 ".
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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
| #==============================================================================
# ■ Scene_Title2, modifié pas Corbaque
#------------------------------------------------------------------------------
# タイトル画面の処理を行うクラスです。
#==============================================================================
class Scene_Title2
#--------------------------------------------------------------------------
# ● メイン処理
#--------------------------------------------------------------------------
def main
# 戦闘テストの場合
if $BTEST
battle_test
return
end
# データベースをロード
$data_actors = load_data("Data/Actors.rxdata")
$data_classes = load_data("Data/Classes.rxdata")
$data_skills = load_data("Data/Skills.rxdata")
$data_items = load_data("Data/Items.rxdata")
$data_weapons = load_data("Data/Weapons.rxdata")
$data_armors = load_data("Data/Armors.rxdata")
$data_enemies = load_data("Data/Enemies.rxdata")
$data_troops = load_data("Data/Troops.rxdata")
$data_states = load_data("Data/States.rxdata")
$data_animations = load_data("Data/Animations.rxdata")
$data_tilesets = load_data("Data/Tilesets.rxdata")
$data_common_events = load_data("Data/CommonEvents.rxdata")
$data_system = load_data("Data/System.rxdata")
# システムオブジェクトを作成
$game_system = Game_System.new
# タイトルグラフィックを作成
@sprite = Sprite.new
@sprite.bitmap = RPG::Cache.title($data_system.title_name)
# コマンドウィンドウを作成
s1 = "Nouvelle partie"
s2 = "Charger une partie"
s3 = "Quitter"
@command_window = Window_Command.new(192, [s1, s2, s3])
@command_window.back_opacity = 160
@command_window.x = 320 - @command_window.width / 2
@command_window.y = 288
# コンティニュー有効判定
# セーブファイルがひとつでも存在するかどうかを調べる
# 有効なら @continue_enabled を true、無効なら false にする
@continue_enabled = false
for i in 0..3
if FileTest.exist?("Save#{i+1}.rxdata")
@continue_enabled = true
end
end
# コンティニューが有効な場合、カーソルをコンティニューに合わせる
# 無効な場合、コンティニューの文字をグレー表示にする
if @continue_enabled
@command_window.index = 1
else
@command_window.disable_item(1)
end
# タイトル BGM を演奏
$game_system.bgm_play($data_system.title_bgm)
# ME、BGS の演奏を停止
Audio.me_stop
Audio.bgs_stop
# トランジション実行
Graphics.transition
# メインループ
loop do
# ゲーム画面を更新
Graphics.update
# 入力情報を更新
Input.update
# フレーム更新
update
# 画面が切り替わったらループを中断
if $scene != self
break
end
end
# トランジション準備
Graphics.freeze
# コマンドウィンドウを解放
@command_window.dispose
# タイトルグラフィックを解放
@sprite.bitmap.dispose
@sprite.dispose
end
#--------------------------------------------------------------------------
# ● フレーム更新
#--------------------------------------------------------------------------
def update
# コマンドウィンドウを更新
@command_window.update
# C ボタンが押された場合
if Input.trigger?(Input::C)
# コマンドウィンドウのカーソル位置で分岐
case @command_window.index
when 0 # ニューゲーム
command_new_game
when 1 # コンティニュー
command_continue
when 2 # シャットダウン
command_shutdown
end
end
end
#--------------------------------------------------------------------------
# ● コマンド : ニューゲーム
#--------------------------------------------------------------------------
def command_new_game
$scene = Scene_Map.new
$game_temp.player_transferring = true
$game_temp.player_new_map_id = 1
$game_temp.player_new_x = 10
$game_temp.player_new_y = 10
end
#--------------------------------------------------------------------------
# ● コマンド : コンティニュー
#--------------------------------------------------------------------------
def command_continue
# コンティニューが無効の場合
unless @continue_enabled
# ブザー SE を演奏
$game_system.se_play($data_system.buzzer_se)
return
end
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# ロード画面に切り替え
$scene = Scene_Load.new
end
#--------------------------------------------------------------------------
# ● コマンド : シャットダウン
#--------------------------------------------------------------------------
def command_shutdown
# 決定 SE を演奏
$game_system.se_play($data_system.decision_se)
# BGM、BGS、ME をフェードアウト
Audio.bgm_fade(800)
Audio.bgs_fade(800)
Audio.me_fade(800)
# シャットダウン
$scene = nil
end
#--------------------------------------------------------------------------
# ● 戦闘テスト
#--------------------------------------------------------------------------
def battle_test
# データベース (戦闘テスト用[img]smileys/clindoeil.gif[/img] をロード
$data_actors = load_data("Data/BT_Actors.rxdata")
$data_classes = load_data("Data/BT_Classes.rxdata")
$data_skills = load_data("Data/BT_Skills.rxdata")
$data_items = load_data("Data/BT_Items.rxdata")
$data_weapons = load_data("Data/BT_Weapons.rxdata")
$data_armors = load_data("Data/BT_Armors.rxdata")
$data_enemies = load_data("Data/BT_Enemies.rxdata")
$data_troops = load_data("Data/BT_Troops.rxdata")
$data_states = load_data("Data/BT_States.rxdata")
$data_animations = load_data("Data/BT_Animations.rxdata")
$data_tilesets = load_data("Data/BT_Tilesets.rxdata")
$data_common_events = load_data("Data/BT_CommonEvents.rxdata")
$data_system = load_data("Data/BT_System.rxdata")
# プレイ時間計測用のフレームカウントをリセット
Graphics.frame_count = 0
# 各種ゲームオブジェクトを作成
$game_temp = Game_Temp.new
$game_system = Game_System.new
$game_switches = Game_Switches.new
$game_variables = Game_Variables.new
$game_self_switches = Game_SelfSwitches.new
$game_screen = Game_Screen.new
$game_actors = Game_Actors.new
$game_party = Game_Party.new
$game_troop = Game_Troop.new
$game_map = Game_Map.new
$game_player = Game_Player.new
# 戦闘テスト用のパーティをセットアップ
$game_party.setup_battle_test_members
# トループ ID、逃走可能フラグ、バトルバックを設定
$game_temp.battle_troop_id = $data_system.test_troop_id
$game_temp.battle_can_escape = true
$game_map.battleback_name = $data_system.battleback_name
# バトル開始 SE を演奏
$game_system.se_play($data_system.battle_start_se)
# バトル BGM を演奏
$game_system.bgm_play($game_system.battle_bgm)
# バトル画面に切り替え
$scene = Scene_Battle.new
end
end |
Et pour finir, ce qui vous servira à retourner sur votre Ecran Titre à vous et non celui de base.
Dans le script " Scene Load ":
A la ligne 61 vous devez trouver :
1
| $scene = Scene_Title.new |
Remplacer celà par :
.
Commentaire: Pour l'instant, le rendu est que lorsque vous demarrer votre jeu, Vous demarrez directement sur la Map ou vous aurez placé le point de départ.
7/Votre introduction:
Commencer par créer votre nouvelle map, celle-ci doit être entièrement vide.
Ensuite aller dans la base de donnée et enlever ou ne mettez aucun personnage dans l'équipe pour qu'ils n'apparaissent pas à certain passage de l'introduction ou de l'Ecran Titre.
Ensuite vous pouvez faire tout ce qui vous chante en introduction ^^.
8/Apparition des images de l'Ecran Titre:
Commencer par créer la map ou sera votre écran titre.
Créer un évènement que vous mettez le déclenchement en processus parallèleA partir de la faite vos apparitions d'image.
Conseil de méthode à Utiliser: Affichez avant tout vos image en opacité 0 et faire par la suite la section Deplacer image avec les mêmes coordonnée et numéro de l'image que vous avez affichez et la mettez en Opacité 255 et regler le temps de l'apparition, cela fera une apparition en fondu, ce qui fera nettement plus agrèable que les affichages directs.
A la fin de votre event ou vous avez mi l'introduction utiliser la section Gestion des Interrupteurs et Activer l'interrupteur Introduction passé.
Ensuite créer une deuxième page à votre event qui se declenchera aussi en processus parellele mais que cette fois vous mettez l'interrupteur Introduction passé en condition de déclenchement, ce qui fera effet que l'on passera directement à cette page pour eviter que l'apparition des images se fassent à répétition.
9/Les systems de votre Ecran Titre:
Sur la deuxième page de l'évènement crée précedemment, nous allons faire le system d'affichage lorsque l'on sera sur l'une des deux options avec les images représentant les choix.
Donc nous allons faire une condition.
<>Condition si la variable CTS_Choix est egale à 0
Commentaire : Si la variable sera à 0 , l'on fera que cela fasse on sorte quele curseur soit sur Nouvelle Partie.
--<> Alors Afficher Image ( celle montrant la Nouvelle Partie séléctionnée ).
Commentaire: Attention, veillez à ce que le numéro de cette ou ces images soit supérieurs aux image précedament utiliser pour eviter que qu'elles n'apparaissent derrière.
Ici nous allons en profiter pour mettre le system de validation. Donc mettez juste après l'affichage de cette image.
--<> Condition si la touche A est présséé
----<> Alors Condition si l'interrupteur Touche A est désactivé.
------<> Alors Jouer un effet sonore ( celui que vous voulez qui représente la validation ).
------<> Afficher l'image de fond noir en opacité 0
------<> Déplacer l'image même en opacité 255 pour un effet d'apparition en fondu.
------<> Mettez une attente le tempsdu déplacmeent de votre image.
------<> Effacer toutes les images que vous avez mises.
------<> Ajouter le personnage principal.
------<> Déplacer la même image du fond noirque vous avez fait apparaitre en opacité 0.
------<> Téléporter votre personnage sur la map de depart et le tout est jouer.
------<> Sinon Rien à mettre
----<> Fin Activer l'interrupteur Touche A
----<> Alors Desactiver l'interrupteur Touche A.
--<> Fin Rien à mettre.
Commentaire: Maintenant nous allons faire pour si le curseur est sur Charger Partie, donc toujour sur le même event à la suite.
--<> Sinon Condition si la variable CTS_Choix est égale à 1.
----<> Alors Afficher Image ( celle montrant le Charger Partie séléctionnée ).
Commentaire: Attention, veillez à ce que le numéro de cette ou ces images soit le même que celle pour l'affichage du Nouvelle Partie pour éviter que les image se superpose.
--<> Condition si la touche A est présséé
------<> Alors Condition si l'interrupteur Touche A est désactivé.
--------<> Alors Jouer un effet sonore ( celui que vous voulez qui représente la validation ).
--------<> Inserer le script $scene = Scene_Load.new
--------<> Sinon Rien à mettre
------<> Fin Activer l'interrupteur Touche A
------<> Alors Desactiver l'interrupteur Touche A.
----<> Fin Rien à mettre.
----<> Sinon Rien à mettre
--<> Fin Rien à mettre
<> Fin Attendre 1 Frame.
Voilà vous avez fini cet event et cela donne les affichages des selections et maintenant nous allons faire le system de déplacement entre ces deux choix.
Alors maintenant créer un nouvel évent sur la même map aussi en processus parallèle activable si l'interrupteur Introduction passé est activé.
<>Condition si la touche Bas est préssée ( cela peu être aussi gauche ou droite comme vous voulez ^^).
--<> Alors Condition si l'interrupteur Touche Bas est désactivée.
----<> Alors Jouer un effet sonore ( celui qui sera le temoin du deplacement ).
----<> Ajouter à la variable CTS_Choix le nombre 1.
----<> Condition si la variable CTS Choix est égale à 2.
------<> Alors Rendre la variable CTS Choix égale à 0.
------<> Sinon Rien à mettre.
------<> Fin Rien à mettre.
----<> Sinon Rien à mettre.
----<> Fin Rien à mettre.
--<> Activer l'interrupteur Touche Bas.
--<> Sinon Désactiver l'interrupteur Touche Bas.
--<> Fin Rien à mettre.
Maintenant la touche de direction contraire.
<>Condition si la touche Haut est préssée.
--<> Alors Condition si l'interrupteur Touche Haut est désactivée.
----<> Alors Jouer un effet sonore ( celui qui sera le temoin du deplacement ).
----<> Soustraire à la variable CTS_Choix le nombre 1.
----<> Condition si la variable CTS Choix est égale à -1.
------<> Alors Rendre la variable CTS Choix égale à 1.
------<> Sinon Rien à mettre.
------<> Fin Rien à mettre.
----<> Sinon Rien à mettre.
----<> Fin Rien à mettre.
--<> Activer l'interrupteur Touche Haut.
--<> Sinon Désactiver l'interrupteur Touche Haut.
--<> Fin Rien à mettre.
10/Autre : Une option Quitter:
Donc pour cela aller dans l'event ou vous avez fait le system de choix de validation et d'affichage des séléctions et ajouter une troisième possibilité ou vous mettrez si la variable est égal à 2, faite les même system et lors de la validation, ajouter cet appel de script:
Cela fera automatiquement quitter le jeu si l'on appuie sur la touche A quand l'on est sur Quitter.
Et bien sur pensez à modifier les variables dans l'event ou l'on a fait les déplacements ey modifier pour avoir une troisième possibilité.
11/Demo Technique:
Voici pour ceux qui aurait eu des difficultés de compréhension ou de vision des possibilités du tutorial, je vous ai conceptionné une reproduction quasi-exacte - pas totalement de l'Ecran titre de Kingdom Hearts II.
Cliquer sur l'image pour la télécharger:
http://www.megaupload.com/?d=RQBXP5H3
Tout les ressources ici même sont libre d'utilisation.^^
Voilà nous sommes au terme du tutorial, j'èspere que vous aurez bien comprit et que celà vous auras fait monter votre niveau d'expérience dans certaines sections.
|