スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

蜂作り

ScreenShot_2012_0531_19_59_13.png
新モンスターの制作、いろいろ悩んだ末に色違いの蜂となりました。
トレはん!の雑魚敵はスライムを除いて自然にいる動物類で揃えたいというこだわりがあります。
そうすると射撃攻撃ができる敵ってすごく作りにくいんですよね。
自然界で何かを射出する機構を持つメジャーな動物っで以外と少ないです。
蜂だって実際は針を飛ばすわけではありませんしね、でもイメージ的にギリOKです。
あとは猿とか物を投げる系なのですが、イマイチピンとこず、障害物を超えられる利便性もあって蜂を再び採用しました。
それとせっかくなので砂漠にも蜂を出そうかと考えています。
今まで蛇だけでしたが、こちらもいろいろ修正を入れるつもりなのでバリエーションを増やそうと考えているわけです。
その時は探知範囲外では消える仕様を実装するつもりです。
スポンサーサイト

新荒野マップとりあえず完成

ScreenShot_2012_0530_14_27_36.png
新しいバージョンの荒野マップの制作が終わりました。
広さは今までと同じ40×30の9マップですが、ジャンプ回避でのショートカットができるのでいままでより若干狭く感じます。
ジャンプ回避を使えばかなり自由に動き回れるので、いい感じに雰囲気を変えられたと思います。
ついでに演出面について。
入口付近から砂漠へと近づく毎に少しずる緑が減っていくようになっています。
最初の頃はじめんにも草があり木も繁っていましたが、後半では草はまばらとなり葉もほとんど生えていません。
地味な部分ですが、うまく作用してくれたら嬉しいです。
次は荒野用の新モンスターの設計です。
青いにわとりは今回大幅に弱体化させたので、地形が無視できる敵や射撃攻撃ができる敵を入れてバランスをとりたいです。

拍手をくださりありがとうございました。

引き続きマップ製作中

ScreenShot_2012_0529_22_39_29.png
昨日に引き続き新荒野マップを製作中です。
マップはある程度ジャンプ回避を制限できるように、高低差を大きくしています。
ただ、これはした方向の制限しか行えず、上左右は自由に上り下りできるので少ししか効果がありません。
でも、障害物と組み合わせれば行き止まりを作ることもできました。
マップの一番端(この場合は画面下)の高台は移動不可能になっています。
できれば明日には荒野マップ全体を完成させたいです。

荒野マップ作り直し計画

ScreenShot_2012_0528_13_08_29.png
やろうかなーと思いつつ後回しにしていた荒野マップの作り直しをやってみています。
もともとがただの迷路のような場所で、あまり自然っぽくなく気に入ってなかったのでいつか作り直したいなとは思っていたのですが、前回のリメイクの時は時間の都合その他でお流れになっていました。
今回、敵AIも全部作り直すということでマップの構造から全て作り直して違った雰囲気のものにしたいと思います。
今までは狭い通路で鬼畜なにわとりに追いかけられるだけでしたからね。
コンセプトは高低差のある広い空間。
山やラスダンに比べて道を広めにしてるので動きやすいと思います。
森と山の間のダンジョンとしてよりいい感じになってくれたら嬉しいです。
ちなみに構造上ジャンプ回避が比類ない力を発揮してくれます。
一応大事な部分はジャンプで超えられないように工夫をしていますが、装備しているとかなり楽になると思います。
まだ全体の半分ぐらいしかできていませんが、今までよりもいいものに仕上げて見せます。

拍手を下さりありがとうございました。

子供ポニテ

sam2_20120527203217.png[子]ポニテ[赤1]$[子]ポニテ[赤1]
必要になるかもしれないということで久々に合成器素材を作ってみました。
子供サイズのポニーテール素材です。
一般の物に比べて若干短くなっているのが特徴です。
色を見たら分かるかもしれませんが、リメイクでリタの子供時代のイベントを作ってみようかと画策中です。
前回のリメイクで大分イベントが増えて改善されましたが、過去部分にほとんど触れていないせいもあってストーカーっぽい感じが抜け切れていません。
いやまぁ一種のストーカーで間違っていない気もしますが。
とにかく、アルフの行動原理はリタと過ごしてきた過去にあるわけで、そこを見せない限り二人の関係が分かり難いわけです。
そんなわけで条件を満たすことでリタとアルフの出会いのイベントなどが見られるようにしようと考えています。
また、クリア後に特定条件を満たしたらアフターイベントも見られるようにしようかなとも考えています。
どこまで実装できるかは分かりませんが、地道に進めていこうと思います。

