忍者ブログ
はじかきれんしゅうちょう いろいろ
Admin  +   Write
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


〇タイトルの通り。
できればスクリーンの中でどうにかしたいけどもわからないので普通にラベルで飛びます…
前提としてCG4枚のレイアウトになってます。
なお、CGが表示されるところをラベルジャンプにすれば回想モードにも使えます。



 
image cg1 = "/cg1.png"
image cg2 = "/cg2.png"
image cg3 = "/cg3.png"
image cg4 = "/cg4.png"

label cgselbe: #前段階準備。
    $ quick_menu = False   #メッセージボックスを消す指令。
    hide cg1 #出てるCGを隠す。(雑)
    hide cg2
    hide cg3
    hide cg4
    
label cgsel: ##cgmode
screen example2_imagemap(): #「example2」が多分可変。
    imagemap:
        ground "cgoff.png" #ホバー前画像(全部オフの画像)
        hover "cgon.png"  #ホバー中画像(全部オンの画像)

#数字は(左端の位置, 上端の位置, ホットスポットの幅, ホットスポットの高さ)
        hotspot (138, 155, 346, 127) clicked Return("cgg1")
        hotspot (138, 329, 346, 126) clicked Return("cgg2")
        hotspot (562, 155, 346, 128) clicked Return("cgg3")
        hotspot (562, 329, 347, 127) clicked Return("cgg4")

#これはタイトルに戻るボタン        
        hotspot (841, 498, 179, 67) clicked Return("back")      
          

label example2: #「example2」が多分可変。
    
    call screen example2_imagemap #「example2」が多分可変。
    
    $ result = _return
    
    if result == "cgg1":
        $ quick_menu = False
        show cg1 #画像表示(定義は別のとこでしとく)
        $ renpy.pause() #クリックまち
        hide cg1 #けして、
        show cg2  #差分表示・
        $ renpy.pause() #またクリックまちして
        jump cgselbe #戻る・
        #e "You picked swimming!"

    elif result == "cgg2":
        $ quick_menu = False
        show cg2
        $ renpy.pause()
        jump cgselbe
 
    elif result == "cgg3":
        $ quick_menu = False
        show cg3
        $ renpy.pause()
        jump cgselbe
        #e "You picked art!"

    elif result == "cgg4":
        $ quick_menu = False
        show cg4
        $ renpy.pause()
        jump cgselbe
        #e "You picked art!"
        
    elif result == "go home":
        return
#        e "You went home!"
PR

21/6/27追記

決定版とか抜かしてますがそんなことはなかった!
もっと強いカメックスがいるぞ!!

→別記事参照です。

以下は参考用に残しときます。




何回立ち絵の話するんだよ。
えっと、この度はイメージタグをつけてコンポジット指定差分を表示させることに
成功したので書きに来ました! これが決定版! になるはずです!
なお、「立ち絵差分顔面セット式」です。

何かというと、いつもの話者指定のとこの
define ur = Character('ウララ', color="#1b5182", image="aa")
↑これのimage="aa"がイメージタグです。

urが話者です。スクリプト上
   
ur "はじめまして、こんばんは。"
こういう感じになるアレです。

で、立ち絵の顔差分の指定スクリプトが(なんとなく私は別のrpyファイルに書いてます)
image aa 0 = im.Composite( #aaのあとに半角スペースを入れる!!
    (555, 1502), #ベースになる画像の縦横サイズです
    (0, 0), "/aa/aabase.png", #身体パーツ
    (0, 0), "/aa/aa000.png") #顔セットパーツ   座標指定
#       show aa 1 at top, smooth//このセットがでますの式

image aa  1 = im.Composite(
    (555, 1502), #ベースになる画像の縦横サイズです
    (0, 0), "/aa/aabase.png", #身体パーツ
    (0, 0), "/aa/aa001.png") #顔セットパーツ   
#     以降、顔差分の分だけ数字を増やして続けていきます。
これです。/image/aa/ となっているのは
imageフォルダの中にaaというフォルダを作って
そこに画像を入れていますという意味です。
(smoothについては
使わなかったら消してください。
前にこれを入れるといいらしいといわれていたアレです。
どっかに描いた気がするので「立ち絵スムーズ表示スクリプト」で検索。)


使う画像はこれ。立ち絵ベース画像(aabase.png)と顔差分(aa000.png、aa001.png)です。
ブログなので勝手にリサイズされますが、顔差分は横幅を変えないで
書き出しています。こうすると座標指定がいらないのです。

