投稿記事

2020年 11月の記事 (3)

セツナソフト 2020/11/28 18:26

先行体験版(有料プラン向け)※11/30追記

相麻ゆづきです!
今回は先行体験版についてです!


※サムネ用

前置き

今月は序盤のシナリオとダンジョンが通しプレイできるように、あれこれシステム周りを詰めたり、文章を書いたりしてました。

ということで、Ci-enに登録してから1年以上が経ちますが、ようやく触れる形のものをお出しできるようになりました。ローグライクというジャンルの特質上、遊べる段階まで作り込むのが大変ですごく時間がかかってしまった……。

進捗的に無料プランと差別化するのが難しかったので、今回は有料プラン向けのみとなります。正式な体験版はもっと制作が進んだところで改めて出しますので、そちらについては今しばらくお待ちください!

1作目を制作している新規サークルという立場ゆえ、資金的にはギリギリのところを走っている面があるので、ご支援についてはとても助かります。ご支援いただいたお金については素材代など制作の短縮に使えそうなところに充てていきます。

体験版範囲

序盤の洞窟ダンジョン~洞窟脱出までプレイすることができます。
プレイ時間はだいたい30分~1時間くらいかな?

ゴブリンやスライムとのHシーン等に加え、バッドステートやフィートによる累積で飛躍的に快楽が増大していくようなプレイも本体験版で可能です。ローグライクでしかできないようなエロに力を入れているつもり。

まだまだ未実装の部分も多いので、その点はあらかじめご了承ください。特に大きな序盤の未実装ポイントとしては以下のものがあります。

  • バックログ機能
  • ファストトラベル機能
  • 洞窟ダンジョン上級
    通常のダンジョンは難易度を低めに設定していますが、食材を集めるのに多少の周回が必要になってしまうので、もう少し難易度が高く、食材を効率よく集められるダンジョンを入れたいなと思ってます。
  • 洞窟エリアのボス
    巨大スライムをボスとして用意+敗北イベントを入れたいのですが未着手。

細かいところとしては、露出リアクションが未実装だったり、トラップの種類がまだまだ少なかったり。

引き継ぎについて

今後も何かしら体験版を出していくことになると思いますが、システム面はまだ大きく弄ることがあるのでセーブデータの引き継ぎはできません。

……が、何もかも引き継ぎできないのもアレなので、部分的に引き継ぎができないかと少しだけ工夫してみました。

ゲーム内でセーブを実行すると、通常のセーブファイルに加えて「Elumia.sav」というファイルが生成されます。

このファイルには最後にセーブしたデータの「現在の装備」「Hステータス」についてのみ格納しています。

今後のバージョンでは、これらのデータは引き継げるようにしますのでHステータスは気兼ねなく上げていただいて大丈夫です。

バグ報告について

もし何かバグを見つけましたら、コメント欄にてご報告いただけると嬉しいです。最近はわりとマメにコメント返信も行ってるのでバグじゃなくてもお気軽にどうぞ!

ランダム要素の組み合わせパターンが多いゲームなので、報告の際は発生した状況を細かく書いていただけるとすごく助かります。

なお、今後のいかなる体験版のバージョンにおいても、プレイ時のスクショ等については自由に上げていただいて構わないです。(もちろん、ゲーム本体の無断転載については固く禁じます)


※11/30 追記
軽微なバグの修正を行ったver0.02に更新しました。

【 300円 】プラン以上限定 支援額:300円

先行体験版 ver0.01

このバックナンバーを購入すると、このプランの2020/11に投稿された限定特典を閲覧できます。 バックナンバーとは?

セツナソフト 2020/11/12 21:58

料理システム

相麻ゆづきです!
今回は料理システムについてです!

ちなみに、サムネはボツになったSDイラスト。

料理カットインで使おうと描いたはいいけど、組み込んだら思ったより演出がクドくなったのと、SDイラストの着せ替え差分はどうするのか?みたいなことを考え始めたら無理して入れるほどでもないかあ……となってあえなくボツに。

せっかく描いたのでヘルプの挿絵にでも使うかもしれません。


料理システム

Ci-enに登録した当初からずっと、本ゲームはダンジョンを行き来して食材を集めてレシピの完成を目指すゲームということを書いてきているのですが、何気に料理周りの画面を出すのは今回が初めてですね。