拍手を下さりありがとうございます。

細かく設定

ScreenShot_2012_0526_20_57_22.png
実際にテストをしてみて地味に問題が出て来ました。
蛇のステータス設定が見違っていたりとか。
それ以外では蜂の移動速度が若干早いかなと思い調整したのと、リタ発見と同時に射撃してくるため回避難しかったのでがウェイトを挟んだりしました。
それと難易度をハードにしてのテストも行ってしました。
やっぱり接近攻撃系の敵が厄介です。
移動速度も速いため狭いエリアでは回避がほぼ不可能となります。
ただ発見時のジャンプ動作がいい意味で作用しているっぽいです。
事実上発見から突進の間でウェイトが入るのと同じことなので迎撃の体勢を整えやすくなっています。

拍手を下さりありがとうございます。

森の敵再設定

ScreenShot_2012_0525_20_42_23.png
初歩的な雑魚敵のAIができてきたのでデバックワールドを抜けて本編の森ダンジョンにて実装してみました。
雰囲気が大分違ってきています。
蛇はこちらを見つけると蛇行しながらゆっくりと近づいてくるようになり、以前よりリアリティがある気がします。
ノーマルではこちらを発見してからの接近速度が以前より緩やかなので、落ち着いて対処できるゆとりがあり最初のダンジョンの雑魚敵にぴったりな感じです。
蛇行する動きが速度の調整に一役買ってくれており、思わぬ副産物ができました。
でも、ハードになると今までより若干激しいので油断しているといきなり危ないかもしれません。
それでもアクション慣れしている人なら問題なく対処できるレベルでしょうけれど。
それはそれとして蜂と蛇が混在しているエリアが思った以上に鬼門となっています。
蜂が一定の間合いを取りつつ攻撃してくるため接近してくる蛇と一緒に狙うのが困難になっています。
それに攻撃に対処する方法が正反対というのが厄介です。
射撃攻撃は狙いを定められないように動き回っている方が対処しやすいです。
それに対して接近攻撃はあまり動かずに堅実に撃退していくのが一番です。
その二つが同時に出るということは動かないと弾にあたるけど、動いたら敵に突っこむことになるという悪循環に悩まされることになります。
いろいろ考えましたが、この場合スルーが吉ですね。
何も自分が不利な状況で無理に戦う必要はありません。
射撃攻撃は動きまわっていれば滅多に当たらないのですから、接近するタイプの敵にだけ気をつけて突破すればあっさり抜けられます。
こういう駆け引きはトレはんっぽい気がするのでちょうどいいですね。

ピクチャ番号設定ミス

ScreenShot_2012_0520_09_46_58.png
非常に今更な話なのですが、STGからコモンを移植して無理やり使っていた結果、メニュー画面とピクチャ番号がダブってバグが発生していました。
ちゃんと確認していませんでしたし、よくあるのことなので冷静に対処をとピクチャ番号を変えたのですが……
ScreenShot_2012_0520_09_49_09.png
余計に面白いことになってしまいました。
ステータス表示が無茶苦茶です。
メインシステム部分の使用ピクチャ番号ぐらいどこかに書きとめておけばよかったです。
次に大規模システムを作る時はその辺りのメモを欠かさないように慎重に進めたいです。

ハード設定

ScreenShot_2012_0523_15_24_41.png
トレはんにて、ノーマル以下とハードで敵の行動パターンが変わるようにしてみました。
今までほぼ役に立っていなかったハード設定を、ノーマルの難易度を下げて使えるようにするつもりです。
ノーマルを基準にハードになると敵の移動速度や弾幕量が増えます。
イージーだと敵AIは変わりませんがリタが強くなります。
ノーマル時の敵がさらに弱くなる予定なので、今度こそアクションが苦手な人でも問題なくプレイできるようになるはず、頑張ります。

具体的にはにわとりのような接近タイプは移動速度が上がり、蜂のような射撃タイプは画像のように弾数が増えます。
速度3で追いかけまわしてくるにわとりは相変わらず鬼畜です。

拍手を下さりありがとうございました。

回る敵

ScreenShot_2012_0522_19_30_10.png
この前作った間合いを取る敵を改良し、間合いギリギリの範囲を取りつつもっと行動するように改良しました。
具体的に言うと、リタに近づきすぎると距離を取るようにしていた所、ランダムで垂直な方向へと移動するようにしました。
要するに離れている時はリタに接近し、青円ぐらいまで近づくと赤矢印の方向に移動することで間合いを調整します。
そのため、リタとの距離を一定に保ってほぼ静止していたのに比べて、青円の範囲に入らないように動き回るようになりました。
左右ランダムではなく、片方だけにすれば一方向にグルグル回るAIも作れます。

