[イラスト]ナズーリン

なずーりん
どーも皆さんお久しぶりです。気づけば20日くらい放置してました。
年度初めとなるとやはりそれなりにいろいろありまして、大学の研究室配属をはじめ、サークルで新入部員が入るなどなど。

研究室の内容もどういうわけかPCメインということで、そっちでもプログラムをやらなければいけないので、どーにも頭の切り替えができず、iアプリは触れていません。
しかもそのPCはMacだし、言語もObjective-Cだし、家に帰ってさぁWindowsでJavaだ!とはなかなかなれず。うーん、それにCは苦手。
そんなこんなでその変の環境に慣れるまでiアプリはきついと思う。
(ホントに完成すんのなぁ;;怪しくなってきてるな。。。)


プログラムにちょっと疲れたらやっぱり絵が一番!
一日でばばっとできるのが楽しいですね~。

本日の絵は星蓮船よりナズーリン。
アニメ塗りに初挑戦!
アニメ塗りというかグラデーション等を使用せず、また基本の色と影、ときにハイライトという一色につき最高でも3色程度しか使わない塗りです、多分。
またアニメ、ということもありある程度線画自体も簡略化されるとともに影も簡略化されることが多い模様。アップでは細かく描き、動きの強いシーンでは簡略度を上げたり…逆に影がない場合でも十二分にリアルというかそういう絵を目指したい。

しかしその簡略化が難しかった!
画力高くないとできない芸当;簡略化は劣化ではないのですよ。

私の場合は元の画力が大したことないので全力で描くのと同じかそれ以上の作業量になってしまいました。ヘタに簡略化を目指すと、見るに耐えない絵になるだろうし、影も簡略化以前にばっちりすばらしい影の入れ方もよくわからにのでなんともできません。
なので本当のアニメ塗りには遠く及ばない感じ…他にもいろいろありそうだなぁ。

要練習。


pixivにも投稿してみた。初投稿。
これからボチボチアップするようになるかも。。


それにしてもiRemote人気なさ杉ワロタwww
いくら需要ないといえどもう少しくらいDL数伸びるとおもったが

スクリプト基本機能増強

なみつぶ
はぁ、もう4年生かぁ。大学院コースにしてもやることはいっぱいありそうだなぁ。就職についても大学院いくにしても余裕をもって今からじっくり考えなくては。こんな将来役に立たないことをやってる場合じゃないのかもしれない…天才レベルなら話は別なのかもしれませんが、この程度のレベルなら大学いってアプリで遊んでないで勉強しろよカスというレベル。こんくらいできる人くらい世の中にごまんといます。…ふぅむ、大学の勉強しないと。。。英語もまじめに勉強しないと。。。

といいつつもう少しは春休み!まだアプリは触る。。。

今日はスクリプトの基本機能の増強を行いました。
スクリプト頼みの弾幕を作るにはいささかバグが多いし、不便も多かったため。

1.-演算子と変数を同時に使うとうまくコンパイルできない不具合修正
2.+=、-=、++、--などの演算子を使用可能にした。(複雑に組み合わせては使えない。)
3.条件文の判別をTRUEかFLASEではなく、C言語風に0でないかそうでないかの判別にした。
4.全方位弾に関するバグの修正
5.組み込み関数において、引数を場合によっては省略してもよくした。

ってな感じ。よりプログラミング言語っぽくしました。
+=とか今まで使えなかったのでA+=BをA=A+Bと書かざるを得なくかなり見づらいことになってました;
実際はコンパイル時にA=A+Bに展開してるだけなんですが、動作中にも+=として読めるようにすれば処理時間の短縮になるので今後こちらも変更したいところ。
条件文に関しては単にコードの量を短くしたかったため。C言語的にかけるとループ文が非常に短くかける。
全方位弾のバグはなんかの手違いで重なった弾を発射している不具合があった。4Wayだったら、どれか1Wayは2重に発射してしまってる。これを修正。波粒が高速になったw
最後のはホントただ省略を可能にしたいがためにつけた。
基本的に組み込み関数の呼び出し時には引数の数はチェックしていなかったのでこれを利用。
中身で引数の数により分岐させて処理しています。