食材を集めて……


レッツ料理!!

料理システムそのものは相当前に組んでいたのですが、シナリオの実装が進んだことでやっと記事にできる形になりました。

序盤に出会うアリボウというキャラクターに食材を渡すと料理が行えます。

初回の料理時には、その料理についてエルたちのミニトークが繰り広げられます。

ミニトークを通じてキャラを掘り下げたり世界観を掘り下げたり、ちょっとした息抜き要素ですね。

動画で出てくる「サクラト」という国は、なんとなく想像つくと思いますが日本モチーフです。名前だけ出てきますが、ゲーム中に行ける場所ではありません。(いつかサクラトを舞台にした和風ファンタジーも作ってみたいな)

ちなみに動画では洞窟で料理をしてますが、これは序盤のチュートリアルシナリオだけですね。基本的には拠点となる酒場で料理をすることになります。


アリボウ

アリボウというキャラクターについては、相当前の記事で一度紹介していますが、途中でイラストを描き直したりしたので改めて紹介。

女主人公エロゲで顔のある男性キャラクターを出すことには迷いがあるのですが、ここは自分の趣味に従って入れてます。

基本的に対人Hシーンはスラムやら盗賊やらの陵○シーンを優先して組むことにしてるのでその点については安心して貰えると。

プレイヤーの選択次第で多種多様な展開を見せるのがロールプレイングの醍醐味だと思ってるから、純愛シチュとかも本当は入れたいんですけどね。(選択次第で純愛もあり得るキャラが敵に負けて容赦なく陵○されるからこそエロいという宗派)

ただ、そこまで手を出したら規模的に収拾つくかが不安なので、やるにしても制作終盤に余裕があったらになりそうです。


料理とゲームバランス

どこかの記事ですでに似たような話を書いているかもしれませんが、料理に関連してもうちょっとだけお話を。

料理システムそのものはHシーンに直接関係ありませんが、料理システムを実装した経緯にはHシーンが深く関係しています。

本ゲームはダウン状態になると戦闘エロが発生する仕様ですが、たくさん戦闘エロが見たければわざと不利な状況になる必要があって、それがローグライクというジャンルとイマイチ噛み合わせが悪いなというのがありました。

そこで実装した対策が以下の2点。

  • 対策1
    ダウンしても復帰後にはHPが回復し、さらに経験値も得られるという「エロを見た方が攻略が楽になる」というバランスにしています。
    Hシーンを見ながらのプレイならローグライクとしては簡単で、Hシーンを見ずに処女プレイをしようと思ったら難しめ、という調整を目指しています。

  • 対策2
    ゲームの目的そのものを「ダンジョンの攻略」ではなく「食材を集めてレシピを完成させる」という内容にすることで、敗北してもゲームの進行には特に問題ないようにしています。(敗北してもアイテムはロストしないので、集めた食材は無くならない)

他にも、食材をたくさん持ち帰ろうとすればするほどアイテム欄が圧迫されて敵に犯されるリスクが大きくなる、みたいな駆け引きも生じるので、料理周りは本ゲームの根幹を成している縁の下の力持ちみたいなシステムです。

あとは、メイン進行に関わる料理とは別に、発情効果を高める媚薬などいくつかのHアイテムも作れます。

なのでHシーンにまったく無関係というわけでもないですね。


おわり

今月は先行体験版を出すために細かいとこを詰めてってるので、新しいHシーンを実装したりの作業はできてないです。

下旬はHシーンの実装進められたらいいな!
ということで、上旬はシステム周りの記事でお茶を濁してました。

下旬は1回か2回か記事更新すると思います。
それではまた!

セツナソフト 2020/11/05 23:07

雑記:ウディタメモ

相麻ゆづきです!
今回は技術周りの雑記になります。

ウディタの細かい仕様をちょいちょい忘れるので、忘備録がてら覚えてる限りのことを書き出しておこうという記事。

内容的にはマニュアルに記載されてない細かい仕様の話がメイン。

ユーザーさん的には興味の薄いだろう話になりますが、息抜きの雑談記事ということでご了承くださいませ。


本記事はウディタVer2.24を基準に記述しています。

