投稿記事

2020年 08月の記事 (4)

Heliodor 2020/08/31 17:24

あやかし紅白戦 進捗確認版

今回は有料支援者向けに、プレイヤーキャラの動作テスト版を公開です。


注:本バージョンは体験版ではありません
ちゃんとした体験版は、最終的には無料で配布されます。
(なので今回、このためにお金を払うというのはお勧めしません)


体力ゼロになると勝手に最大まで回復するエンドレス仕様

何も無い教室で、ただ湧き続ける敵と戦うだけのテストバージョンです。
音楽も音声もありません。ステージクリアなどもありません。
敵の強さやプレイヤーの性能はまだ完全に調整していません。あくまでも現時点でのテスト版なので、製品版では変更になる可能性があります。


キャラの操作はカーソルキー、Z、X、Cにそれぞれ移動、刀、蹴り、ジャンプが割り当てられています。
ゲームコントローラーが接続されていればそちらでも操作可能ですが、本テスト版ではキー割り当てを変更できません。

刀は威力が高い代わりに隙が大きく、蹴りは威力が低い代わりに吹き飛ばした相手を巻き込む事が出来ます。
(本テスト版では関係ありませんが、製品版には刀しか効かない敵、蹴りしか効かない敵がいます)

レバーを素早く2回入れると、スタミナを消費してダッシュ(横向き)やステップ(上下)が出ます。
スタミナは常時回復しますが、完全に切れると一定時間動けなくなります。
敵に掴まれたら(例によって)レバガチャ+ボタン連打で脱出です。


捕まったらレバガチャ+ボタン連打!! 一定時間内に脱出できないと……。

少しややこしい操作として、大ジャンプとかダッシュキャンセルとかありますが、キーボードでは若干難易度が高いです。USBゲームコントローラー推奨。
こちらはショートカットキーやスタミナ消費を検討中です(要するに未調整)。


この背景のホワイトボードに書かれているC← BACKJUMPというのは、プレイヤーの向きと逆方向のレバーとジャンプボタン同時押しです。


F11キーを押す度に、画面サイズが標準→2倍→最大化→ボーダーレス→標準(以降ループ)と切り替わります。
通常のウインドウ同様、マウス操作で好きなサイズにすることも出来ます。

完全なフルスクリーンはAlt + Enterで切り替わります(非推奨)。




体験版ですら無いテスト版を「お金払っている人以外は何も無ーし!」というのはちょっとアレかなーと思ったので、今回は無料フォロワーさん向けにも敵が一切出てこないテスト版を用意しました。


敵は居ないけど障害物殴り放題

本当にただプレイヤーを操作するだけのテスト版です。
なんとなく雰囲気を味わってもらえれば……。
有料版で「敵が邪魔臭ぇ!」という方は、こちらで操作練習するのがオススメです。



尚、現時点では内容に関するご質問・ご要望等にはお答えできません。
今あるものを作るだけで手一杯です。悪しからずご了承下さい。

フォロワー以上限定無料

まずは無料プランで様子見を。 お気軽にフォローしてみて下さい。

無料

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

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

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2020/08/23 17:12

雑談

メインPCが不調になって、結局OS再インストールの憂き目に遭いました。
(起動できませんでした→修復します→修復できませんでした→再起動します……の無限ループ)

Windows7→アップデート版8→無料アップデート版8.1→無料アップデート版10と入れ替えてきたPCだったので、そろそろいい機会かなあとも思ったのですが……これはつまりWindows7のDVDから入れ直しという面倒臭さ。

まあデータ類はOSとは別のHDDに入れてあったし、OS再インストールも無事終わって一安心……なのですが、例のバッテリーが膨らんだタブレットノート、まだ買い換えてなかったので丸一日何も出来ませんでした。なぜオレはあんなムダな時間を……。

余談ですが無料アップデート版Windows10のシリアルって再インストールするときどうするの??と焦りましたが、そのままオンラインアップデートできました。
(Microsoft側にちゃんと登録されているそうです)