あと今のところユーザー定義の関数を呼び出すってのはできない。。
関数の引数に与えることしかできないので、コード省略のためにもこの機能はつけたいところ。


画像は波粒テストの様子。
3Wayにして、発射間隔を半分にしてみたテスト。60フレームで60回の発射動作が行われている=毎フレーム発射してます。つまりはこのアプリ中で最高の連射速度。多分原作でも同じです。原作と同じ発射間隔。。。原作は5Wayですけどー。

3Wayでもここまでやると大迫力。まさに波と粒。
左も実は3Way。9Wayにみえるのは回転速度が360/3/3[°/フレーム]くらいのため(多分)。
回転速度により波の本数も変わって見えるのが波粒の醍醐味です。6Wayにだってみせることはできます。
発射間隔が短い前のものでは倍の本数にするだけでも結構スカスカに見えてしまう。

どんどんいくぜ!

てすとちょっとのってきてるのでこのタイミングでどんどんステージ作ってみる。この記事でテストで作った道中弾幕どんどんアップ予定。

まず、中ボス前の強めの妖精の弾幕。
こんなのはどうでしょーか。画像でハードくらいでしょうかね。
風神録以降よくみるようになった父弾幕もどきですな。
実際の父弾幕よりもはるかにスキマがあって簡単ですが、
ハード以降は中弾の低速自機狙いが追加され、結構面倒にしています。
父弾幕もどき自体は完全固定にしているので、タイミングさえわかれば多分簡単。多分。
この手の弾幕は応用が利きそう。
ルナではまだまだ密度上げますよー。

てすと上の小ボスみたいな奴の前座。妖々夢4面あたりにでてきた弾幕。発射点がぶれながら、全方位かつ速度違いの自機狙い弾を撃っていくものです。ぐちゃーっと発射されて、弾の塊みたいのが来るような、そんな感じのやつ。見た目にだまされてはだめで実は単なる自機狙い。ちょんよけでいい。これはあまり美しい弾幕ではないな;


テスト続いて穣子の直前にだすかもしれない小ボス。風神録6面ラスト雑魚の弾幕っぽいもの。直前の雑魚の猛攻のあとの小休止弾幕。事故注意。これも大し弾幕ではないですな;


tesutoまだまだー!今度は皆大好き波と粒の境界っぽい弾幕。波粒ですなぁ。自前のスクリプトエンジンがどれくらいの複雑さに耐えれるかのテストです。上のほとんどの弾幕は組み込み関数のパラメータ変更なんかで対応できますが、パラメータでいじれるものにも限りがあり、波粒のような回転速度が可変するものまでは対応できません。組み込みでできるのはあくまでも1パターンな弾幕のみです。(速度、速度差、回転、回転速度差、発射位置などは組み込みで対応しています、この組み合わせでいろんな弾幕をつくるわけですが、回転速度差の差は設定できないので一発で波粒は再現できない。)
で、この波粒は全力でスクリプトでやってます。単発の6Way全方位をスクリプトで方向を変えつつ発射。ループ文内で回転方向を計算していき発射しています。使用変数は二重ループとかもつかってるので4つ。初の完全スクリプト頼みの弾幕。ちゃんと動いてよかった。
動作速度も弾がスクリプト処理しているわけでなく、妖精一体のスクリプトだけでやってるので、処理もすくなく、動作は良好。F-01Aなら57fpsくらいでるという軽さ。
上のばら撒きよりインパクトあるし、穣子の前の小ボスはこいつにしてみよう。

しかし、完全固定でパターン弾幕にしたつもりだったのに計算違いでパターンになってない;
毎ループ違う;

[アプリ]レーザー分断

tesutoいや~やっとレーザーがレーザーらしくなったw昨日書いた通りレーザーの途切れも再現。弾消し効果などにより分断、消滅するようになりました。根元をつぶしても弾消し効果が途切れればその点から再びレーザーが伸び始めます。

画像では赤枠で囲んだ部分がそのテスト部分。
レーザーの束に向かって自機を真横に移動させて束を切り裂いたといった感じ。