※追記:ウディタVer3.00以降で特に処理負荷周りは大きく変わっているため、以下の文は参考程度に見てください。

変数操作・文字列操作

呼出値による座標の変化

変数呼び出し値である

9100000+10*Y+X
9180000+X
9190000+X

に値を代入すると主人公やマップイベントが移動する。これによって変数操作だけでキャラを動かすことができる。(これ自体はマニュアルに記載されている)

ゲーム上での挙動は「動作指定」で動かす場合と変わらないが、内部的には異なっていて、以下のような違いがある。

動作指定:移動後に内部の座標が変化する
変数呼出:移動前に内部の座標が変化する

内部の座標とは、変数操作+で取得できる座標のこと。

『エルローグ』では、行動判定そのものは主人公とNPCで同時に行うけれど、NPCは主人公の移動後の座標に合わせて攻撃等をしかけてくるので、変数呼び出し値を用いて移動周りを実装している。

一覧表に記載のない呼出値

変数呼び出し値に関連してもうひとつ。

以下に記す変数呼び出し値は、マニュアルに記載されているが、変数呼び出し値の一覧表には記載されてないので忘れられやすい。

9100000+10*Y+X
X=5 影番号
X=6 方向
X=9 キャラチップ画像(文字列)

9180000+10*Y+X
Y=1~5 仲間

過去の更新履歴を見るに、後からアプデで追加された部分だから一覧表の方には記載されてないのかな?たぶん。

テキストの出力

文字列操作でテキストを出力する際、例文ではtxtファイルが指定されているが、ここで指定する拡張子に制限はない。

よって、iniファイルやhtmlファイルとして出力することもできる。オリジナルの拡張子を指定して入出力することもできる。

一応、拡張子にpngなどを指定することもできるが、破損したファイルになってしまうので流石に無理だった。(バイナリファイルの出力ができると悪意あるexeも作成できてしまいそうだから実装されることはなさそう)

UDB・SysDBへの書き込み

変数操作の「X番の変数呼出」
文字列操作の「代入先を変数で指定」

で代入先にユーザーDBやシステムDBを指定すると、変数/文字列を書き込むことができる。

マニュアルには記載されてないが、実は過去の更新履歴を遡ってみるとVer1.14あたりで隠し機能として実装されている。

なお、ここで書き換えた値はセーブデータには保存されないため、ゲームをロードすると元に戻る。


ピクチャ

ピクチャの処理負荷

ピクチャが表示される際は、画像をメモリに読み込む処理が入るので重い。ピクチャの移動や消去はこれと比べるとだいぶ軽い。また、エフェクトによるピクチャの処理はこれよりさらに軽い。

【処理負荷の大きさ】
ピクチャ表示 >ピクチャ移動・消去 > エフェクト

ピクチャとメモリ

既に同一の画像が表示されているときは、ピクチャ表示をしても新たにメモリに読み込まれることはない。

なので、ローディング処理として、あらかじめ使用する画像を不透明度0で表示しておくと高速でピクチャを表示できるようになる。

ただし、分割数の異なるピクチャは別の画像として扱われるので、ローディング処理を組むときはゲーム中に用いる分割数と同じ分割数で表示しておく必要がある。

(追記)Ver2.25で128MB以下の暗号化ファイルをメモリに読み込む機能がついたから、この範囲内で済むときはセルフローディング処理は作らなくて良さそう。

大量のピクチャの表示

ピクチャの移動等をしなくても、画面にピクチャが表示されているだけで若干の負荷がかかる。そのため、1000枚単位のピクチャを画面に表示しておくような状況だと体感できるレベルで重くなる。

これの対応策として、文字列ピクチャのアイコン機能を使う方法がある。

文章中にアイコンを表示するために使われることが多い機能だが、アイコンに限らずどんなピクチャでも表示でき、特殊文字で細かい位置を調整できるので、複数のピクチャを1枚のピクチャとしてまとめるような使い方ができる。

ただし、文字列ピクチャなので回転や自由変形は行えない。

例:
マップチップを取得してミニマップを描いたり、ゲーム中でドット絵を描いて『どうぶつの森』で言うマイデザインみたいなことをしたり、こういう縦×横の数だけの膨大なピクチャが必要なシステムをアイコン機能でまとめると、かなり軽くなる。

