したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |
レス数が1スレッドの最大レス数(1000件)を超えています。残念ながら投稿することができません。

おちゃめくらぶ掲示板

1502御茶目菜子:2013/03/14(木) 23:52:37
プチコンmkII発売1周年&私の今後の予定
今日でプチコンmkIIが発売されてちょうど1年経ったにょ。
プチコンmkIIでは初代プチコンでは不満の1つだった自作プログラムのやりとりがQRコード
経由で可能になり、発表する側もそれを実行するユーザー側も非常にお手軽になったにょ。
しかし、それ故にここで何度も書いているように保存領域がすぐに一杯になるという問題を
生み出してしまったんだけどね。
それはおいといて、ここ1年の私の作品を振り返ってみるにょ。

mkIIが発売されて昨年の12月22日までは(小規模なサンプルプログラムを込みで)QRコードを
公開したもののみをカウントして全部で50作品(昨年末現在だとさらに3作品増えて53作品)
だったのでそれから今年になってからの分を合算すればmkIIが発売されてからの公開作品数は
分かるにょ。

ということで、まずは今年公開したものをカウントしてみたにょ。
1行プログラムは全部で10作品(別バージョン込みで13作品)、1画面プログラムは「SOUND
PAD」「PETIT GUITAR」「コンソールお絵かき」「音当てゲーム」「PETIT DRUM+BASS」の
5作品、1画面(+外部ルーチンや外部データが必要なもの)は「簡易地球儀」「PIタッチ」の
2作品、ラスタースクロール系が「ノーマル」「テキストラスタースクロール」「旅の扉」
「神風の術」「似非スキャニメイト」の5作品、1画面超の作品が「簡易地球儀2」「2D→3D
RACE」「プロ生ちゃん100m走」の3作品、あとはサンプルプログラムが「マルチタッチ検出
ルーチン」「魚眼レンズ風フィルタ」「塗りつぶし三角形ルーチン」「塗りつぶし楕円
ルーチン」「色の重ね合わせ」「フェードイン/フェードアウト」「縦持ちフォント生成/
表示」「ドップラー効果:踏切」「ドップラー効果:救急車」などごく小規模のものを
含めて22作品(うちQRコードを公開分が13作品)でトータルでは今年になってから50作品が
リストもしくはQRコードを公開しているにょ。
昨年末までの分を合算すると1年間では103作品(QRコードを公開分のみで93作品)となるにょ。

これ以外にも動画でしか公開していない作品もあるにょ。
http://www.youtube.com/user/ochamenako
今年になってからだと「ポリゴン表示ルーチン」「2軸回転ルーチン」が動画のみの公開
となっているにょ。
これらはちゃんとしたサンプルとして公開できるレベルになったら公開する予定なので
楽しみに待っていてにょ。
2軸回転ルーチンは公開時に対応ゲームも用意する予定だけどこれらは次回のプチコン講座で
公開予定となっているにょ。

次回の講座の内容は「GRP面の拡大縮小回転」だけど単純なニアレストネイバー法による
拡大縮小から始まり、Z軸回転、X軸回転、2軸回転(X軸、Z軸)についても書く予定にょ。
X軸回転のサンプルゲームとしてはすでに「2D→3D RACE」を用意しているのであとはそれに
到達するまでの説明をするだけとはいえ過去最大となり前後編となった第7回の講座を
大幅に上回る分量になりそうにょ。
下手をするとテキストだけでも100KBを越える可能性さえあるにょ。(並のラノベ1冊分に
匹敵するテキスト量)
まぁ現時点ではまだ構想段階だからそれよりも多くなる可能性もあるし、少なくなる
可能性もあるけどね。

ポリゴン表示ルーチンの方もできるだけ早い段階で公開したいところだけどぶっちゃけ
現時点では回転して眺めるくらいしかできないためこれを使った公開時にはサンプルなども
用意したいところにょ。
次回のさらに次のプチコン講座でワイヤーフレーム、ポリゴン講座を書くという手もあるけど
プチコンの処理速度ではまともにゲームに使えるレベルでポリゴン表示をするのは不可能にょ。
私が作ったほぼ最速ルーチンでもあの動画のレベルだからね。

 ◎私が作ったルーチンにおける座標計算込みの実行速度
 ポリゴン ・・・・・・・・・・ 1秒間100〜200ポリゴン
 ワイヤーフレーム ・・・・・・ 1秒間1000〜1200ライン
 単純な拡大縮小 ・・・・・・・ 1秒間GFILL2500〜4000回
 X軸回転  ・・・・・・・・・・ 1秒間3500〜4000ピクセル
 2軸(X軸、Z軸)回転 ・・・・・ 1秒間3500ピクセル(GFILL)〜7500ピクセル(BGPUT)