これ見た目的にはかなりいい影響があって、弾消し時に瞬間的に全体が消滅しなくなるので「レーザー」っていう雰囲気が強くなります。全体が消えてしまっては単なる長い弾に見えてしまいます。
またレーザーの束なんかにボムを放つと割と爽快な眺めになるかなと。

ゲーム性でもいい点があってレーザー主体の弾幕時にボムを撃った場合、分断なしだとその場のレーザーが全部なくってしまうし、照射中に消されると照射終了予定時間まで次のレーザーが一切でなくなりめちゃくちゃ簡単になってしまう恐れがあります。
分断があるのでボムをうってもすぐさまレーザーがまた伸びます。にょき。

そんなこんなでレーザーの実装はこれで完了。通常の弾幕関連のテストに戻ろう。


■ステージ作り
こんな記事書くの何回目だか;
ステージをまたいじり始めてます。随分前ですが、高速化に確か成功してたのでテスト版ということもあって難易度を底上げします。

構成は風神録風味。
序盤は基本1Wayの自機狙い。強妖精による範囲攻撃的なものを織り交ぜ、徐々に頻度を上げていき、中ボスへという感じ。地霊殿でよく見られたようなものも織り交ぜてみます。また、全方位とかそういう固定弾も多数いれてみるのもいいかも。

中ボスは静葉です。弾幕はほぼ原作再現。同名スペルで行きます、多分。
通常はとりあえず1面のみなので原作より密度濃くしてみます。

さくっと倒して後半戦へ。
原作1面はこのあたりは大変短いですが、テストでいろいろ試してみたいので長め。
死んだら中弾低速6Way出すやつとか、スペル並みの密度の弾幕をだすかためのやつとか、
とりあえずアイテムは全部は拾わせない程度の難易度にはしたい。
1面しかないのでパワー大は大目に落とし、フルパワーにすぐできるようにもしたいですね。
ここまでで2分くらい?

ボスは穣子。適当なセリフ付きにしますが、何いわせよう。
スペルは原作再現も含み3~4はほしい。通常はこれぞ穣子というあの弾幕。渦巻き3Way。
スペルは交差弾を基本にしたものが数個、レーザーを使うタイプを数個といった感じ。


まずはステージ作りのコツをつかむ!これが第1目標。

[アプリ]分離作業完了

にとり無事に描画部分と処理部分の別クラス化作業が完了しました。またレーザーと通常弾をクラスごと分離させたりいろいろとやってみた。画像のように前と同じ外見までできるようになった。

まず前者、自作のスプライトクラスを作ってそれを利用するようにして管理しやすくするというのが目的。当初は同一スプライトでデータ共有が初期化スクリプトの省略もでき高速化なんかもできそうだったが、共有できるものがかなり限られていたに加えて、レーザーの実装の仕方、描画に大量の引数を必要とするなど、なんだかんだで相殺されて前と速度的な変化はない感じ。
そしてスクリプトの記述の手間もなかなかに増え、結局デメリットが目立っている気がする。

後者は通常の弾とレーザーのクラスの分離。レーザーには伸びるという機能と、分離という機能が含まれ、当たり判定なども特殊になってくるので一緒にしていては分岐が無駄にふえて大変作りにくかった。ショットするクラスが撃とうとしてるのがレーザーか通常の弾か判別しクラスを作り分ける。
今までのレーザーかどうかの数々の分岐がここに集約されるというわけ。
大分管理しやすくなったし、これからの発展性もあがった、、、と思う、多分。
レーザーが分離したということで分岐とか特に考える必要なく当たり判定や消滅処理をかけるー。

それにしてもスプライト分離は余計だったか~…改悪だなぁ。
もっと分離したメリットをだせるようにしないと。


■F-01A
初めて60fpsをケータイで動かしてみたが普通に動いたから驚き。
30fpsのときよりもさらになめらかになって、もうホント原作並の動き滑らかさ。
さらに60fpsではなかなか安定しないものの、画像程度のレーザー本数、自機弾透過オプション数歳代でも40fps以上は常時だせるようです。30fpsなら安定動作。
また旧Fではできなかったイメージへの3DCGフラッシュも可能になっていました。
進化してるんですねぇ。