あんまり頻繁に更新されるピクチャだと、文字列操作でアイコンを加算する処理の方が重くなってくるので、この辺りは処理に応じてどっちが軽いかを検証した方がいいかもしれない。

ミニマップを複数のブロックに分けて、ブロックごとにアイコン機能を使ってまとめる、みたいなハイブリット型がたぶん一番軽くなる。

表示されないピクチャ

不透明度0と拡大率0のピクチャは、画面上で見えないだけじゃなく内部的にも最初から処理しようとしないので軽い。

よって、ローディング処理で大量のピクチャを不透明度0で表示しておく際に、それが原因で重くなることはそこまでは気にする必要はない。(もちろんメモリ消費については気にかけておく必要がある)

ピクチャへの命令の合成

ピクチャが移動している途中で、同じピクチャに対して新たな命令が実行されると最初の移動が中断される。

ただし、ピクチャへの命令が停止するのは次のフレームに移ってからなので、実は1フレーム分だけ複数の命令が同時に実行されている。

これを利用して、ディレイ等を用いてピクチャの移動を1フレーム単位で管理すると、ベクトル等の計算をしなくとも複数の相対移動を合成させたり、移動の途中でピクチャを回転させるような使い方ができる。

イージングコモンを組んでる途中で気づいた仕様だけど、わりと便利なのでUIを組むときによく利用してる。

通常のピクチャ移動よりは重くなるので数十枚のピクチャを個別に移動させるような状況には向かない。あと、ディレイはセーブされないから、セーブを跨いで動くようなアニメーションだと再描写する必要が出てくる。

セーブ・ロード

セーブファイル名の指定

セーブ番号のところに文字列変数を指定すると、番号ではなく指定したファイル名のセーブファイルを作成・読込することができる。


こんな感じで指定すると、SeveフォルダにSystem.savが作成される。

セーブされるもの

  • 通常変数や文字列変数などの各種変数
  • コモンセルフ変数
    CTRL+Shift+F6等でコモンイベントの位置をズラしても、変数まで一緒にズレてはくれないのでバグの温床になる。アップデートできるように作る場合、リリース後はコモンイベントの入れ替えを避けるか、コモンイベント終了後にコモンセルフに値を保持しないように組む必要がある。
  • 可変DB
  • 表示中ピクチャ
  • 再生中BGM
  • マップチップ
    チップ操作で書き換えたものも記録される。
  • イベントの位置
    イベントの一時消去も記録される。
    ただし、一時消去したイベントの位置でイベントIDの取得を行うとセーブ前とロード後で結果が異なる。セーブ前は-1が返されるが、ロード後は消去されているイベントIDを読み込んでしまうので注意。(ウディタ本体のバグ?)
  • トランジション
    セーブ前に指定したトランジションがロード時のトランジションになる。

セーブされないもの

  • システムDB/ユーザーDB
    後からアップデートで変更されうるものはこっちのDBに入れておかないと大惨事になる。アイテムのデータ等はユーザーDBで管理して、アイテムの所持状況は可変DBで管理しておくような組み方が無難。
  • ピクチャのディレイ
  • 影グラフィック番号
    変数呼び出し値で影グラフィック番号を書き換えてもそれはセーブされない。なお、キャラチップ画像の方は書き換えてもセーブされる。
  • チップセット切り替え後のタグ番号
    チップ処理でチップセットを切り替えた後、セーブしてロードすると表面上は切り替え後のチップが描写されているが、タグ番号のみ切り替え前のチップの値に戻っている。
  • 実行中のイベント
    イベントの途中でセーブしてもそれは保持されない。

2020/11/18 追記
分割したピクチャのセーブに関してのバグを確認。

発生条件
分割ピクチャを「左上」「中心」以外を起点に表示してセーブし、ロードしたデータでそのピクチャを移動させようとする。(実際に移動するかどうかは関係なく、相対移動0でも発生する)

バグ内容
ピクチャが「分割しなかった場合の左上地点」まで引き伸ばされる。
その後、移動時に指定した処理時間に合わせて元のサイズに縮小していく。