あとaaとかbbにしとくと次回以降顔差分指定rpyをコピペでできるんです~。
置換でベースサイズだけ変えればフォルダの中身の画像ファイルを差し替えるだけで
準備完了になっちゃうヨ! べんり!
 


そんで本文スクリプトを書きます。いろいろ中略ですが

    show aa 0  at top, smooth 
    ur "セリフそのいち!"
    ur 1 "セリフそのに!"

これでur 1がちゃんときいて顔がかわってくれますぞ~
注意は ur(半角スぺ)1(半角スぺ)"セリフ" ってことですね。
消すときは
    hide aa 
で全部消えてくれる♡ やったね♡
タイトル通りです。
ふつうの変数のIF式とpersisitentのIF式が違うみたいで
つまづいたのでメモります。


#前提として、シナリオの最後にクリアフラグ設置して踏むとこをつくっときます。
#ここを通るとクリアしたことになりますよー。
   $ persistent.finished = True





で、抜粋なんでよけいなスクリプトとかラベル名とか入ってますが


label stst:   
    stop music fadeout 2.0  
    if not persistent.finished: #エンドみてないなら
        jump story
    else:
        jump toba  
        
label toba:    
        
    scene bg06
    with fade 
menu:
    "予選まで飛ばす?"
    
    "はい":
        stop music fadeout 3.0
        jump qend
    "いいえ":
        jump story
label story:
#オープニングがはじまります。

label qend: 
#飛ばす?はい した先がここのラベルです。  

スクリーーンに何か書くとき
のメモ。

例えばこういうscreen.rpyのメニューの中の書き方。
全然わからないけどうまく使えば便利みたいな予感はしているけど
全然わからない。ハハハ
カスタムスクリーン?できるようになるといいね 来世で ハハハ



## About(バージョン情報)スクリーン #########################################################
##
## このスクリーンは、本ゲームと Ren'Py に関するコピーライトとクレジットを表示し
## ます。
##
## このスクリーンは特別なことをしていません。そのためカスタムスクリーン作成の例
## として利用していきます。
screen about():
    tag menu
    ## 次の use ステートメントは game_menu(ゲームメニュー)スクリーンをこのスク
    ## リーンの内に表示しています。use 文の子(内包されたオブジェクト)の vbox
    ## は game_menu スクリーンの中の viewport に配置されます。
    use game_menu(_("情報"), scroll="viewport"):
        style_prefix "about"
        vbox:
            label "[config.name!t] Version [config.version!t]\n"
            #text _("『迎春! スキスキ小籠包』")
            ## gui.about は、通常 options.rpy で設定します。
            if gui.about:
                text "[gui.about!t]\n"
            text _("作:{a=http://kumakumaf.amigasa.jp/}くまのこ道{/a}\nMade with {a=https://www.renpy.org/}Ren'Py{/a} [renpy.version_only].\n\n[renpy.license!t]")
            text _("\n\n【Thanks】\n{a=https://www.renpy.org/} ・リンク{/a}\n{a=https://www.renpy.org/} ・リンク {/a}\n{a=https://www.renpy.org/} ・リンク{/a}")
## 次の変数は about スクリーンにテキストを表示します。この変数は options.rpy で
## 再定義されるため、options.rpy の同じコードを消去しないと反映されません。
define gui.about = ""
style about_label is gui_label
style about_label_text is gui_label_text
style about_text is gui_text
style about_label_text:
    size gui.label_text_size


まとめ!


label _(" ") →テーマカラーの色で" "の中に書いたテキストがでる。
 text _(" ") →普通の文字の色で" "の中に書いたテキストがでる。

◆ add "images/bt_rs.png" xalign 0.2 yalign 0.2 ←add””で画像表示。原寸だなあ。
             add "images/gg1.png" zoom 0.5 で大きさ調整可能(追記)

◆”  ”の中
・リンクが貼れる。{a=☆URL☆} ・リンクテキスト {/a}
・\nで改行できる。

初歩すぎるけどこれしかわからない/(^o^)\
なんかわかったら追加します

あと、ダブるけど
◆エンドフラグで分岐するには↓

             if not persistent.finishedfull: #ラスエンドみてないなら
                    text _("まだ見ぬエンドがあるよ。")
               else:
                    text _("フルコンプありがとう!")
                    add "images/copm.png" xalign 1.2 yalign 0.0 #コンプマークみたいなのをたすとか
だんだんおかしな方向になってきた。

