空鮫へっぽこ創作記

学生身分でゲームとか音楽とかいろいろ作ってたり。

わすれてました

ブログの更新忘れてました。空鮫です。

や、だってほとんどの更新や進捗報告、全部ツイッターでやってたもんよ…

 

ツイッターでの報告まとめ。

1.会話スクリプトのいろいろ。

・背景実装

・時間待機命令コマンド

・大声コマンド(全4種)

・効果音コマンド

 

2.RPG基礎実装。

計算式メモです。

attack = 自身の攻撃力*カードの攻撃力/100;

rate = 自分と相手の属性相性 * カードと相手の属性相性 * クリティカルレート * バフ;

damage = attack * rate;

カードの攻撃力は百分率みたいなものだと思ってください。

そこらへんは要調整。

バトルの流れですが、

① カード選択

② ターゲット選択

③ ①、②を味方の数だけ繰り返す

④ 敵の行動を決定

⑤ 行動順序決定、アクション

⑥ ターン経過、①に戻る

ってな流れです。

 

行動順序に関するメモ。

基本的に(キャラ自体の素早さ+カードのスピード性能)の大きい順で行動させます。これは、ほら、威力の大きい武器は重いから振り上げ→振り下ろしに時間がかかるーとか、小型銃だったら連射が可能だったりとか。そういった、行動ごとに必要な時間が違うよねーってとこから考えたシステムです。

ただし、自身の状態異常の中に「優先行動」「劣後行動」というものがあります。その名からわかる通り、素早さに関係なく、最初に行動or最後に行動するよ、というものです。また、これら二つにはどちらにもランクが存在します。ランクの低い順に「優先(劣後)行動C」「B」「A」「S」の4種類。これは、優先行動の状態異常を持ったユニットが複数いた場合、ランクの高いほうから優先・劣後権を与えます。ランクも同じなら…素早さ勝負かな。それかダイス。

 

今回のまとめはこの程度で。次はもっと進めます。

あー、でも研究開発も進めなきゃなー…学校なんてくそくらえだ!!!!

やらかしてしまった

お久しぶりになります、空鮫です。ほんと久しぶりだなお前。