※0フレームで移動させる場合は、即座に拡大して縮小するので外見上はこのバグは発生しない。

※起点を「中心」にしている場合は、引き伸ばしは発生しないが左上地点にピクチャがワープしてしまう現象が発生する。

コモンイベント

コモンイベント名を文字列変数で指定

コモンイベント名でコモンイベントを呼び出すとき、文字列変数でコモンイベント名を指定することができる。(この前WOLFさんが呟いていたやつ)

ただし、\s[X]で指定する文字列変数だとうまく機能しない。コモンセルフ変数の文字列で指定した場合にのみ反応する。(たぶん)

『エルローグ』では、自動生成されるユニットとのイベントシーンを呼び出すとき、ユーザーDBに登録されたユニットのデータからコモンイベント名を読み込んでそれを呼び出しているので、わりと頻繁に使ってる。

ショートカット

Shiftを押しながら「次チェックPへジャンプ」をクリックすると、通常とは逆方向に向かってジャンプする。つまりコマンド検索と同じ挙動。(過去の更新履歴のとこに書いてあったけど、たぶんマニュアルの方には記載されていない)


その他

回数付きループ

0回ループの中に入っている処理はスキップされる。一時的に外しておきたい処理を入れるときなどに使う。

1回ループの中に入っている処理は1回のみ実行される。ループの途中で「ループ中断」を行うと、以降の行は実行されずループの外に出るため、複雑な条件分岐を入れ子にせず書きたいときに使うと便利。

こんなイメージ。画像の例は適当

コマンド文の処理負荷

コマンド文0回ループのようなゲーム上ではスキップされる処理も、内部的には若干の負荷が掛かっている。

検証してみた感じだと、普通の変数操作の半分くらいの負荷は掛かってるかな?(いまいち検証方法に自信がない)

大した負荷ではないので大抵はそこまで気にする必要はないけど、例えば数百回ループさせるような処理の中で気軽にコメント文を入れてると体感できるレベルで影響が出ることがある。塵も積もれば山。

名前と処理負荷

ピクチャのファイル名は短い方が処理が軽い。
また、ラベル名は短い方が処理が軽い。

ファイルをフォルダ分けして呼び出す

エディタで選択するとDateフォルダ直下のフォルダからしかファイルを選べないが

Data/Picture/CG1/001.png

のように直接ファイル位置を入力すると、複数階層下のファイルでも呼び出せる。大量のCGや差分が必要になるゲームだと、CGごとにフォルダを分けたりできるようになるので管理が楽になる。

キャラチップ

ファイル名の最後に$をつけると、分割されずにそのまま表示される。

Game.ini

Game.iniにはコンフィグの値が記録されている。コンフィグを弄ればいい話なのでほとんどの値は触る必要はないけど、一応コンフィグに無い設定値もある。

ScreenShotFlag=0
にするとスクリーンショット機能がオフになる。

F12_Reset=0
にするとF12リセット機能がオフになる。


マニュアルにあるけどよく忘れるやつ

イベントの実行順序

マップイベント(自動&並列起動、両者混合でとにかくID順に実行)
→コモンイベント(自動起動のみのID順)
→コモンイベント(並列起動のみのID順)

マニュアルにちゃんとは記載されていなくて、「システム変数 108番:現フレームのコマンド処理数」 のとこにさらっと書いてある。

自作システムが複雑になってくるとこのあたりも厳密に管理しないとバグの温床になることがあるので気をつけてるところ。

文字列を数値として代入

変数操作で、右辺に文字列変数を指定すると、その文字列を数値に変換して代入できる。

引数が足りなくて文字列変数のとこに数値を入力してるときとかによく使う。

コモンイベントの入力値の保持

コモンイベントの選択で、Ctrlキーを押しながらプルダウンメニューを選ぶと、入力値を維持したままコモンイベントだけ変更できる。

おわり

ここまで記事を書いといて何だけど、ウチのサークルのCi-en自体がR18だから仮に未成年の人が検索でこの記事に辿り着いても開けないな?
とふと思った。

まあこんな場末の記事に辿り着くこともないと思うけど……。

息抜きがてらの忘備録でしかないので、そのときはごめんなさいということで!

月別アーカイブ

記事のタグから探す

記事を検索