エンドフラグは同様にスクリプトにかいとく。(persistent.●●
    $ persistent.finished = True

以下、screens.rpy
## Help(ヘルプ)スクリーン #### から一部抜粋。


screen keyboard_help():
    hbox:
        label _("END1") #←Enter が入ってたとこ。
#       text _("台詞を読み進める。ボタンを選択する。") ←コメントアウトします
        if not persistent.finished: #エンドみてないならこっち
            text _("クリアしていないよ。")
        
        else:
            text _("クリアしているよ!。")
    hbox:



なんて融通が利くんだrenpyちゃん……

追記!
このままだと「キーボードがついてる人に出る画面」になっているので
その辺を外してみました↓ 考え方は一緒。怒涛のコメントアウトしてるだけだよ


## Help(ヘルプ)スクリーン ##############################################################
##
## キーやマウスの割り当てに関する情報を表示するスクリーン。実際のヘルプは他のス
## クリーン(keyboard_help、mouse_help、gamepad_help)を使います。
screen help():
    tag menu
#    default device = "keyboard"
    use game_menu(_("エンドリスト"), scroll="viewport"):
        style_prefix "help"
        vbox:
            spacing 13
            hbox:
                label _("エンドリスト")
               # textbutton _("エンドリスト"): #action SetScreenVariable("device", "keyboard")
                #textbutton _("操作方法(マウス)") action SetScreenVariable("device", "mouse")
                #textbutton _("ゲームパッド") action SetScreenVariable("device", "gamepad")
            #if device == "keyboard":
                #use keyboard_help
           # elif device == "mouse":
                #use mouse_help
           # elif device == "gamepad":
                #use gamepad_help
#screen keyboard_help():
            hbox:
                label _(" ")
                text _(" ")
            hbox:
                label _("END1")
 #       text _("台詞を読み進める。ボタンを選択する。")
                if not persistent.finishedrs: #エンド1のフラグ(persistent.finishedrs)確認
                    text _("???")
                else:
                    text _("エンド1を見たよ!")
            hbox:
                label _("END2")
 #       text _("台詞を読み進める。ボタンを選択する。")
                if not persistent.finishedgk: #エンド2のフラグ(persistent.finishedgk)確認
                    text _("???")
                else:
                    text _("エンド2を見たよ!")
            hbox:
                label _("END3")
 #       text _("台詞を読み進める。ボタンを選択する。")
                if not persistent.finishedrm: #エンド3のフラグ(persistent.finishedrm)確認
                    text _("???")
                else:
                    text _("エンド3を見たよ!")
            hbox:
                label _("END4")
 #       text _("台詞を読み進める。ボタンを選択する。")
                if not persistent.finishedhy: #エンド4のフラグ(persistent.finishedhy)確認
                    text _("???")
                else:
                    text _("エンド4を見たよ!")
            hbox:
                label _("END5")
 #       text _("台詞を読み進める。ボタンを選択する。")
                if not persistent.finishedlo: #エンド5のフラグ(persistent.finishedlo)確認
                    text _("???")
                else:
                    text _("エンド5を見たよ!")
            hbox: #なんとなくスぺースをあける・・・
              label _(" ")
              text _(" ")
            hbox:
               label _("フルコンプ!")
#   #    text _("台詞を読み進める。ボタンを選択する。")
               if not persistent.finishedfull:  #コンプ用のフラグ(persistent.finishedfull)確認
                    text _("まだ見ぬエンドがあるよ。")
               else:
                    text _("フルコンプありがとう!")
                    
##                if not persistent.finishedfull: #ラスエンドみてないなら
#                  text _("まだ見ぬエンドがあるよ。")
#                else:
#                 text _("フルコンプありがとう!")



本当は本来のタブっぽいのをひらきっぱにして2ページ目(アイフレーム?)
みたくして使いたいのだが(キーボード、マウス→ページ1、ページ2にかきかえ)
・・・わからなかったぜ
≪ 前のページ   *HOME*   次のページ ≫
ブログ内検索
このブログについて
ゲーム作りたい人のメモ。
講座というほどのものでもないおぼえがきです。
何か参考になるところがあればご自由にどうぞ。
ほぼ自分用なので、日本語いきあたりばったりでごめんなまし。

※ここに書いたことは全体的に
「本当はなんとかする方法があるかもしれないけど、私にはわからない」が多く…
あんまり仕組みを理解していないし誤解もあるかもしれません。
というわけで責任は負いません。ごめんなさい!

リンク:ゲーム作ってる本館
material by bee  /  web*citron
忍者ブログ [PR]