給田/背泳 Sep/16/2024 11:18

【公開】搶血牙ver1.0+Ren'Py小技[2024.09]

お久しぶりです、給田です。半年ぶりのCi‐en更新! まさかこんなにサボることになるとは。とはいえゲーム制作自体をサボっていたわけではなく、七転八倒のシナリオ作業の末、無事、新作「搶血牙」を先月末に公開することができました。DLはこちらから!

短編でかつ制作中の「魚肚白」の外伝というイレギュラーな作品形態にはなりますが、いつか絶対挑戦すると決めていた「女攻め」「R‐18」要素のある作品を今回形にできてとても嬉しいです。とはいえ、本当は「魚肚白」で2つとも達成する予定だったんですけどね!!

せっかくなので、もう少し今回の「搶血牙」の制作のきっかけや理由を語りたいと思います。

「搶血牙」制作背景

  • 「女攻めゲ制月間」を知ったから
    今年の初め頃、下記のツイートで今夏、女攻め要素のあるゲームの制作月間の企画があると知りました。
    https://x.com/shushumarumaru/status/1781899911753261435
    後述するようなことを思っていたこともあり、これはいっちょやってみるか!!! と、準備としてシナリオを書き始めることとしました。が、結局シナリオは最後までいつもどおり七転八倒😇 結局、締め切りの8/21には全く間に合いませんでした……これが私の制作道だ……😇😇😇
  • 「魚肚白」が「女攻め」作品であるというアピール
    上述のとおり、「搶血牙」の派生元である「魚肚白」自体が女攻め要素のあるゲームなので、普通に「魚肚白」の制作をすればいい・優先すべきというのはまさにそのとおりなのですが、自分の中に一抹の不安がありました。
    「これ(=魚肚白)、実はサイだけじゃなくヂェンルートでも最終的に女攻めのシーン入るけど、どこまで伝わっているんだ……?」と。
    一応、サイトではキーワードとして言及してはいるんですが、サイト経由ではなく各種DLページからダウンロードしたらそのままプレイするであろう方はそこを見る機会すらないだろうし、DLページに万人に見える形で表記するのは体験版時点の内容だとちょっと違う(むしろ詐称になってしまう)し。
    序盤のヂェンがあまりにイケイケで攻めっぽくて、これが女攻めになるってわかる人おる……? とも。(なお、それなのに女攻めにもつれ込むのが圧倒的我が癖なのでここは一切譲れない)
    そんなこんなで、未公開作の行く末をわずかとはいえ示すことに葛藤がなかったわけではないのですが、単純なネタバレと違って作り手として「期待してほしいポイント」として晒したかったという気持ちが大きく、制作にふみきったのでした。
    どのみちヂェンに関しては「魚肚白」の本編でのR‐18シーンの他に、今回「搶血牙」で描いたような「その後の情事」を何らかの形で創りたいと思っていました。ただ、「魚肚白」の「おまけ」にいれるとサイとのバランスが崩れるからどうしたものかと悩んでいたところだったので、丁度よかったというのもあります。
  • 単純に作りたかった
    まあこれが7割です。ここまでごちゃごちゃそれらしい事書きましたが、それは残りの3割です。予想外に「魚肚白」の道のりが長くなりすぎて、遠い目になることが多すぎたので、公開中の体験版以外にも簡単な関連作を作っておきたく。また、「魚肚白」はセリフ多め、掛け合い多めで、本来だらだらと地の文を続けるところのある自分の癖的に、小さいながらもフラストレーションが地味にたまっていたのもありました。いろいろな面でガス抜き的な動機がかなり強かったわけですね。

もう少し自分の「女攻め」への情熱を語ってもいいかなと思っていたのですが、今回それを入れるとかなり長くなりそうなので次回更新時の話題として取っておこうと思います。
再度になりますが、「搶血牙」はBOOTHからDL可能です。「プレイしたよ!」の一言でも良いので、Wavebox等にお送りいただけると嬉しいです🙌


以下は今回の「搶血牙」で使ったRen'Pyの小技? とも言えないささやかな機能の紹介です。ご参考までに実際に使っているスクリプトもさらしておりますので、Ren'Py使いの方のお役に少しでも立てれば幸いです。
(※それぞれのコードについてあまり細かい説明はしていません。前回のTips同様、足がかりさえあれば公式文書を調べつつ自力で実装できる方向けの内容になっています)

最新作で使ったRen'Pyの小技

1.フォント選択機能

今回、とにかく文字を読ませる内容(総文字数28,700字)だったので、「雰囲気重視で使用フォント選びたいのはやまやまだけれど、読んでて疲れるのはダメだよな…」と思って入れることにしました。用意した選択肢(フォント)は、下記3つです。ご参考まで。
・雰囲気:高、可読性:低 … Oradano明朝
・雰囲気:中、可読性:中 … 源ノ明朝
・雰囲気:低、可読性:高 … LINESeed

さて、いよいよフォントの選択機能です。いくつか仕込みが必要です。

①gui.rpyなどのフォントの設定箇所に次のようなコードを入れる。