拍手を下さりありがとうございました。

久々のホームページ更新

今日ホームページの素材へのリンクが切れているという指摘を受けました。
自分でもダメだなぁーとは思いつつも放置していたので、一度消すことにしました。
というのも、私の作った素材の大半は合成器素材だったわけで、そのほとんどが公式素材になったためどうしようか悩んでいたというわけです。
照らし合わせてみると公式に入っていない素材や、公式公開後に作った素材もそこそこあるため再編して出せばいいのですが……もうちょっと数が増えたらその時考えて見ます。
一応ブログからダウンロードできるので、しばらくの間はこちらからどうぞ。
game7g.png
ついでなので以前作ったミニゲーム『玉転がし』の公式ページを作りました。
思いつきでやった物理演算練習用のゲームですが、さくっと遊べるのでよかったらどうぞ。
こんなこともできるんだなぁという参考にでもしてください。

拍手を下さりありがとうございました。

間合いを取るAI

ScreenShot_2012_0520_09_41_01.png
主人公から一定の間合いを取って遠距離攻撃を行うAIを作ってみました。
画像の蜂たちはリタを探知すると一定距離まで接近し針を撃ってきます。
その後前進と後退を繰り返して間合いを取ります。
最終的には画像のように取り囲まれるようになるというわけです。
思ったよりもいい感じにできました。
こちらが逃げたら追ってくるし、接近すると下がる。
小刻みに動くのも間合いを確保しようとしているように見えなくもありません。
遠距離攻撃系の雑魚敵はこのAIをもとに改良していこうと思います。
ScreenShot_2012_0520_09_33_10.png
ちなみに、針を蜂のサイズに合わせるとこんなふうになりました。
見えるかどうかかなりぎりぎりのラインです。
やっぱりこの二倍ぐらいのサイズはほしいですね。

拍手を下さりありがとうございました。

弾幕管理変数

ScreenShot_2012_0519_20_01_53.png
マップ変数を一つ使って敵の放つ弾幕を、適当なタイミングや間隔毎に行える機構を作りました。
これで当初の予定の変数三つを使い切ったことになります。
複数の弾幕を状況によって使い分けるなどの複雑な指定は無理ですが、一定間隔毎に弾幕を放つ分には全く問題はありません。
画像は60フレーム(1秒)毎に8発の追尾弾を撃つようにしたものです。
今回は主人公を探知している状態でのみ弾幕を撃つように指定しています。
途中、敵の動作に問題が出たり、一度探知範囲から逃れたあとに再び接近した場合弾を撃ってこなくなったりするなどの問題がありましたが、なんとか解決できました。
そろそろちょっと複雑な動作をする敵の作成に入ってみたいです。

拍手をくださりありがとうございます

弾幕コモン改良

ScreenShot_2012_0518_18_41_27.png
昨日実装した弾幕コモンをトレはん仕様に合わせて改良しました。
とりあえず問題だらけです。
具体的には軌道変更や当たり判定が正常に機能していないという問題があります。
これらの問題は座標が正しく取れていないことに原因がありました。
画面スクロールに合わせて相対的に座標を取るようにしていたため、計算にも多くの改良が必要がでました。
それに加えて座標の取り方が違うという問題もありました。
800×600仕様、それも座標を10倍して使っていたためトレはんに使えるようにするのに手間がかかりました。
特に10倍座標は、相対的に画面座標を取る場合は使用が困難なため全部作り直しです。
そんなこんなで座標計算を洗い直して正常に動作するようになりました。
ちなみに処理の重さは無問題。いままでトレはんで使っていた弾幕システムよりも軽いぐらいです。
ScreenShot_2012_0518_18_42_03_20120518200602.png
この程度の弾幕ではびくともしないぐらいの余裕があります。

拍手を下さりありがとうございました。

STGの弾幕機能実装

ScreenShot_2012_0516_12_59_18.png
以前にシューティングゲームを作った際に作った弾幕システムの移植に挑戦しました。
トレはんで使っていたものとは完全に別物で、曲線や追尾、途中での軌道変化と色々できるようになります。
ただ移植にあたり大きな問題が一つありました。
それはSTGとは違い画面スクロールがあるということ。
画面スクロールと連動するためには弾を相対座標で管理する必要があり、使用の変更がかなり必要となりました。
なんとか動作をさせることに成功しましたが、少しコードがグチャグチャになってしまいました。
それにしてもただ単純に同じ弾幕を使うと数が多いです。