もう早いところ新しいノートPC買おうと思い立ってド○キホーテに行ってみたのですが、2万円のNANOTEというヤツは売り切れてて手に入りませんでした。

となると3万円ぐらいの中古でも買うか……?

いや、4万円ぐらい出せば新品でもそこそこの性能で安いノートPCある……。

4万円出すなら5万円でもうちょいマシな性能……いや、6万円出せば……。





キリが無いわ!!




と言うことで結局互換バッテリーを買いました。水は低きに流れる。


上:膨らんだ純正バッテリー 下:5000円ぐらいで買った互換バッテリー

なんか既に不自然な膨らみがあるんですが……。


即返品してやろうかとも思いましたが、元々こういう形かもしれないしいや無いだろ、試しに接続してみたら普通に起動したので、これがまた膨らんで使えなくなったらその時こそ丸ごと買い換えよう!と心に決め、そのまま使うことにしました。
まあ2~3年はもつやろ……。


一ヶ月ぶりぐらいに起動したタブレットノートPC(右)。
外装もピッタリ嵌って液晶の歪みも無くなりました。

以前使っていたものと全く同じ環境+設定済みのものが5000円で手に入ったと思えば……まあ……うん……。





え? 左のノートPCは何かって?






VAIO 505 RXってやつですよ。


輝くMMX Pentiumシール、動作クロックは266MHz!


Windows98→2000にアップデートしてありますが、こんなスペックでもあやかし紅白戦動くよ!












うそです

静止画像を表示しただけです。
もしかするとDirectX9をインストールすれば本当に動くかもしれませんが、HDDの容量が足りませんね(多分)。





製作はそれなりに順調です。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2020/08/15 12:50

テキストレイアウト その2

https://ci-en.dlsite.com/creator/59/article/179208
半年ぐらい前のこの記事の続きです(※あんまり続いてない)。


普段テキストエディタとか使って文字を書いているときはあまり意識しないことなのですが、自分でテキスト配置みたいなのを実装しだすと結構細かいところが気になってくるんですよ。


何気ない会話の文字と文字の間隔……気になりだしたら止まらない

例えばゲームテキストの定番、固定ピッチフォント(モノスペースフォント。例えば「MSゴシック」など)。
全ての文字でサイズが同じなのでとても計算しやすく、1行あたりの文字数が完全に固定になる等いろいろ把握しやすいという利点があるのですが、正方形を基本とした日本語(ひらカナ漢字)だけの文ならともかく、記号とか英単語など縦長を基本とする文字が混ざると、とたんに汚く見えてしまうんですよね。
全角のアルファベットとか、片方に寄ってたり太かったり細かったりであんまりバランスよくないですし。

そんなだから、ヴィータ大脱出では可変ピッチフォント(プロポーショナルフォント。例えば「MS P ゴシック」「メイリオ」など)を使って文字ごとに最適な幅になるようにしていました。
ところがですね、文字毎に異なる文字送り量を使うってのは、文字の組み合わせによっては不自然に間が空いているように見えてしまったり、逆に詰まりすぎて見えてしまったりすることがあるんです。


今見ると「だここ」の詰まり具合と「なのか?」の開き具合の差が気になって仕方無い

そうすると1文字ごとに文字間隔を手動調整するって話になるんですが、それはあまりにも面倒なので、前後文字の組み合わせと文字間隔の調整量をテーブルにして持たせてあったりしてたんですよ。つまりカーニング処理ですね。

アルファベットにおいて、特定の文字の組み合わせではその文字間隔が開きすぎているように見えることがあります。例えば Tom という文字は、書体によっては T と o の間が必要以上に空いて見えるため、T の横棒の下に潜り込むぐらいまで o を左に寄せた方が見栄えが良くなる場合があります。

ブラウザにもよりますがTom……潜り込んでますよねコレ?

