お知らせ掲示板 | 質問掲示板 | 不具合報告掲示板 | 機能要望掲示板 | 雑談掲示板

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
166 / 387 ツリー ←次へ | 前へ→

TOP画面の表示について [名前なし] 2014/1/4(土) 2:23

Re:TOP画面の表示について ぽてと 2014/1/6(月) 14:15
Re:TOP画面の表示について [名前なし] 2014/1/7(火) 0:07
Re:TOP画面の表示について ぽてと 2014/1/7(火) 1:05
Re:TOP画面の表示について [名前なし] 2014/1/15(水) 16:58
Re:TOP画面の表示について [名前なし] 2014/1/15(水) 22:33
Re:TOP画面の表示について ぽてと 2014/1/16(木) 0:03
Re:TOP画面の表示について ぽてと 2014/1/15(水) 23:22
Re:TOP画面の表示について [名前なし] 2014/1/15(水) 23:55
Re:TOP画面の表示について ぽてと 2014/1/16(木) 0:19
Re:TOP画面の表示について [名前なし] 2014/1/16(木) 23:59
Re:TOP画面の表示について ぽてと 2014/1/17(金) 0:43

Re:TOP画面の表示について
 ぽてと  - 2014/1/6(月) 14:15 -
  
>ゲームを作成していてわからないことがあります。
>TOP画面に現在スタートやロードなどのボタンがあるのですが、ここにボタンを追加させる方法が分からなくて困っています。
>
>ゲームをすべてクリアした後に、ボタンが出現して、それを押すとおまけページが現れるようにしたいのですが、そのような設定は可能でしょうか。
>どのようにすればいいのか検討がつかずに困っています。教えて頂ければと思います、よろしくおねがいします。

おまけページとはタイトル画面におまけ用ボタン(CG鑑賞、BGM鑑賞etc)のボタンが表示されるという認識で話をします。

新規のボタンの追加はERIS内部を修正する必要があるので、難しくなっています。
既存のボタンの動作を変更するというのであれば可能です。

具体的には以下のように記述します。

タイトル画面設計.txt
104行目:/*を削除します。(おまけボタンの復活)
111行目:*/を削除します。(おまけボタンの復活)
158行目:/*を削除します。(おまけ戻るボタンの復活)
166行目:*/を削除します。(おまけ戻るボタンの復活)

おまけボタンを押した際に表示したいボタンについて、
\BT.GROUP(1)を\BT.GROUP(2)に変更します

後は配置をうまく調節すれば問題ありません。
引用なし
パスワード

Re:TOP画面の表示について
 [名前なし]  - 2014/1/7(火) 0:07 -
  
説明不足だったようで、すみませんでした。教えていただいたものを試してみたのですが、自分が思っていた表示とは違っていました。
ですので、再度ご質問させていただきます。


yu-risをダウンロードして、ゲームのタイトル画面にあるボタンについてです。
その中にあるエピローグのボタンを、ゲームをすべてクリアした時に自動で表示させることは可能でしょうか。はじめのうちは隠れていて、ゲームを全部クリアした後にボタンが出てくる(もしくは押せるようになる)ようにしたいです。

二回目の質問になってしまい申し訳ありません。
よろしくお願いします。
引用なし
パスワード

Re:TOP画面の表示について
 ぽてと  - 2014/1/7(火) 1:05 -
  
タイトル画面設計.txtの上部に以下のような記述があります。
//↓クリアフラグを @G 変数の1234番とした場合、
//↓ゲーム中に @G(1234)=1 と記述すればクリアフラグが立ったことになり、
//↓「クリア後のボタン定義」のほうが反映されるようになります。


この部分は読みましたでしょうか。
読んだとしても、デバッグ用のフラグとして@flag_omakeが常に1になるようにデフォルトでなっているので、コメントアウトする必要があるという説明が足りてはいません。

これを踏まえ、デバッグ用のフラグをコメントアウトし、@G(1234)=1をゲーム中に記述すると、クリア前とクリア後の配置を変更することができます。


つまり、以下のように修正をすればよいです。