今まで音沙汰なかったのは、まあ、あれです。いろいろやることがありまして…(汗

Twitter見てる方は大体察してください。動画です。例の。

 

んで、前回分以降の進捗をまとめますと、「ダメです」の一択ですね。

まず、RPG戦闘要素のモックをざっくり決めました。

モックというのは、大体の画面のレイアウトやシステムの流れを図示したものです。

f:id:aki_shark2569:20180716215716p:plain

こんなの。

結構体力ゲージのデザインとかカードセレクトとか試行錯誤しましたよ。

んで、レイアウトが決まったところで実装~…と思ったのですが、なんと残念、設計上に破綻が見つかりました。えらいこっちゃ。

とはいうのも、なんと高校時代にやらかして破綻した循環参照をまーた繰り返しかけてたところだったんですよね。バトルクラスがテーブルクラスを参照し、テーブルクラスがカードクラスを参照し、カードクラスがバトルクラスを参照。これはひどい

というわけで設計から見直すことに。今まで組んでたバトル関連のプログラムは全部パァです!!!!!

スクリーンショット

そういえば今週の進捗出してないなって。空鮫です。

Twitterのほうでは言いましたが、この前ツイキャスを使って簡単に進捗報告をしました。まぁ、言うほど進んでませんが。

この前言っていた、スクリーンショットの拡張子を選択できるやつです。

 

ありました。普通にありました。

表のリファレンスにはありませんでしたが、裏リファレンスには普通に乗ってましたね…

 

JPEGの場合

SaveDrawScreenToJPEG( int x1, int y1, int x2, int y2, const TCHAR *filename, int Quality = 80, int Sample2x1=TRUE ) ;

第5引数までは解説不要ですね。いつものあれと同じです。

int Quality は画質を表してるみたいです。多分最大で100。省略してもいいそうです。

第7引数の int Sample2x1に関してはまったくもって意味も分かりません。

とりあえずTRUEでいいんじゃないかな。

 

PNGの場合

SaveDrawScreenToPNG( int x1, int y1, int x2, int y2, const TCHAR *filename, int CompressionLevel = -1 );

CompressionLevelは圧縮率を表してます。0が低圧縮、9が高圧縮です。

-1ってなんなんだろう。特に指定しませんよって意味ですかね?

 

ソースコードも公開してみたいけどどう公開すればいいのだろうか…

何とかしてこのブログに埋め込めないかなぁ。ちょっと調べてみます。

簡単な基盤から実装していく

ではここから普通に進捗報告していきます。

更新頻度は…どうしようかなぁ。少なくとも週一回はしたほうがいいかな。

 

ブログ開設までに以下のことをやってました。

・タイトル画面実装

 

f:id:aki_shark2569:20180618210952p:plain

タイトルは仮です。ただストーリーもざっとは固まってきたのでもうこれで確定かも。

 

・マップ画面、カメラ移動

f:id:aki_shark2569:20180618211002p:plain

真ん中に見える赤い点が自機で、これを操作します。

見てわかる通りクォータービューです。計算がとてつもなくだるかったです。

マップデータはCSVデータを外部からロードすることにより生成されてます。

こうすることでマップエディターも作りやすくなりますしね。

あとは自機の画像をどうするかなのですが…うーん…

 

・会話スクリプト

f:id:aki_shark2569:20180618211006p:plain

RPGと言ったら会話ですよね。これがなきゃ始まりません。

これに関しては、本家DXライブラリ様のサンプルプログラムを参考に開発してます。

サンプルにもあった「改行」「クリア」「ボタン待ち」のほか、「ハイライト」「ネームプレート」「キャラクター立ち絵表示」「キャラクター立ち絵スポットライト」を実装しました。今後はBGMの変更や効果音なども実装していきます。

ちなみにこのフレーム、自作です。なかなかにいいデザインしてると思いませんか?

 

・設定画面

f:id:aki_shark2569:20180618210959p:plain

実は今日制作したものです。ここでゲームのBGMやSEの音量を調整するほか、キーコンフィグなどの設定も可能にしています。これに関しては以前学校の文化祭用に作ったゲーム作品を移植、改良しました。時間はさほどかかりませんでしたね。

 

そして、ほかにも細かなマイナーな機能も。

このスクリーンショットもPキーを押すことで自動で生成され、F10キーで保存先のディレクトリを勝手に開くという構造にしています。ただ残念ながら、スクリーンショットのファイルフォーマットがBMPになっていて、Twitterなどにアップロードするときには一度PNGなどに変換する必要があり…とても面倒ですね。

PNGでスクショをする方法も探ってみたいと思います。

 

今回の進捗分は以上です。

ソースコードや、現時点での成果物を随時アップロードしてもいいか…と考えたのですが、適切なアップロード先が見つかっていないため、今回の公開はお休みということで。

プロローグ

はじめまして。空鮫と申します。

あ、フォロワーさんですか?違いますか?ええそうですか。

私としては、どちらでも構いませんがね。

 

まずは、ご閲覧ありがとうございます。

当ブログは、某ゲーム会社に就職したい一学生が、プログラミングを学ぶために、様々なことに手を出しながらゲームを作っていく、そんなへっぽこ日記です。

プログラミングの四苦八苦、うまくできたことへの喜びの気持ちなどなど、自由に自由に書き連ねていきますので、生暖かい目で見守っていただけると嬉しいです。

 

では、今から作っていく(というか今作ってる)ゲームの簡単な説明をします。

 

ジャンル:RPG

対象人数:一人(時間が余れば通信対戦も考慮)

開発環境:Visual C++ 2008 Express Edition

言語、ライブラリ:C/C++、DXライブラリ

 

このブログには、その時点で完成している作品およびソースコードを載せていく予定です。

 さて、無事に完成するかな?

イムリミットは、来年4月。学業と合わせて、どこまでできるか見ものですかね。