余談ですがこれを活字でやろうとすると、活字の本体同士がぶつかってしまって T と o をある程度以上近づけることはできないんですね。そこで長方形ではない特殊な形の活字(Tの左下と右下が欠けているとか、Lの右上、Jの左上が欠けているとか)を使って、できるだけ文字同士を近づけられるようにするってのがカーニング(物理)です。……DTPって便利ですよね。

あと、ウィンドウに合わせて毎回改行指定するのも面倒になってきたので、ウィンドウ枠よりも少し内側に改行推奨位置を設けて、テキストがその位置を超えそうになったら自動的に改行が入るようにしたりだとか、自動改行の結果として開きカッコが行末に来たり、閉じカッコや句読点が行頭に来ると見栄えが悪くなるのでそうならないように禁則処理をしたり、でも句読点1個だけなら改行位置をギリ超えても許すという「句読点ぶら下げ処理」を入れたりもしました。
おかしいぞ、アクションゲーム作ってるはずなのになぜワープロソフトみたいなことやってるんだ??

そして、いつの日か英語版を作った時のことも考慮して、英単語の音節辞書を組み込んで、単語の途中で改行するときは必ず音節単位になるようにしようかと思って手が動きかけたんですが、さすがにそれはやめておきました。やめておいてよかった……。

そんなことやってる暇があるなら素直に固定フォント使って自分で改行指定すれば良いのでは……と思わなくもないんですが、やっぱり気になってしまうので、あやかし紅白戦でもプロポーショナルフォントを使っています。

とはいっても所詮アクションゲーム、そんなにテキスト多くは無いので、いつかこれを生かせるゲームを作りたいですね。もちろんエロいやつ。



文字を美しく並べるみたいなことに興味がありましたら、フォントメトリクス(Font Metrics)とかで検索すると図解がいっぱい出てきますので、参考までに。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

Heliodor 2020/08/04 17:42

パレットを無理やり実装する

前にもチラッと似たような話を書いた気がしますが今回はもう少し詳しく。


滅びの国の王女では、某姫様の服装や肌の色を何種類も用意して切り替えることができるようにしてありました。
これはカラーパレットを使って切り替えているのですが、実現にはちょっとした苦労があったんです。



改めて見ると、あんまりエロと関係ない部分に全力投球よくこんなの作ったなーと思います。
余談ですがこの青は個人的にローレシア・ブルーと呼んでました。隣の緑がサマルトリア・グリーン。白がロンダルキア・ホワイト(以下キリが無いので省略)。


まず Direct3D にフツーに用意されている D3DFMT_P8 フォーマット(インデックス画像用のテクスチャフォーマット)を使ってみたのですが、このフォーマットに対応しているビデオカードが意外と少ないということが分かりまして(実際自分の環境では D3DFMT_P8 な IDirect3DTexture9 が作成できなかった)、パレット処理を Direct3D に丸投げする方法は諦めました。

そうしたらもう、ピクセルシェーダー(HLSL)を使ってリアルタイムにパレットを適用しながら描画するしかないな……と思いますよね?
違うんですよ。実はピクセルシェーダーなんて使ってないんです。

なんでそんなマゾい事を??と思うかもしれませんが、それは「ピクセルシェーダーはただの背景とかエフェクトとか、万が一全く描画されなくてもプレイに支障のない部分にしか使わない」という自分縛りがあったからです。


実はヴィータ大脱出も普通にピクセルシェーダーを使って描画していたのですが、プレイされた方から「うちのPCで画面が真っ黒になるんです」という報告がありました。
よくよく聞いてみると、その方が使っていたのは 2004年に発売された Windows XPのPCだったんです。しかも法人向け。プログラマブルシェーダーには一切対応していない。
ヴィータ大脱出のリリースは2013年頃だったので、当時でも既に9年落ちだったわけですが……。