問題は解決、でも原因不明

ScreenShot_2012_0516_09_44_32.png
ここ最近頭を悩ませていたAIシステム、具体的な原因は分かりませんでしたが、無事正常に動作させることに成功しました。
おかげで64匹のにわとりに囲まれてモテモテ状態、ちょっと怖いです。
今日は64匹のにわとりだと処理がうまくいかなかったので3匹ほどでテストをしてみたのですが、結果最後に探知した三匹目のにわとり以外は動きが止まるという全く同じ現象に襲われました。
どうも処理の競合が原因ではないらしいということが分かったので、数値を確認したりといろいろ試したのですが原因が分かりません。
そんな中、まったく別件でコードのミスが見つかりました。
敵の動作を変数を使って管理していたのですが、これが全く役に立っていませんでした。
動作中も索敵を行えるようにするための工夫なのに、条件下で動作の管理だけでなく索敵の管理も一緒に止めてしまっていたのです。
穴があったら潜りたい気分です。
でも、これで問題は解決!正常に動いてくれるはずだ!と思ったら変化なし、動作不良とは無関係なバグでした。
結論を言うと、リタを発見した時飛びあがる動作の直後に来る『動作終了までウェイト』の処理が原因でした。
これを取り除いたらなぜか正常に動いたんです、よくわかりません。
ジャンプの動作も他と同じように変数で管理することで無事完成させられました。
競合の問題もなく、再びコモンイベントを使うようになったので使用変数も二つで済むようになりました。
なんだかんだで変数が節約できたので、結果オーライでした。

拍手を下さりありがとうございました。

原因不明

ScreenShot_2012_0515_21_10_49.png
昨日作ったコモンイベントを取り除いた新AIの余分な部分を整理して再度負荷テストを行ったのですが失敗しました。
動作の重さは問題ないのですが、やはり正常に動いてくれません。
今度は処理の競合もないはずなのに、複数を同時に動かすと問題が発生します。
画像はいろいろテストしている最中に起こった現象の一つです。
最後にリタを探知したにわとり以外のすべてのにわとりが動かなくなっています。
非常にシュールです。
もう少し検証が必要そうです。

ビット演算

ScreenShot_2012_0511_20_47_46.png
昨日から引き続き敵AIの開発にいそしんでいます。
コモンイベントによる距離演算を挟まない方法を考えなければいけないのですが、どう考えても演算用の変数を最低二つ使う必要があります。
しかし、個人的な都合で使用変数は三つ以内に収めたいのです。
でも現在動作管理と探知結果保存の二つ使っている以上、あと一つしか使えません。
そこで考えたのがビット演算です。
両方とも01のデータなので、一つの変数で両方管理してしまえばいいという発想です。
とりあえず二進数一桁目を動作管理、二桁目を探知管理としました。
動作指定内での変数操作では加減代入しかできないため、0~3の数値として扱います。
動作管理をしたいときは変数を±1、探知管理をするときは変数を±2します。
そうすると
0の時、動作管理0、探知管理0。
1の時、動作管理1、探知管理0。
2の時、動作管理0、探知管理1。
3の時、動作管理1、探知管理1。
となるわけです。
それぞれの値も2で割った商と余りなので簡単に出せます。
いろいろ試行錯誤する羽目になりましたが、とりあえず変数三つでコモンイベントなしで正常に動作させることに成功しました。
行き当たりばったりなせいかかなり汚いコードになっているので、その辺り修正したいです。

拍手を下さりありがとうございました。

負荷テスト

ScreenShot_2012_0513_20_37_15.png
テストマップの不可テストエリアにて、新しいAIのテストを行っていました。
昨年同様64匹のにわとりがひしめいているマップです。
負荷に関しては全く問題なしです。
今までと大きな違いはなくこのぐらいなら大丈夫です。
ただ動作の方に問題ありです。
どうもコモンイベントを64箇所が同時に動かすせいで競合し、動作不良を起こしたっぽいです。
競合しない機構を作るか、コモンイベントの使用をやめる必要があります。

拍手を下さりありがとうございます。

問題発生