タイトル画面設計.txt
19行目:@flag_omake =1をコメントアウトします。(//@flag_omake =1)

ゲームクリア時に以下を記述。
@G(1234)=1


この修正を行うと、
@G(1234)が1の場合に、@flag_omakeに1のフラグが立ちます。

未クリア時の場合(@flag_omake=0)
 22行目〜65行目のボタンが表示されます。

ゲームクリア時の場合(@flag_omake=1)※@G(1234)=1の場合、@flag_omake=1となる。
 70行目〜165行目のボタンが表示されます。
 表示したくないボタンについてはコメントアウトをする。


正確な動作としては、@G(1234)に1が立った後にタイトル画面に戻るとボタンが追加されます。@G(1234)に1を立てるのをクリアした時に行えば、クリア時にボタンが追加されるようになります。


○補足----------------------------------------------------
上述した修正方法はクリア前とクリア後のボタン配置を変更できる柔軟なつくりになっています。
が、同じことを2度書かなければいけない仕様にもなっています。

既存のタイトルにクリア後にボタンを追加する。
クリア前とボタンの配置は変わらないのであれば、現在の仕様である「クリア前とクリア後のボタン配置を持つ」から「クリア後にボタンを追加する」という風にタイトル画面設計.txtを修正する方法もあります。
具体的な修正方法は以下の通りです。

タイトル画面設計.txt
19行目:コメントアウト(//@flag_omake =1)
22行目:コメントアウト(//IF[@flag_omake==0])
67行目:コメントアウト開始(/*ELSE[])
170行目:コメントアウト終了(*/)

追加したいボタンを以下のIF文の間に記述する
IF[@flag_omake==1]
〜省略〜
IFEND[]

ゲームクリア時に以下を記述。
@G(1234)=1

------------------------------------------------------------
お役に立てればと思います。
引用なし
パスワード

Re:TOP画面の表示について
 [名前なし]  - 2014/1/15(水) 16:58 -
  
ご回答ありがとうございます。
言葉足らずな質問ですみませんでした。分かりやすい回答、助かります。
この@G(1234)=1の記述はシナリオの最後全てに入れるという形を取れば、全てのエンディングを見た時にだけ表示されるという作りになるのでしょうか?
重ね重ね、申し訳ないです。
引用なし
パスワード

Re:TOP画面の表示について
 [名前なし]  - 2014/1/15(水) 22:33 -
  
一応試してみたのですが、以下のように記述したところ画面が真っ暗になってしまいました。
間違えている部分がありましたらご指摘ください。

//============================================================================
// タイトル画面設計
//============================================================================
#=ES.TITLE.BTDEF

    \BTDEF.GROUP(ES.TITLE)


    //↓クリアフラグを @G 変数の1234番とした場合、
    //↓ゲーム中に @G(1234)=1 と記述すればクリアフラグが立ったことになり、
    //↓「クリア後のボタン定義」のほうが反映されるようになります。

    INT[@flag_omake]
    INT[@flag_true]
    IF[@G(1234)==1]
    @flag_omake=1 IFEND[] //クリアフラグ


//デバッグ用
    //@flag_omake =1


    IF[@flag_omake==0] //「未クリア時のボタン定義」
    {
        \BT.NAME("■背景")
        \BT.CGSYS("title/top")
        \BT.XY(0, 0)
        \BT.Z(001)
        \BT.SET(TIP.BG)

        \BT.NAME("■スタート")
        \BT.GROUP(0)
        \BT.CGSYS("title/btn_start")
        \BT.XY(100, 60+30*0)
        \BT.Z(020)
        \BT.SET(BTN.START, 1)

        \BT.NAME("■ロード")
        \BT.GROUP(0)
        \BT.CGSYS("title/btn_load")
        \BT.XY(100, 60+30*1)
        \BT.Z(020)
        \BT.SET(BTN.LOAD)

        \BT.NAME("■コンフィグ")
        \BT.GROUP(0)
        \BT.CGSYS("title/btn_config")
        \BT.XY(100, 60+30*2)
        \BT.Z(020)
        \BT.SET(BTN.CONFIG)

        \BT.NAME("■終了")
        \BT.GROUP(0)
        \BT.CGSYS("title/btn_end")
        \BT.XY(100, 60+30*3)
        \BT.Z(020)
        \BT.KEY("ESC")
        \BT.SET(BTN.END, 0) //1=Windowsダイアログ

        \BT.NAME("■WEB")
        \BT.GROUP(0)
        \BT.CGSYS("title/btn_web")
        \BT.XY(100, 60+30*4)
        \BT.Z(020)
        \BT.SET(BTN.WEB)

    }
    /*ELSE[] //「クリア後のボタン定義」
    {

        \BT.NAME("■背景")
        \BT.CGSYS("title/top")
        \BT.XY(0, 0)
        \BT.Z(001)
        \BT.SET(TIP.BG)

        //\BT.NAME("■スタート")
        //\BT.GROUP(1)
        //\BT.CGSYS("title/btn_start")
        //\BT.XY(50, 50+30*0)
        //\BT.Z(020)
        //\BT.SET(BTN.START, 1)

        //\BT.NAME("■エピローグ")
        //\BT.GROUP(1)
        //\BT.CGSYS("title/btn_epilogue")
        //\BT.XY(50, 50+30*)
        //\BT.Z(020)
        //\BT.SET(BTN.START, 2)

        //\BT.NAME("■ロード")
        //\BT.GROUP(1)
        //\BT.CGSYS("title/btn_load")
        //\BT.XY(50, 50+30*1)
        //\BT.Z(020)
        //\BT.SET(BTN.LOAD)

        //\BT.NAME("■コンフィグ")
        //\BT.GROUP(1)
        //\BT.CGSYS("title/btn_config")
        //\BT.XY(50, 50+30*2)
        //\BT.Z(020)
        //\BT.SET(BTN.CONFIG)

/*
        \BT.NAME("■おまけ")
        \BT.GROUP(1)
        \BT.CGSYS("title/btn_omake")
        \BT.XY(50, 50+30*3)
        \BT.Z(020)
        \BT.SET(BTN.EXTRA)
*/

        //\BT.NAME("■終了")
        //\BT.GROUP(1)
        //\BT.CGSYS("title/btn_end")
        //\BT.XY(50, 50+30*7)
        //\BT.Z(020)
        //\BT.KEY("ESC")
        //\BT.SET(BTN.END, 0) //1=Windowsダイアログ

        //\BT.NAME("■WEB")
        //\BT.GROUP(1)
        //\BT.CGSYS("title/btn_web")
        //\BT.XY(50, 50+30*6)
        //\BT.Z(020)
        //\BT.SET(BTN.WEB)


    //おまけ
        \BT.NAME("■CG鑑賞")
        \BT.GROUP(1)
        \BT.CGSYS("title/btn_cgmode")
        \BT.XY(50, 50+30*4)
        \BT.Z(020)
        \BT.SET(BTN.CGMODE)

        \BT.NAME("■回想鑑賞")
        \BT.GROUP(1)
        \BT.CGSYS("title/btn_replaymode")
        \BT.XY(50, 50+30*5)
        \BT.Z(020)
        \BT.SET(BTN.RPMODE)


/*
        //\BT.NAME("■戻る")
        //\BT.GROUP(2)
        //\BT.CGSYS("title/btn_omakeback")
        //\BT.XY(50, 50+30*7)
        //\BT.Z(020)
        //\BT.KEY(MOUSE_R)
        //\BT.SET(BTN.EXTRABACK)
*/

    
    IFEND[]


RETURN[]
引用なし
パスワード

Re:TOP画面の表示について
 ぽてと  - 2014/1/15(水) 23:22 -
  
>ご回答ありがとうございます。
>言葉足らずな質問ですみませんでした。分かりやすい回答、助かります。
>この@G(1234)=1の記述はシナリオの最後全てに入れるという形を取れば、全てのエンディングを見た時にだけ表示されるという作りになるのでしょうか?
>重ね重ね、申し訳ないです。


一本道のシナリオの場合であれば、シナリオの最後に記述すれば問題ありません。

ですが、「シナリオの最後全てに〜」とあるので、マルチエンドの形式でしょうか。

その場合は各エンド毎にクリアフラグを保存し、すべてのエンドを見たら
@G(1234)=1とする必要があります。


たとえば以下のように記述します。
※個別クリアフラグは@G(1001)〜@G(1003)とします。
一応、ERISにのっとった形(\LETを使用)で記述します。

//----------------------------------
//○処理説明
// 1.最初の選択肢で、どのエンディングを見るかを決定します。
// 2.選択されたエンディング別にクリアフラグをたてます。
// 3.エンド処理
//  3.1.全エンディングフラグが立っていれば、クリアフラグを立てます
//  3.2.タイトル画面へ戻ります。
//-----------------------------------
\SEL.GO(END1, END2, END3)
\SEL(エンディング1, エンディング2, エンディング3)
//エンディング1
#END1
\LET(@G(1001)=1)
\GO(END)

//エンディング2
#END2
\LET(@G(1002)=1)
\GO(END)

//エンディング3
#END3
\LET(@G(1003)=1)
\GO(END)

//エンド処理
#END
\LET.IF(@G(1001)==1 && @G(1002)==1 && @G(1003)==1, @G(1234)=1)
\GO.TITLE

 
引用なし
パスワード

Re:TOP画面の表示について
 [名前なし]  - 2014/1/15(水) 23:55 -
  
回答ありがとうございます!

つまり、エンディング1の最後に
//エンディング1
#END1
\LET(@G(1001)=1)
\GO(END)
と記述、2や3も同じく。


最後にみるであろうエンディングには
//エンド処理
#END
\LET.IF(@G(1001)==1 && @G(1002)==1 && @G(1003)==1, @G(1234)=1)
\GO.TITLE
を記述ということで良いのでしょうか。

もし最後に見るであろうエンディングが、エンディング3だったばあいはエンディング3の記述とエンド処理の記述を両方するということになりますか?
引用なし
パスワード

Re:TOP画面の表示について
 ぽてと  - 2014/1/16(木) 0:03 -
  
タイトル画面については私の補足に書いたやり方で行いたいという認識でよいでしょうか。
その上で以下のようにしたいということでしょうか。

○未クリア時の状態
 ・背景
 ・スタート
 ・ロード
 ・コンフィグ
 ・終了
 ・WEB

○クリア時に追加したい
 ・CG鑑賞
 ・回想鑑賞

で、あるならば以下のように修正してください。
何が違っているかは見比べてみてください。

また、デバッグ用として「//@flag_omake =0」をコメント解除し、「@flag_omake =0」とすると未クリア状態を表示します。「@flag_omake =1」とするとクリア状態を表示します。


//============================================================================
// タイトル画面設計
//============================================================================
#=ES.TITLE.BTDEF

  \BTDEF.GROUP(ES.TITLE)


  //↓クリアフラグを @G 変数の1234番とした場合、
  //↓ゲーム中に @G(1234)=1 と記述すればクリアフラグが立ったことになり、
  //↓「クリア後のボタン定義」のほうが反映されるようになります。

  INT[@flag_omake]
  INT[@flag_true]
  IF[@G(1234)==1] @flag_omake=1 IFEND[] //クリアフラグ


//デバッグ用
  //@flag_omake =0

  //IF[@flag_omake==0] //「未クリア時のボタン定義」
  {
   \BT.NAME("■背景")
   \BT.CGSYS("title/back")
   \BT.XY(0, 0)
   \BT.Z(001)
   \BT.SET(TIP.BG)

   \BT.NAME("■スタート")
   \BT.GROUP(0)
   \BT.CGSYS("title/btn_start")
   \BT.XY(100, 60+30*0)
   \BT.Z(020)
   \BT.SET(BTN.START, 1)

   \BT.NAME("■ロード")
   \BT.GROUP(0)
   \BT.CGSYS("title/btn_load")
   \BT.XY(100, 60+30*1)
   \BT.Z(020)
   \BT.SET(BTN.LOAD)

   \BT.NAME("■コンフィグ")
   \BT.GROUP(0)
   \BT.CGSYS("title/btn_config")
   \BT.XY(100, 60+30*2)
   \BT.Z(020)
   \BT.SET(BTN.CONFIG)

   \BT.NAME("■終了")
   \BT.GROUP(0)
   \BT.CGSYS("title/btn_end")
   \BT.XY(100, 60+30*3)
   \BT.Z(020)
   \BT.KEY("ESC")
   \BT.SET(BTN.END, 0) //1=Windowsダイアログ

   \BT.NAME("■WEB")
   \BT.GROUP(0)
   \BT.CGSYS("title/btn_web")
   \BT.XY(100, 60+30*4)
   \BT.Z(020)
   \BT.SET(BTN.WEB)

  }
  //ELSE[] //「クリア後のボタン定義」
  //「クリア後のボタン定義」
  IF[@flag_omake==1]
  {

   //\BT.NAME("■背景")
   //\BT.CGSYS("title/top")
   //\BT.XY(0, 0)
   //\BT.Z(001)
   //\BT.SET(TIP.BG)

   //\BT.NAME("■スタート")
   //\BT.GROUP(1)
   //\BT.CGSYS("title/btn_start")
   //\BT.XY(50, 50+30*0)
   //\BT.Z(020)
   //\BT.SET(BTN.START, 1)

   //\BT.NAME("■エピローグ")
   //\BT.GROUP(1)
   //\BT.CGSYS("title/btn_epilogue")
   //\BT.XY(50, 50+30*)
   //\BT.Z(020)
   //\BT.SET(BTN.START, 2)

   //\BT.NAME("■ロード")
   //\BT.GROUP(1)
   //\BT.CGSYS("title/btn_load")
   //\BT.XY(50, 50+30*1)
   //\BT.Z(020)
   //\BT.SET(BTN.LOAD)

   //\BT.NAME("■コンフィグ")
   //\BT.GROUP(1)
   //\BT.CGSYS("title/btn_config")
   //\BT.XY(50, 50+30*2)
   //\BT.Z(020)
   //\BT.SET(BTN.CONFIG)

/*
   \BT.NAME("■おまけ")
   \BT.GROUP(1)
   \BT.CGSYS("title/btn_omake")
   \BT.XY(50, 50+30*3)
   \BT.Z(020)
   \BT.SET(BTN.EXTRA)
*/

   //\BT.NAME("■終了")
   //\BT.GROUP(1)
   //\BT.CGSYS("title/btn_end")
   //\BT.XY(50, 50+30*7)
   //\BT.Z(020)
   //\BT.KEY("ESC")
   //\BT.SET(BTN.END, 0) //1=Windowsダイアログ

   //\BT.NAME("■WEB")
   //\BT.GROUP(1)
   //\BT.CGSYS("title/btn_web")
   //\BT.XY(50, 50+30*6)
   //\BT.Z(020)
   //\BT.SET(BTN.WEB)


  //おまけ
   \BT.NAME("■CG鑑賞")
   \BT.GROUP(1)
   \BT.CGSYS("title/btn_cgmode")
   \BT.XY(50, 50+30*4)
   \BT.Z(020)
   \BT.SET(BTN.CGMODE)

   \BT.NAME("■回想鑑賞")
   \BT.GROUP(1)
   \BT.CGSYS("title/btn_replaymode")
   \BT.XY(50, 50+30*5)
   \BT.Z(020)
   \BT.SET(BTN.RPMODE)


/*
   //\BT.NAME("■戻る")
   //\BT.GROUP(2)
   //\BT.CGSYS("title/btn_omakeback")
   //\BT.XY(50, 50+30*7)
   //\BT.Z(020)
   //\BT.KEY(MOUSE_R)
   //\BT.SET(BTN.EXTRABACK)
*/

  }
  IFEND[]


RETURN[]
引用なし
パスワード

Re:TOP画面の表示について
 ぽてと  - 2014/1/16(木) 0:19 -
  
>回答ありがとうございます!
>
>つまり、エンディング1の最後に
>//エンディング1
>#END1
>\LET(@G(1001)=1)
>\GO(END)
>と記述、2や3も同じく。
>
>
>最後にみるであろうエンディングには
>//エンド処理
>#END
>\LET.IF(@G(1001)==1 && @G(1002)==1 && @G(1003)==1, @G(1234)=1)
>\GO.TITLE
>を記述ということで良いのでしょうか。

その認識で問題ありません。


>もし最後に見るであろうエンディングが、エンディング3だったばあいはエンディング3の記述とエンド処理の記述を両方するということになりますか?

両方記述する書き方でも問題はありません。

また、エンディング3を絶対に最後にみるというのであれば、エンド処理はいりません。
エンディング3の最後に「\LET(@G(1234)=1)」とすればよいです。


回答はエンディング1〜3を順不同で見る場合を想定して記述しました。

いずれかのエンディングを見た後にクリアフラグを立てる場合は全てのエンディングに「\LET(@G(1234)=1)」と記述するか、回答のように最後は共通のエンド処理を以下のようにすればよいです。
#END
\LET(@G(1234)=1)
\GO.TITLE
引用なし
パスワード

Re:TOP画面の表示について
 [名前なし]  - 2014/1/16(木) 23:59 -
  
何度も回答いただいているのに申し訳ありません。
どうしてもうまくいかなくて、困っています;;もう少しだけアドバイスいただければと思います。

この記述では、おまけは表示されないのでしょうか・・・。

◆エンディング1の最後の部分の記述
\RP.END
\WA(2000)

//エンディング1
#END1
\LET(@G(1001)=1)
\GO(END)


//end
◆エンディング2の最後の部分の記述
\RP.END
\WA(2000)

#END2
\LET(@G(1002)=1)
\GO(END)


//end
◆エンディング3の最後の部分の記述

\BG(bg9)
\WA(2000)

//エンディング3
#END3
\LET(@G(1003)=1)
\GO(END)

//エンド処理
#END
\LET.IF(@G(1001)==1 && @G(1002)==1 && @G(1003)==1, @G(1234)=1)

\GO.TITLE
//end


ちなみに、エンディングは順不同で見れるようにつくっています。
すべてのエンディングをみたらおまけが見れるようにしようと思っています。

タイトル画面設計はお教えいただいた通りに記述してみましたので、たぶん大丈夫だとは思いますが、上記が間違っていなければタイトル画面設計にミスがあるということですよね・・。重ね重ね本当に申し訳ありません。
引用なし
パスワード

Re:TOP画面の表示について
 ぽてと  - 2014/1/17(金) 0:43 -
  
私のほうではうまく動きました。

以下の記述で直接エンディングを確認しました。
\SEL.GO(END1, END2, END3)
\SEL(エンディング1, エンディング2, エンディング3)

確認手順としては、以下の通りです。
1.セーブデータを削除。
2.エンディング1を選択→タイトル→エンディング2を選択→タイトル
 →エンディング3を選択→タイトルにCG鑑賞、シーン鑑賞が追加表示される。
※おまけボタンをおして表示ではなく、直接CG鑑賞、シーン鑑賞が表示。
3.正しい事を確認


なのでシナリオの記述は正しいように思われます。


別のシナリオ部分が影響しているか、タイトル画面設計が問題なのかなと思います。

以下の点を確認していただけないでしょうか。

○シナリオ部分での確認
1.別の箇所で@G(1001)〜@G(1003)、@G(1234)が使用されているか。
2.エンディングは正しく通っているか。(私が確認した命令で確認してみてください。)


○タイトル画面設計での確認
1.表示したいボタンはコメントになっていないか。
2.表示したいボタンのX座標、Y座標、Z座標は正しいか。
3.表示したいボタンの画像は存在するか。

※念のための修正として以下をやってみて下さい。もしかするとってところで。
表示したいボタンの「\BT.GROUP(1)」を「\BT.GROUP(0)」としてみてください。
引用なし
パスワード

  新規投稿 ┃全記事一覧 ┃検索 ┃設定 ┃サポートフォーラムトップ  
166 / 387 ツリー ←次へ | 前へ→
58,702
(SS)C-BOARD v3.8.1β4 is Free.