これを見れば大体の速度予想ができると思うにょ。
GFILLによる単純な拡大縮小を使った疑似3Dゲームを作る場合は60fpsを出すためには1フレーム
内に使えるGFILLの数は上記の1/60以下となるにょ。(表示や座標計算以外の部分もあるため
1/60ぴったりの数では処理落ちしてしまう)
2500〜4000を60で割ると41〜66となるけどこの範囲の差は拡大率(というか表示面積)に
よってGFILLの実行速度に差があるためにょ。
普通にゲームで使われるレベルのサイズだとこの範囲内に収まるにょ。
「PETIT RUN mkII」はメインルーチン1回で52回のGFILLを実行しているため60fpsで収まって
いるにょ。(ちなみに「PETIT RUN mkII」の場合は54回だと処理落ちする)

X軸回転のサンプルとして用意している「2D→3D RACE」は100頂点分の座標を求めてそれを
元にGFILL表示を行っているにょ。

 2D→3D RACE
 http://www.youtube.com/watch?v=k6vrMHPMO8I
 http://twitpic.com/byq6ew

式の簡略化を行い行列による回転処理を高速に行うことで単純なGFILLとほぼ同じ速度で
可能になっているにょ。
100個の座標を計算しているわけだけどそれを実行時でも36fps程度の速度が出ているにょ。
真上からの視点だと描画量が増えるため遅くなるけどそれでも32fpsを確保しており何とか
常時30fpsは維持できているにょ。
これが2軸回転なら劇的に重くなるにょ。
そもそも計算しなければいけない座標の量がX軸回転より劇的に増えるからね。
必要最小限に抑えても表示ドット数分の座標を求めなくてはならないにょ。
画面の半分となる32x12x8倍拡大では384個の座標を計算することになるにょ。
これに2回の逆行列演算を行うことで2軸回転は可能になるけどこの行列演算部分の計算式も
簡略化することで単純な拡大縮小とそれほど変わらないレベルの速度を実現可能にょ。
しかし、384個の座標を計算しなくてはらなないためゲーム要素のないサンプルレベルで
10fpsしか出すことはできないにょ。(これがBGPUTを使い限界まで最適化を行えば19fpsが
可能になっている)

さて、これを元にワイヤーフレームやポリゴンでゲームを作るとどの程度のフレームレートに
なるのかもある程度予想ができるのではないかと思うにょ。
ポリゴンだと表示サイズによって差が出るけど上記のように概ね100〜200ポリゴン/秒と
なっているからね。
画面内に自分キャラの玉を4発、敵キャラが4発でそれぞれ1ポリゴンで描画したとして
全部で8ポリゴン、敵キャラは4面体(陰面消去によって表示は最大3ポリゴン)を2体出す
とすれば全部で14ポリゴンとなるにょ。
100〜200を14で割ればおおざっぱなフレームレートは出るけど7〜14fps程度となるにょ。
当たり判定など表示や座標計算以外の処理を考慮すれば6〜10fps程度になりそうにょ。

これがワイヤーフレームならばかなり改善できるにょ。
上記と同じものをワイヤーフレームで作れば弾は1つ3ラインで合計8発で24ライン、
4面体は1つ6ラインなので2キャラで12ラインとなる合計36ラインになるにょ。
これを1000〜1200ライン/秒を36で割るとフレームレートは27〜33fpsとなるにょ。
当たり判定を込みでも20fps程度の速度は出せそうにょ。
このワイヤーフレームは回転処理を行ったものであるためプレイヤーからの視点で
敵は回転をしないという設定にするならばジオメトリ処理が簡略化できるため30fps程度は
可能かもしれないにょ。
こう考えるとポリゴンを使ったアクションやシューティングゲームは厳しいけどワイヤー
フレーム程度ならばギリギリなんとかなりそうな感じにょ。
使い物にならなければ講座を開く意味はないため実用レベルの速度が得られるならば
講座として公開するかもしれないにょ。


ということで、mkIIが発売されて1年間を振り返り、今後の私の予定も書き記したのだけど
公式twitterでは明日なにやら発表があるらしいにょ。
mkIIの後継が発表か・・・とも思えなくもないけどそこまでハードルを上げるなという
公式ツイートにもあるように追加データの配信かもしれないにょ。
使えそうなデータの配信ならばそれを使って何かプログラムを作ってみることにするにょ。




掲示板管理者へ連絡 無料レンタル掲示板