■レーザーのグレイズと当たり判定
レーザーにグレイズ判定と当たり判定をつけました。
結構適当で、レーザーは太さを持つ線分として扱ってみました。
自機は円なので、線分と円の判定になります。

線と円の距離を求める方法はなんかベクトルとか考えるのめんどうなので、
線の中点座標と線の向きが自由に使えるようになってるのを利用し、
中点に対する円の中心の相対座標を中点を中心にマイナス線分の向きを回転させるということをやります。これにより横軸を線分とみなせ、縦軸が線に対する距離になり、距離があったというまに求まります。平方根も使わないし超高速。
あとは線分の長さ/2が回転後の円の中心の横成分とかと見比べたり、距離を線の太さと円の半径を見比べればおーけー。というわけ。

三角関数が3600段階でテーブル化されているに加えて、各オブジェクトが向きをもっていればこその芸当。


■遮られるレーザー
今現在の当たり判定が発生するとレーザーは消えてしまうようになっていますが、
それだとあまりに素っ気無い。スペル等など弾消し効果が発生したとき、影響範囲のレーザーが抉り取られるというのが原作通りだし、見た目上にもゲーム性的にも格段によいと思われます。

ならばどうやったらそれができるのか。先の回転のおかげで他のものが線分上のどこの点で衝突したかはわかるわけですから、その部分を基点に分裂させればいいわけ。もちろんあたった先から消滅してもらわなければならないわけですが、自機の円判定がどれほど線分に触れているかなんて計算してらんないので、あらかじめ決められた量だけ削る。この量をレーザーの長さの最小単位とし、これ以下のレーザーは消滅するようにもする。動作を軽くするために分裂して新たに作られた2本のレーザーは始めのフレームの当たり判定はみない。どうせあたんないだろうし。

レーザー中に当たり判定をもつ不可視物を連続して配置する方法に比べると元の判定自体は一回なので高速だと思う。

[ZUN絵風]星蓮船ラスボス予想

ずんえどーも。4月になりました。エイプリルフール。ウチでも幸せになれる嘘つきたいんですが、ネタが思いつかないので特に何もできませぬ。

変わりに星蓮船ででそうなボスの予想してみた。一応ネタバレ注意かも?


あたることは絶対にないであろうネタも含め4人ほど考えてみたw
画像左がかなりいろんなところで予想されている七福神説。
スコアが億万長者だし宝船だし蓮船だし七福神じゃね?ってことなんですが、
地霊殿において地霊殿を4面で通りすぎたところからなんか怪しげ。
上が大黒様風味。ぐぐってでてきたような服装にしてみたが、どうみてサンタクロース。
出てくるとしてもこれじゃ地味。1面中ボスくらす。

下が七福神で一番強そうな毘沙門天。なんか守ってるとか?
5面とかこんな感じ?

で、右はもうはやネタギレ状態で場埋めのキャラ。
上がまぁタイトルに星つくんなら星の人じゃね?っと。
星蓮船は現実世界で一瞬できえる(幻想入りする)流れ星を拾っているのかなぁ、と。
で、思い切って頭にでかい星載せてみた。絶対にない、ともいえない?ZUN星。。。。
2面?

最後はもう船なんだし星蓮船は実はただの漁船なんじゃね?ってことで、
なんかすごく魚とるのうまそうな人かいてみたw
頭に魚とかまぁありえない気がするけど、シャチホコくらいならそのうちでそうなもんだ。
まぁ、、、絶対にないとおもう。。。
Go To 物置。
プロフィール

書いてる人:つん

まったりのんびり。書いてる人の息抜きブログです。

多分連絡先↓
[email protected]

カテゴリー
リンク
月別アーカイブ
バロメーター
Java歴:2005年2月から今まで。
3DCG歴:2005年8月から数年。
C歴:2006年4月から今まで。
VB歴:2007年3月からちょっと。
Delphi歴:2007年3月からちょっと。
PIC歴:2007年5月から数年。
イラスト歴:2007年12月から今まで。
DTM歴2008年2月からちょっと。
PHP歴2008年4月からちょっと。
C++歴2008年4月から今まで。
C#歴2009年1月から今まで。
Objective-C歴2009年4月から今まで。
CSS歴2012年5月から今まで。

ブログ開始日2005/10/11