タイトル画面の作り方 の変更点 - Polaris Engine Wiki

Wikiトップ   編集   新規作成   複製   名称変更   アップロード   添付ファイル一覧   バックアップ  

 

#author("2024-03-03T23:33:42+09:00","default:discord","discord")
#author("2024-04-26T14:52:41+09:00","default:discord","discord")
* Suika2でのタイトル画面の作り方 [#l1826a95]
Suika2でのタイトル画面を作っていくための手順を載せています。

'' 目次'' 
#contents

&br;

** まずはじめに|サンプルゲームの説明 [#e791514b]
公式のサンプルゲームの中身を見ていきましょう。

&br;

*** タイトル画面の呼び出し箇所 [#mac83570]
txt/japanese-main.txt の中で、''@メニュー ファイル=menu.txt フェードインなし''と書いてある行を探してください。&br;
これが''タイトル画面の呼び出し''です。&br;
タイトル画面は GUI という機能を使って実現されています。&br;
menu.txt というのは、gui フォルダに入っている menu.txt のことです。

&br;

*** menu.txt の中身 [#gd7aad15]
gui/menu.txt を開いてみてください。&br;
まず先頭に、

 # このファイルの基本設定
 global {
    # 下記の画像を使用する
    idle:     menu-idle.png;
    hover:  menu-hover.png;
    active: menu-hover.png;
    # フェードイン時間(秒) [この画面ではフェードアウトを使わない]
    # fadein: 1.0;
    # フェードアウト時間(秒) [この画面ではフェードアウトを使わない]
    # fadeout: 1.0;
    # 読み上げ
    alt: ゲームのメニュー画面が表示されています。左右のキーを押してください。;
 }
と書かれています。これの意味は下記のとおりです。&br;

|idle|何もしていない状態で表示する画像。cg/menu-idle.png|
|hover|ボタンがマウスでポイントされた時に表示する画像。cg/menu-hover.png|
|active|単純なタイトル画面では使いません。適当にcg/menu-hover.png を使っておきます|
|fadein|フェードイン時間(秒)|
|fadeout|フェードアウト時間(秒)|

&br;

*** ボタン画像の準備について [#zeeed4a0]
- Suika2では、他のエンジンと違って、個々の小さなボタンの画像を使いません
- 代わりに、画面全体の中にボタンを配置した画像を利用します
- このデータを作るには、画像編集ソフトやペイントソフトのレイヤー機能を使います
- Photoshop や CLIP STUDIO をご利用の方は、こちらのファイル をダウンロードしていただけば、構造がわかると思います
- Photoshop や CLIP STUDIO をご利用の方は、[[こちらのファイル>https://polaris-engine.com/dl/material/tategaki_cg.zip]] をダウンロードしていただけば、構造がわかると思います
- ちなみに、個々のボタン画像を利用しない理由は、下記の理由です
-- 小さなボタン画像ファイルの管理がなくなって楽
-- 使用メモリ量を固定できる
- 結果として、イラストレータの方からはわかりやすいとの声を頂いています

&br;

*** menu.txt ファイルの構造 [#p19f2a48]
menu.txt ファイルの続きについて見ていきます。
大まかに見ると4つのボタンについて書かれています。
なんとなく眺めてみると、次の構造になっていることがわかります。

 START {
     ...
 }
 
 LOAD {
     ....
 }
 
 CONFIG {
     ...
 }
 
 QUIT {
     ...
 }

&br;

*** START ボタンの中身 [#t0be08bb]
ここで START ボタンの中をよく見ていきます。

 # STARTボタン
 START {
     # 種類:ラベルへジャンプ
     type: goto;
 
     # ジャンプ先のラベル
     label: START;
 
     # 座標とサイズ
     x: 2;
     y: 495;
     width: 314;
     height: 192;
 
     # ポイントされたときの効果音
     pointse: btn-change.ogg;
 
     # クリックされたときの効果音
     clickse: click.ogg;
 }

わかる部分、わからない部分があると思います。さらに詳しく見ていきましょう。

&br;

*** クリックされたらラベルへジャンプ [#pfbd9220]
''type: goto; ''というのは、このボタンが押されたときに、''シナリオファイル(japanese-main.txt)のどこかのラベルにジャンプする''いう意味です。

ラベルというのは、シナリオの中で、: から始まる行のことです。

''label: START;''というのは、このボタンが押されたときに、''シナリオファイル(japanese-main.txt)の :START という行にジャンプする''という意味です。

&br;

*** 座標とサイズ [#t0b41755]
座標とサイズですが、これは Photoshop や CLIP STUDIO などのツールで、 ボタンの位置とサイズを確認して書いてください。&br;
やりかたは、 [[Photoshop>https://hoshimi12.com/?p=22223]] の場合はこちら、 [[CLIP STUDIO>https://daigonozin.com/%E3%80%90%E3%82%AF%E3%83%AA%E3%82%B9%E3%82%BF%E3%80%91%E3%82%AD%E3%83%A3%E3%83%B3%E3%83%91%E3%82%B9%E5%86%85%E3%81%AE%E5%BA%A7%E6%A8%99%E3%82%92%E7%9F%A5%E3%82%8B%E6%96%B9%E6%B3%95%EF%BD%9C%E5%AE%9A/]] の場合はこちら です。&br;
メディバンペイントでのやり方は動画で解説しています。&br;
#youtube(-QwEC8v87w)

たったこれだけです。&br;
意外と難しくなかった、という感想を持たれたと思います。

&br;

** ボタンを増やすには? [#i35c2a5b]
- START { ... } のブロックをコピーして、新しいブロックを作ってみましょう
- コピー先の START の部分には自分で新しい名前を付けてください
- アルファベットならなんでもいいです。(実を言うとSTARTが2つあってもそのまま動きます)

&br;

* 新しいバージョンでの仕様(GUIv2) [#af4fff1f]

背景やキャラクタを表示したまま、GUIを上から表示できるようになりました。以前はidle画像に透明度が使えませんでしたが、GUIv2では透明度が有効になります。

言い換えると、 [[@bg コマンド>コマンドリファレンス#kca5c778]] で背景を表示したり、 [[@レイヤーコマンド>コマンドリファレンス#k5a4fa64]] でアニメーション用のレイヤーを表示したまま、GUIでメニューを表示することができます。

&br;

** GUIv2の使い方 [#ae654c74]
 global {
    base:   none;
    idle:   menu-idle_moji.png;
    hover:  menu-hover.png;
    active: menu-hover.png;
 }

以前の仕様から追加されたのはbaseの指定です。これを指定するとGUIv2が有効になります。

GUIv2を有効にするには、globalのセクションの中に、

 base: none;

あるいは

 base: base-image.png;

を指定します。noneの場合は背景やキャラクタがそのまま表示されます。また、baseファイル名を指定した場合は、背景やキャラの上に、画面全体を覆うbase画像が描画されます。この画像の透明度は有効です。

以前と異なり、idle画像は画面全体に描画されず、ボタンがポイントされていないときだけ、ボタンの部分が描画されるようになりました。

詳しい使い方などは、[[Discordサーバー>https://discord.gg/ZmvXxE8GFg]] でお聞きくださると嬉しいです。要するに、背景やキャラクタと、GUIを、同時に表示させることができます。
詳しい使い方などは、Discordサーバーでお聞きくださると嬉しいです。要するに、背景やキャラクタと、GUIを、同時に表示させることができます。

従来のGUI、つまりGUIv1を使いたい場合は、単にbaseを指定しないでください。