×
[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
■まえがき
前の記事で「立ち絵決定版」とかいってたけど全然決定版じゃなかったのでもうだめです。シン・ってつけると最近の世の中的にはザ・ファイナルな勢いが出るらしいので
そういう記事タイトルになりました。
中身としては、ご厚意で教えていただいた「layeredimage」での立ち絵の差分指定方法です。
公式にはこちら→レイヤード画像
紹介いただいた目パチ研究記事→layeredimageと目パチ / Ren'Py memo
ありがとうございました……。
■layeredimage
layeredimageとは! 画像をレイヤードするやつです(そのまま・・・)ベース画像の上にパーツを載せる形です。
ベースを透明にしておくと衣装差分も「パーツ」にできます。
福笑い方式でないならim.Compositeでも・・・と思うかもですが
汗とか照れとかのオプションを載せたいときの自由度がダンチだったり
大きさ指定しなくてすむとかそもそもスクリプトがスマートだったりとかで
絶対こっちのがいいです。
im.Compositeみたく組み合わせ全パターンを定義する必要がないので、
とってもスリムな感じになります。やった
■layeredimageによる立ち絵
⓪画像の手配とキャラ番号(「」と#のあとがしばらく画像ファイル名です)・キャラ番号を「0」としました。
・ベース画像を用意→「0_base.png」#キャラ番号_base
・差分は 1⃣ h→服、2種 「0_H_H1.png」#キャラ番号_group名大文字_group名と任意の番号
2⃣ b→眉、5種 「0_B_B1.png」#キャラ番号_group名大文字_group名と任意の番号
3⃣ m→目、10種 〃
4⃣ k→口、15種 〃
5⃣ d→オプションパーツ 3種(透明画像含) 〃
h、bとかがgroup名です。これらがそれぞれ後述するgroupってやつになる。
ブローのbで始まって「me」とか「kuchi」とかやめろ~とかなるかもですが
(mouthもmだし)なんだか慣習でして・・・・
※画像ファイルの場所は今回はimages直にしました。
※画像ファイルの大文字(実際のファイル名)と小文字(定義)の関係が謎ですが、
お手本のままお借りしています(恵方を拝みながら)
①face.rpy(差分指定用に別に作ってます)での定義
layeredimage 0:#キャラ番号=●
always "0_base"#ベース画像ファイル名
group h:#服のグループ
attribute h1 default#1つめ、ドレス
# "0_H_H1"(意味ないですが画像名のメモとして残しています)
attribute h2#2つめ、普段着
# "0_H_H2" (〃)
group b:#まゆ ●_B_B数字.png
attribute b1 default
attribute b2
attribute b3
attribute b4
attribute b5
group m:#め ●_M_M数字.png
group m:#め ●_M_M数字.png
attribute m1 default
attribute m2
attribute m3
attribute m4
attribute m5
attribute m6
attribute m7
attribute m8
attribute m9
attribute m10
group k:#くち ●_K_K数字.png
attribute k1 default
attribute k2
attribute k3
attribute k4
attribute k5
attribute k6
attribute k7
attribute k8
attribute k9
attribute k10
attribute k11
attribute k12
attribute k13
attribute k14
attribute k15
group d:#そのた
attribute d0 default#デフォルトはオプションなし(透明画像)にしている
attribute d1
attribute d2
attribute d3
②script.rpyでの定義define nk = Character('ネシュカ', color="#e9f7b7", image="0")#キャラ番号=0
③script.rpyでの本文中
show 0 h2 b1 m2 k2 d0 at top with dissolve#表示
nk h2 b2 m4 k4 d1 "テストですわ――" #顔変化(普通1セリフ目は表示時と同じ顔だけど)
#定義済キャラ名(nk)とセリフの間に差分(layeredimage 0として定義)をのせてできあがり!!
これって一回作っといて固定で描きだしていけば(眉=bでb1は上がり眉!とか)
すごく楽なのではと思いました。そういう顔しないよってキャラもいそうですが・・・
女児のころやってた「番号だけ相手に聞き取って、描く方は事前に作っといたシートから
対応する番号のパーツを描いて人間の絵を完成させるやつ」みたいですね・・・
太古の昔のおえかきキッズ時代からやってること変わってねえってことだな・・・
#定義済キャラ名(nk)とセリフの間に差分(layeredimage 0として定義)をのせてできあがり!!
これって一回作っといて固定で描きだしていけば(眉=bでb1は上がり眉!とか)
すごく楽なのではと思いました。そういう顔しないよってキャラもいそうですが・・・
女児のころやってた「番号だけ相手に聞き取って、描く方は事前に作っといたシートから
対応する番号のパーツを描いて人間の絵を完成させるやつ」みたいですね・・・
太古の昔のおえかきキッズ時代からやってること変わってねえってことだな・・・
●顔グラ(研究後別日にて・・・)
サイドイメージ(顔グラ)で使うときは
同じくlayeredimageでサイドイメージのところにスクリーンを作って
変数を使って差分を表示させるそう。(今後着手します)
試してまとまったら何か追記するかもですが、立ち絵の方と違って
顔グラの方は内容の近い公式の元記事が見つけらんなかったものでして・・・
まったくもって教えていただいた内容なので、ただそれを紹介するだけになるというか
人様の手柄というか、スクリプトの著作権のようなことがあるんでは?と思うと
ここで開示すんのはどうなのか?みたいな思いもあり・・・
まあただ多分「試してまとまる」のが結構先なので(私の理解力の問題で)
その時に考えます!!!
PR
追記!(21/6/29)
WebFontSearchがいいですよと教えていただきました
ライセンスとか文字のスタイルで検索できる!!!
そしてこのメッセージボックスを想定してくださいといわんばかりの(?)
フォントサイズ調節機能????
おかげさまでめんどくさくて諦めちゃった(小声)日本語ちょうどいいフォント
探しの旅に出られます!
生かされて生きている・・・・(宗教?)
ところで何に使うとか特に考えないで挙げるとすると
好きなタイプのフォントはtendernessです。
全然詳しくないんですがローマン体(今調べた)が好きなようで・・・
憧れで「a」をこういうくるっとした感じで書いていたら
数学の先生に「2」に見えるからやめなさいと言われた過去があります!
以後こっそり使うようにしました ワルだからよ
WebFontSearchがいいですよと教えていただきました
ライセンスとか文字のスタイルで検索できる!!!
そしてこのメッセージボックスを想定してくださいといわんばかりの(?)
フォントサイズ調節機能????
おかげさまでめんどくさくて諦めちゃった(小声)日本語ちょうどいいフォント
探しの旅に出られます!
生かされて生きている・・・・(宗教?)
ところで何に使うとか特に考えないで挙げるとすると
好きなタイプのフォントはtendernessです。
全然詳しくないんですがローマン体(今調べた)が好きなようで・・・
憧れで「a」をこういうくるっとした感じで書いていたら
数学の先生に「2」に見えるからやめなさいと言われた過去があります!
以後こっそり使うようにしました ワルだからよ
■デフォルトフォント事変
新しいRenpyのバーションでは日本語の同梱デフォルトフォントが変更に
なったようなのですが、一部含まれていなくて表示できない漢字とか記号があるようです。
なったようなのですが、一部含まれていなくて表示できない漢字とか記号があるようです。
自分が打ち込んだので見つけた範囲だと、不「躾」、不「埒」、「♪」とか?
困った場合は自分でフォントを手配しましょう。
それかもう縛りプレーだと思ってゴリ通しましょう(こんなことばっか言ってる!)
それかもう縛りプレーだと思ってゴリ通しましょう(こんなことばっか言ってる!)
フォントの変更はGUI.rpyの
「## フォントとフォントサイズ 」のあたりで変更できます。
フォントファイルを置く場所は既存のフォントが置いてあるとこと
同じところに置けば困ることはないでしょう。
同じところに置けば困ることはないでしょう。
なおフォントはライセンスを調べて使う必要があります。
組み込んでいいやつでないといけません。
無論最終チェックは自分責なんですが、
よそ様のウディタゲーで独自フォントを導入されているものが参考になると思います。
(組み込んで使用という状況が同一で、サンプル母数が多い)
無論最終チェックは自分責なんですが、
よそ様のウディタゲーで独自フォントを導入されているものが参考になると思います。
(組み込んで使用という状況が同一で、サンプル母数が多い)
実際に組んでみたら細すぎたやら太すぎたらやらでむずかしーんだこれが!!
■サイドイメージ=メッセージボックス上に出る顔グラ
に挑戦しました。
〇できた
・普通に表示する
→まあ、マニュアルの通りやれば・・・
image side aa 01 = "aa/aa001.png"
#↑image side ★★で定義して、
define tr = Character('トラヴィス', color="#f7b9b7", image="aa")#キャラ名定義
シナリオ内で記述、ホイ
tr 01 "セリフここに"#
・位置の調整(screens.rpyのここ)
〇できなかった
・通常の立ち絵みたく、「im.Composite(」で差分を切って
ベースにのせて表示させるやり方
side とかつけてもダメでした、あきらめて1枚1枚ファイルつくります・・・
に挑戦しました。
〇できた
・普通に表示する
→まあ、マニュアルの通りやれば・・・
image side aa 01 = "aa/aa001.png"
#↑image side ★★で定義して、
define tr = Character('トラヴィス', color="#f7b9b7", image="aa")#キャラ名定義
シナリオ内で記述、ホイ
tr 01 "セリフここに"#
・位置の調整(screens.rpyのここ)
## サイドイメージ(テキストボックス横に表示するイメージ)があれば、テキスト
## の上に表示します。ただし variant(画面のタイプ)が phone の場合は、スペー
## スが足りないので表示しません。
if not renpy.variant("small"):
add SideImage() xalign -0.06 yalign 1.0
ちょっと右に来すぎていたのでXを0.0→-0.06にしています。〇できなかった
・通常の立ち絵みたく、「im.Composite(」で差分を切って
ベースにのせて表示させるやり方
side とかつけてもダメでした、あきらめて1枚1枚ファイルつくります・・・
選択肢枠用画像を別途用意したものに差し替えたとき困ったことのメモ。
gui.rpy
・(最初の2行のところ)用意した画像の高さと幅の値を指定しないとイカン
・Boders=ボタンの上に乗っかる文字の距離
→2こめをいじったら文字の高さが変わったので、上からの距離?
(yalignではかわらなかった・・・・)
・アイドル中、ホバー中の文字の色を変えるのもここ。
◆最近優勝って言葉をよく聞くけど意味が分かっていません!!!
スクリーンについてちょっとだけ前より理解したので書いていきます。
スクリーンって呼び出すものらしいですよ。
チュートリアルをコピペしても出ないなあって苦しんでたんですが
そもそもscreen.rpyを見ろやという話でした。
screen.rpyにこういうスクリーンがありますわ~と書いておいて
→screen rerult_screen():#→screen ●●_screen():ダヨ
実際のスクリプト(ラベルの中)では呼び出して表示させたり隠したりする。
→ show screen rerult_screen #呼び出し!
現状のレベルだと隠し方の挙動がちょっと意味不明でノーコンなんですが
(変数の内容を表示させたくて、でも数字を代入すると勝手にshowされちゃう?)
そこは(今後も頑張れば)未来に解き明かされることでしょう。
以下に例をば。
#◆screen.rpyに足す。
##ほかのスクリーンを参考にボタンとかテキストとかを載せたが正直何もわかってない。
なお、screen.rpyでボタンの出る出ないを変数で管理するにはこんな風↓
※action Jumpは飛び先ラベルを表しているので作らないとエラーになるとおもう
vbox:
スクリーンについてちょっとだけ前より理解したので書いていきます。
スクリーンって呼び出すものらしいですよ。
チュートリアルをコピペしても出ないなあって苦しんでたんですが
そもそもscreen.rpyを見ろやという話でした。
screen.rpyにこういうスクリーンがありますわ~と書いておいて
→screen rerult_screen():#→screen ●●_screen():ダヨ
実際のスクリプト(ラベルの中)では呼び出して表示させたり隠したりする。
→ show screen rerult_screen #呼び出し!
$ renpy.pause() #ポーズがないとだめみたい。 ウェイトに変えられるか試す ?
hide screen rerult_screen #呼び出し
みたいな使い方をするっぽいです。現状のレベルだと隠し方の挙動がちょっと意味不明でノーコンなんですが
(変数の内容を表示させたくて、でも数字を代入すると勝手にshowされちゃう?)
そこは(今後も頑張れば)未来に解き明かされることでしょう。
以下に例をば。
#◆screen.rpyに足す。
##ほかのスクリーンを参考にボタンとかテキストとかを載せたが正直何もわかってない。
screen rerult_screen():
frame:
xpos 20 ypos 10
vbox:
text "リザルト" size 25
text "探索場所:[tans_starna] " size 23#※「tans_starna」は変数の名前です。
textbutton "もう一度同じ場所を探索" action Jump("retry") xpos 0.1 ypos 1.5 background "#EEE"
#◆こっちはscript.rpyとかのシナリオ中のラベルの中に。
textbutton "もう一度同じ場所を探索" action Jump("retry") xpos 0.1 ypos 1.5 background "#EEE"
#◆こっちはscript.rpyとかのシナリオ中のラベルの中に。
label next:
show screen rerult_screen #呼び出し!
$ renpy.pause() #ポーズがないとだめみたい? ウェイトに変えられるか試す
# e"リザルトよびだした かいめing!"#なんかセリフとか
hide screen rerult_screen #消し消し!
label retry:
# e"リザルトよびだした かいめing!"#なんかセリフとか なお、screen.rpyでボタンの出る出ないを変数で管理するにはこんな風↓
※action Jumpは飛び先ラベルを表しているので作らないとエラーになるとおもう
vbox:
if first == True:#変数「first」がtrueのときとそうでないとき
textbutton "◆戻る◆" action Jump("makeenda") xpos 0.53 ypos 4.9 background "#300"
else:
textbutton "◆説明◆" action Jump("makeabout") xpos 0.53 ypos 4.9 background "#300"
if kata_rr > 0::#変数「kata_rr」が0より大きいときとそうでないとき
textbutton "赤のかたまり………所持:[kata_rr]" action Jump("rrkt") xpos 2.3 ypos -1.5 background "#900"
else:
textbutton "赤のかたまり………所持:[kata_rr]" action Jump("none") xpos 2.3 ypos -1.5 background "#900"
なんで表示させないんじゃなくて代わりのボタンを出す風にしているかというと、
表示させないようにすると上や横に勝手に詰められて座標がずれちゃうからです!!!
なんでかわかんなくてですね………応急措置みたいですね……
xposとかyposが座標、backgroundが文字の背景色です。sizeが文字の大きさ。
action Jump("none")がジャンプするラベル。
↓ところでこのフレームってやつはguiフォルダに入ってる画像が使われるっぽく
文字色によっては画像を差し替えちゃうと見づらくなったりするので注意。
いやどっかで設定ができるとは思うんだが、やり方が分からない!(恒例)
なんで表示させないんじゃなくて代わりのボタンを出す風にしているかというと、
表示させないようにすると上や横に勝手に詰められて座標がずれちゃうからです!!!
なんでかわかんなくてですね………応急措置みたいですね……
xposとかyposが座標、backgroundが文字の背景色です。sizeが文字の大きさ。
action Jump("none")がジャンプするラベル。
↓ところでこのフレームってやつはguiフォルダに入ってる画像が使われるっぽく
文字色によっては画像を差し替えちゃうと見づらくなったりするので注意。
いやどっかで設定ができるとは思うんだが、やり方が分からない!(恒例)
frame:
xpos 20 ypos 10
ブログ内検索
最新記事
(06/04)
(06/17)
(06/11)
(06/08)
(12/12)
このブログについて
ゲーム作りたい人のメモ。
講座というほどのものでもないおぼえがきです。
何か参考になるところがあればご自由にどうぞ。
ほぼ自分用なので、日本語いきあたりばったりでごめんなまし。
※ここに書いたことは全体的に
「本当はなんとかする方法があるかもしれないけど、私にはわからない」が多く…
あんまり仕組みを理解していないし誤解もあるかもしれません。
というわけで責任は負いません。ごめんなさい!
リンク:ゲーム作ってる本館。
講座というほどのものでもないおぼえがきです。
何か参考になるところがあればご自由にどうぞ。
ほぼ自分用なので、日本語いきあたりばったりでごめんなまし。
※ここに書いたことは全体的に
「本当はなんとかする方法があるかもしれないけど、私にはわからない」が多く…
あんまり仕組みを理解していないし誤解もあるかもしれません。
というわけで責任は負いません。ごめんなさい!
リンク:ゲーム作ってる本館。