軽く説明すると、font1がテキストウィンドウ、font2がその他設定画面等のUIのフォント。分けている理由としては、Oradano明朝を選んだ時に設定画面までOradano明朝になってしまうのはユーザビリティとして良くないな……となったため、Oradano明朝選択時はUIは同じ明朝の源ノ明朝にしたかったからです。
参考:Ren'Py公式文書

②各フォントセット名の定義をする。
↑画像の"os", "so"の箇所に相当。後述の2.フォントの補完などの関係で必要。逆に2.のようなことをしなくていいなら、フォントファイル名(~~~.ttf, .otf)等でOKなのでここは飛ばしてよい。


なんか"os"の定義がすごいことになってますが、この理由は2.で解説します。
参考:Ren'Py公式文書

③オプション画面等に選択ボタンを用意する。


上述のとおり、LINESeed=gs、源ノ明朝=soはそのままUI=font2も同じフォントになりますが、Oradano明朝=osのときだけUI=font2が源ノ明朝=soになるようになってます。

2.フォントの補完

上記のフォントのうちOradano明朝は、デザイン系のフォントにしては収録文字数はかなり多いものの、やはり常用性の低いいくつかの漢字に対応していませんでした。そんなとき、表示できない字は源ノ明朝で表示するよう、Ren'Pyの機能を使って設定することができます。その作業をしているため、②フォントセット定義がすごいことになってるわけですね!(白目)※下記画像は再掲。


(今思うとなんかもうちょっとスマートな記述方法なかったんか……と思いますね。ひたすらコピペって見にくいな……)
(なお、どの字が対応していないかはとにかく組み込んで読んでみないとわからないので、推敲しつつ抜けた字=非対応字として↑のコードに追加……みたいなことを延々やりました。なんかもうちょいスマートに以下略)

この機能を使えば、今回のように「気に入ったフォントがあるけれど、これだけだとすべてをカバーできない!」とか、「ひらがな・カタカナのみのフォントだけど、漢字と組み合わせて使いたい!」のような場合はこれをつかうことで対応できるというわけですね。
ちなみに今回、Oradano明朝の未対応漢字の補完以外にも、源ノ明朝の「」や()が縦書き時になんか崩れてしまって気に入らなかったので、逆にそこはOradano明朝で補完していたりします。

完全に蛇足かつ思い出話になるのですが、処女作「みどりのうろこ」でもこのフォントごとの漢字の対応・未対応問題に最終盤でぶちあたり、ゲ制初心者でかつ(今もその片鱗がありますが)完璧を目指したがる傾向のある自分はぎゃ~~~~ッと暴れてました。結局その時は、雰囲気もそれほど変わらず、もっと収録漢字の多い組込みOKフォントを見つけることができて事なきをえました。ちなみにその問題の字とは「猜疑」の「猜」の字。小説など文語では当たり前に出てくるけれど、常用かといわれれば確かに違う、か……? 一応漢字検定1級には出てくるらしいからやや腑に落ちないけども……。

3.バックログのフォント大小変換

今回、地の文多めの内容になりましたので入れた機能です。とはいえ念頭にあったのは、「最初に未読スキップをしてバックログで小説のように読む派」の方の存在でした。数こそ少ないですが、そういう派の方もいるというのは漏れ聞こえていましたので(とはいえSEや背景・画像遷移などの演出をちまちま入れ、小説ではなく『ゲーム』を制作している者としては微妙な心情ではあるのですが)、ゲーム性が低くノベル面が全面にでているモノを自分が作っているのも事実ではあるし、と、そうした方のニーズに合うようにと考えてつくりました。そうすれば必然、ごく普通にバックログを使うプレイヤーの方のニーズも満たせるという発想ですね。今回、後述のとおり使用フォントが3種類選べるようになっており、フォントごとの文字サイズ、可読性が異なることもあったので、入れておいてよかった機能ではないかと思います。
入れた背景はこのへんにしておいて、実際のスクリプトです。

①gui.rpyなどのフォントの設定箇所に次のようなコードを入れる。


↑の1.①と理屈は同じです。

②バックログ画面に大小ボタンを用意する。


①で設定しているのだからgui.SetPreference~~は要らなくない? と思うのですが、画面をリビルドするために必要だったりします(これがないと変数が変わるだけで画面上のフォントが変わらない)。ただこのリビルドって動作がかなり重いので、なんかもうちょい別の手段ないかな~と思っています。お心当たりある方は教えていただけると幸い。

自分で思いつく範囲では「搶血牙」で使った主な機能としてはそのあたりかなと思います。それ以外は普段のゲームよりずっとずっとシンプルかつ省力化第一で作ったので、特にない……はず! とはいえ、今作に限らず「この機能ってどうやって実装したの?」などのご質問があれば、随時お声がけくださればできる範囲でお答えしようと思いますので、お気軽にどうぞ~

If you liked this article, support the creator with a tip!

Sending tips requires user registration.Find details about tips here.

Search by Article Tags

Monthly Archive

Search by Exclusive Perks

Search Articles