ScreenShot_2012_0512_20_32_24.png
トレはんにて昨日宣言したとおりウディタのアップデートは行ったのですが、DBを使った改良に失敗しました。
理由は二つ。
一つ目は可変DBの値で直接条件分岐をする際に参照するのにマップ変数の値を使えないこと。
私はデータ管理をマップIDと絡めることで管理しているため、呼びだすためにはマップIDが必要となります。
そのため条件分岐で値を参照できないという問題が発生します。
一度データベースの値を呼び出してから、それを比較すれば同じ処理が可能ですが、処理数を増やすか使うマップ変数を増やす必要があります。
それでは意味がありません、本末転倒です。
もうひとつは行動管理用の変数。
これは動作指定中に変数を書き変えることで柔軟な動きを可能としたのですが、データベースで値を管理したら参照できません。考えてみれば当然ですよね、あほです。
そんなわけで、無理をすればデータベースを使って使用するマップ変数を減らせるが余計に多くの問題を抱えることになるという結論に落ち着きました。
どうせ雑魚AIではほとんど使ってなかったマップ変数なので三つぐらいどうってことないというわけで、このまま改良を加えていきたいと思います。
そんなわけで今日はあまり進展なし、というのも何なのでリタ発見時ににわとりがアクションを取るように改良してみました。
ぴょこんと飛びあがるのがかわいらしいです。

拍手をくださりありがとうございました。

基本AI

ScreenShot_2012_0511_20_47_46.png
リタを探知⇒行動パターンを変更するAIを制作中。
現段階だとマップ変数を三つ占領してしまうのが悩みの種です。
一つは行動管理用、不自然な動きをしないように制御するための変数です。
今までになかったこれの導入でより複雑な動きが可能となりました。
二つ目は探知設定用の変数。
要するに現在リタを発見している状態かどうかを記録しておくための変数です。
これのおかげで一度発見されても、距離を取ることで再び未発見状態に戻すなどの処理が可能となりました。
三つ目は計算用の変数。
距離計算用のコモンを制作はしましたが、イベントIDの代入や結果を受け取るために一つは必要になります。
とりあえずはマップイベントの範囲内で収めるように作りましたが、DBを使えば一つ目と二つ目は節約できそうです。
そう考えるとウディタがアップデートしてくれたのが非常にありがたいです。
最新バージョンではDBに新しい項目を追加した場合、それに合わせて以前のデータがずれてくれるそうなので修正する手間がかなり省けます。

拍手を下さりありがとうございました。

久々のテスト村

ScreenShot_2012_0510_22_20_06.png
トレはん!リメイクに挑戦中なのですが、本編を直接弄っていると後々問題が出てくる可能性があるので、ゲーム本編では使われていないエリアをテスト場として使い始めることになりました。
去年も書いた気がしますが、ここはトレはん!の開発初期段階、まだシステムもろくに定まっていなかった頃に使っていたエリアです。
この外には雑魚敵が徘徊できるエリアやボスのテストのためのエリアもあるので非常に都合がいいです。
消さずに取っておいてよかったです。

拍手を下さりありがとうございました。

トレはん!リメイクをこそこそ始動

ScreenShot_2012_0509_22_24_12.png
ずっと考えていたトレはん!の最終リメイクを少しずつ始めて見ようと思っています。
今回のリメイクのシステム面の目玉はゲームバランス。
去年のリメイクではプレイヤー側の操作性を大きく向上させることを目標としましたが、今度は敵側のシステムを修正していきたいと考えています。
具体的には雑魚敵のAI改善と、ボス戦の作り直しです。
特に雑魚敵は、今ならもっと複雑な動きをさせられそうなので力を入れたいです。
ボスはシューティングの時の経験を生かして色々な弾幕を実装したいです。
それと、ボス戦闘自体のバランスを激しい攻撃を掻い潜る短期集中決戦から、密度を減らして若干長期戦にしようと考えています。
イベント面の追加もいろいろ考えていますがそれはそのうちということで。
ちなみに画像は敵がリタの接近に気がついて行動パターンを変えるサンプルのために作ったものです。
吹き出しが出るだけでも大分雰囲気が変わります。

帰還

DSC_0405.jpg
ゴールデンウィーク中、色々あって離れていましたがやっと帰ってきました。
明日からブログの更新を再開したいと思います。

そのゴールデンウィークですが、途中東京に行ったりしました。
上の画像は噂のルイーダの酒場に行った時のものです。
マリンスライムとモーモンをかたどったデザートです。
他にも楽しくなるようなメニューや内装などで始終テンションが上がりっぱなしでした。
とても楽しかったです。
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。