まあ、きっとまだまだ古いPCを使ってる人も多いよな……ということで、プログラマブルシェーダーは一切使わないか、使ったとしても最低限、ゲームに影響のない部分(仮に描画に失敗して真っ黒になったとしても一応ゲームは進められる)だけにしようと考え、アップデートで丸ごと修正しました。めっちゃ大変でした


で、その流れで滅びの国の王女でパレットを使って色を切り替えられるようにしようと思った時も、ピクセルシェーダーを使ってパレットを適用するという方法は採用しなかったのです。

結局どうしたかといいますと、ユーザーがパレットを選ぶたびにテクスチャー自体を描き換えるという力業でやるようにしました。
メニューで色番号(パレット番号)を選択するたびに、王女のテクスチャーを Lock して中身を書き換えて Unlock するという……。


手順としてはこうです。

1.インデックス番号をそのままRGB値として書き込んだ、なんちゃってインデックス画像を用意する
 (要するに D3DFMT_P8 の代わりに普通に D3DFMT_A8R8G8B8 のテクスチャを使う。そのまま表示すると変なグレースケール画像みたいに見える)
2.パレット画像(16x16)を必要なパレット個数だけ用意する
3.スプライトを表示するためのテクスチャーが要求された場合
  ・そのテクスチャが未ロード状態であれば、ロードしてパレットを適用する(全ピクセルを書き換える)。
   このとき、テクスチャーと、それに適用しているパレット番号の組を記録しておく
  ・テクスチャがロード済みであれば、そのテクスチャに適用しているパレット番号が一致するか確認する。
   一致すればロード済みテクスチャをそのまま返す。
   パレット番号が一致しない場合は一旦テクスチャーを破棄して、改めてロード、パレット適用の手順を行う


思えばこれは、滅びの国の王女ではそう頻繁にパレットを切り替えないからうまく動作していたような気がします。



カラー変更したらプレイヤー・相棒・モブキャラはもちろんタイトル画面まで全部カラーが変わるのはこだわり。というかドット絵の強み。でもゲーム性にはあんまり関係ありませんw


この通り、基本カラーの変更までは順調だったのですが……サ○バークロスみたいにパワーアップで色が変わるようにしよう!と思い付いてからは、それはもう茨の道でした……。我ながらアホです。

詳しい説明は省きますが、結構頻繁にパレットが変わるので、そのたびに再ロード&書き換えとかやってると処理待ちが発生して動きがカクカクになるんです。
さらに、同一のインデックス画像に別々のパレットを適用して、それらを適用させた複数のキャラクターが同時に出てきたりすると、ちょっと自分でも処理内容の把握が……パレット関係の処理は、眠い時にやってはいけない作業項目ランキングでぶっちぎりの1位です。



基本カラーを赤にしたした状態でパワーアップ「碧」を取る。
会話シーンでは主人公だけ色が変わっていて、相棒の色は赤のまま。そして更にパワーアップ「朱」を取る……。もうワケが分かりませんw


まあカクつきは頑張って実用に耐えうる(?)ところまでは改善させたのですが、テクスチャを自分で書き換えてパレットを適用するっていう力技な部分は相変わらずです。

今時シェーダーなんてスマホでも使えますからね。さすがにもう良いですよね。
というか「XPだと画面が変になります」とか「Vistaだとスローモーションみたいになります」ってメール来るのそろそろ許して下さいw

次にパレット使うようなゲームを作ることがあれば、その時は全力全開でピクセルシェーダーを使って実装しようと思っています。


以下宣伝

ヘリオドールの過去作品が現在半額セール中です。
(FANZA様でも半額セール始まってました)

本文中でちょっと話題に出てきた滅びの国の王女、今なら440円です。
お持ちで無い方はこの機会に是非。



DLsite 販売ページへのリンク
FANZA 販売ページへのリンク


DLsite 販売ページへのリンク
(滅びの国の王女はDLsite様の専売作品です)

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

月別アーカイブ

記事のタグから探す

限定特典から探す

記事を検索