ラベル 物理ゲーム の投稿を表示しています。 すべての投稿を表示
ラベル 物理ゲーム の投稿を表示しています。 すべての投稿を表示

2009/03/11

今日のカーソル

・卓球製作開始
折角XNAの本を買ったので、XNAを使って卓球の制作を開始。タイトルロゴやマウスカーソルを作ったり、表示したりしている。3Dの描画は必要な部分を本で読んだところで、まだコードは書いていない。OpenGLで3Dをやったのに比べてだいぶ複雑な印象を受けた。
XNAを初めてまともに使っているわけだが、なんとなく落ち着かない。その理由を分析したら、VisualC#がVisualC++よりもやたらと親切すぎること。それと、XNAの枠と自分が今まで使ってきたプログラムの構造とが違って、XNAの枠にあわせて作ろうとしていること。言語の違いはほとんど意識することなく使えている感じ。

2009/02/22

今日の落下

・パラボラメイン作成中
・絵
時間があって気力もあったのでパラボラのメイン、軌道の計算を書いた。しかし、というより予想通り、上手く動かない。どこかで単位が食い違っているのが原因ではないかと思っているのだが、それらしいところが見つからない。
もう一つありえる可能性として空間の曲がりによって半径方向にずれている可能性も考えられるのだが、そうだとしても解決方法が思いつかない。と書いたところで、日記の魔力によって解決法が少し見えてきた。正しいかは分からない。

パラボラを一通り書いたところで、絵の勉強を始めた。顔のアップを描いてみているところ。やっぱり髪は上手く描けない。

今日の複合

・パラボラ視点変更完成

視点を回転させる機能を作り忘れていたのでつけておいた。これで多分視点関係は完成。そろそろ本丸の軌道の演算を実装しないといけない。

復讐を作るのにPythonスクリプトを組み込もうと思ってPythonDを調べている。しかしドキュメントを見たところDのコードをPythonから呼ぶ方法はわかりやすく載っているのだが、PythonコードをDから呼ぶ方法が良くわからない。多分書いてはあるのだろうが例が見当たらないので困っている。

2009/02/20

今日の視点

・パラボラ視点操作作成
ホイールのことはすっぱりと諦めて視点操作を作った。操作がモデリングソフト風になってきている。
あと、折角クラス名をAppleにしたので投げる物体をリンゴの絵にした。縮尺がおかしい化け物リンゴ。

この頃作業ペースが落ちているので加速しないといけない。

2009/02/19

今日のなでしこ

・ホイール調査

・なでしこ

昨日に続いてSDLでのマウスホイールの動作について調べていた。SDLのソースを探していたらマウスホイールの上下を処理する部分が見つかったのだが、それが#ifdefとかで囲われていて実際にコンパイルされているのかがわからない。それともうひとつ、SDLでは本来はイベントを利用して入力を処理することを想定しているようだが、自分ではイベントをろくに使っていないのでそれが原因である可能性もある。ただそうだとすればなぜホイールだけ動かないのかという原因がわからない。結局調べても良くわからなかった上、他の操作方法も思いついたのでホイールは諦めることにする。

パラボラの物体の軌道を計算するために必要な積分を解いてみようと取り組んでいたが、どうにも解けそうな気がしなかったのでやはり力押しで攻めることにする。その他の課題となりそうな場所についてもいろいろと対策を考えてみているが、まだ実装していないのでどうなるかがわからない。

なでしこはプログラミング初心者へ教えるのに、どれぐらい良いのかと思って試しに使ってみた。第一印象としては構文を覚えようという意思がなくても、結構自然な日本語で記述ができるのでわかりやすいという印象。しかし、グループと配列とを組み合わせて使い始めてからわかりにくく感じた。ドキュメントを見た限りでは意味が同じであるように感じられた複数の記法が、別のものを組み合わせると違った意味となってくるという点で難しかった。具体的には、配列の要素番号の書き方。文法が厳格なほうが使いやすいということもある。Pythonなんかは多分その究極。

2009/02/18

今日のりんご

・パラボラ製作

・復讐絵

今日は主にパラボラを作っていた。とはいっても暇すぎて積分を解いている暇がなかったのでシステムを組んでいた。重力といったらりんご、ということで、物体のクラスの名称をAppleにしてみた。本当はObjectとか使いたかったのだけれど、それは全ての根本クラスの名前として使われているから使えない。

で、マウスでの操作を作っていたら上手く動かないところがあって、原因を調査したらSDLではマウスホイール上下が宣言はされているけれども、実装がされていないらしいという事実が判明。SDLのソースをざっと見たがそれらしい部分も見つからない。なので自前で実装するか、それとも他の操作方法を考えるかしないといけない。

それと、気が向いたので復讐の絵をいじっていた。主人公の正面からの絵をとりあえず描き終えて、その他キャラクターの絵を微調整。ゲーム内では使う場所がないと思っているが原画として使うので形は細かく描き込んでいる。そしてさらに暇だったので会話窓用の大きい顔グラフィックを描き始めてみた。目は練習している成果かそれなりになってきたのだが、今度は小さいサイズでは全く気にしていなかった髪が問題として立ちはだかってきた。

今日の積分

・弾幕作成

・パラボラいじり

弾幕を書いた。また特に必要でもないのにレーザーを使っている。下手すると弾幕の半分にはレーザーが登場することになるのではないかというぐらい。レーザーは弾消しが効かなかったりカスれなかったりと根本的にプレイヤーにやさしくない。

パラボラの背景を作成。時計の針を背景にすることで時間の進みとデザイン性とを両方得られる。

相対論の本がついに解くべき式までたどり着いた。が、微妙にややこしそうな積分の式が必要になっている。解けないようであれば力押しで区間を細かく区切ってそれぞれ演算してから足し合わせるという手段をとろうかと思っている。

2009/02/04

今日の輪郭

・Re:Action構想いろいろ

・絵作成

アイデアが降っては来ないが、暇があったのでどうすればバランスが取れるかを考えてみた。およびその案を実装している。その案だとシステムの車輪の片方が崩れてきて、それとフィーチャーとして考えているアクションの存在意義が薄れてきそうな見込み。その案の一部は採用して、他のアイデアが降って来るのを待つということになりそう。

それで時間を持て余したので復讐の絵を描いていた。今までは紙にはほとんど書き出さず直接ドット絵を描いていたのを、趣向を変えて紙に下絵をある程度書いたあとその輪郭をドットで打って塗るという方式に変えてみた。それで今は水のボスを描いた。主人公は横顔問題含めて絶賛放置中。横顔も紙に書き出したりすれば何とかなると楽観視している。

2009/02/03

今日のマウス

・Re:Actionマウス操作対応

・Re:Action新背景製作

・新作製作開始

ゲームをやっていたらRe:Actionの入力にはキーボードよりもマウスのほうが向いているのではないか、と思ってマウス操作に対応させてみた。それに伴いライブラリのマウス関係の機能を強化。

それと背景に内トロコイドを使っていたのをいじって、背景に線を使うようにしてみた。どうしてかはわからないが3Dのように見えて綺麗。

そのあとRe:Actionを暫くテストしていたのだが、質量が重いと敵との衝突でぜんぜん動じないため、下手に動かずにいたほうが安全という状態。なのでそれを改善しようと思っているのだが、今思いつく限りの方法では上手くいかないのでアイデアが降ってくるまで熟成させておくことにした。

 

その間物理ゲームを進めないで置くのもどうかと思ってパラボラマスターのシステムを組むことにした。物体の挙動は式を使える形に整理できるまで書けない。

opCallとopIndexが便利。

2009/02/02

今日の模様替え

・サイト模様替え

・Re:Action進行

・復讐絵制作

数日前に書いた、模様替えを適用。フレームを廃止して、CSSを使ったデザインにした。HTML,CSSは手書き。あまり変な事をやろうとしなければ、HTMLはあまり覚えることがなくて楽。メニューの項目を毎回コピーして書いているのだが、それを外部ファイルにまとめるようなことはできないものか。出来るのであれば教えてもらいたい。あと、地味にディレクトリの区切り文字がローカルのものと違っていて嵌った。

Re:Actionもちまちまと。壁との衝突処理で、テストとして書いた部分を直していなかった場所があったのでそれを直して、それと演算子オーバーロードの間違いを修正。画面がさびしかったので内トロコイドを使って背景を作ってみたが、背景としては主張が強すぎるのが悩み。そのまま弾幕になりそうな感じの背景。

昨日いろいろとやっていたので今日も結構絵を描いていた。主人公の横顔を書いていてどうにも上手く描けなかったので、思い切って正面からも新しく描き直して見た。しかし締まりがなくて困ったので放置した。

その代わりに、二転三転していた土属性のボスを描いた。結局虚数方向へと転んで天使だかシスターだか死神だかわからないものへと落ち着いた。それで残るは水属性のボスだけとなり、描いてみたが思ったように描けない。実際の設定と脳内設定で矛盾しているのが原因かもしれない。

2009/01/31

今日の三角

・復讐いろいろ強化

・Re:Action再開

復讐の主にキャラクター関連の機能を強化した。それでキャラクターの向いている向きを取得したり、穴に落ちたときの処理を作ったりした。

デストラクタバグがゲーム中に発生するようになったがGCを手動制御したら起こらなくなった。起きてもそのまま例外を無視して動くようにしてみたが、弊害があるかもしれない。

 

物理ゲーム製作のモチベーションが急に上がってきたのでとりあえず手をつけられるRe:Actionの製作を再開した。それでボスとして使う予定のフラクタルを実装。適当にやったら面白くなったのでスクリーンショットもつけておく。

reaction

2009/01/23

今日の円柱

・Re:Actionライフシステム実装
・3次元よけげー進捗
Re:Actionにライフの概念を実装。及び色々調整。パーティクル数の上限を512でやっていたら一瞬にしてキャラオーバーしたので8倍に拡張。
衆人環視の状態で1時間ほど作業をしたので、真面目に見える3次元よけげーをいじっていた。円柱のワイヤー描画を作って背景に使ってみた。

今日は何か忙しくて、その上疲れて大したことをしていない。SSを進めていないのは結構久しぶりだと思う。

2009/01/22

今日の内分

・蘇生弾幕作成

・復讐空中ダッシュ作成

・Re:Action進行

まず、レーザー弾幕を改善。そのためにレーザー上の点を取得する関数作成。弾幕としてのコンセプトがやや失われたがバランスが良くなった。次に花っぽい弾幕を作りたかったのでスプリンクラーを4重に重ねてみた。スプリンクラーは軌道が単純だけど隙間が狭くなりがちで避けにくい。

次に復讐。ただのダッシュというのはいまいちだと思ったので空中ダッシュにした。緻密なアクションとかを要求したいのでそれにあった性能にするべく調整をしている。

最後にRe:Action。昨日の改善によって新たに出たバグを多分つぶした。もともと再現性が結構低いものだったので撲滅できているかどうかは怪しいが、理論的には大丈夫のはず。

それからRe:Action花形のパーティクル関係の部分を製作。別にたいして難しいことはなかった。

2009/01/21

今日の反発

・蘇生弾幕作成

・Re:Action製作

・復讐キャラ構想

久しぶりにまともな弾幕を作った。それと弾幕の名前をいくつか考えたり。5面は中ボスの弾幕から先に完成しそう。

Re:Actionにも手を着けた。以前書いていた衝突の処理から発想を転換して作った結果、だいぶうまく行くようになったのだが、その方法ではそれはそれでバグがでてくる。原因は大体見当が付いているので何とかなりそう。

そして復讐のボスでまだ構想が決まっていなかった木属性のボスを構想して、描き始めてみた。蘇生の風神雷神をそのまま使っても良かったのではあったけれど、他のキャラクターとの調和を考えて新しいキャラにした。

 

今日は暇だったのでいろいろと考えた結果がこれ。

2009/01/17

今日の記録

・Re:Actionシステム作り

・復讐入力周り

・絵作成

Re:Actionを何か進めないといけないと思ってとりあえず難しいことを考えずに作れるシステム周りを作成。タイトル画面とゲーム画面の接続を関数ポインタとかを使って作って、タイトル画面を動かさないといけないという話を聞いたので文字通り動かした。このとき、自作ベクトルクラスのバグに気が付いたので修正した。正月記念のやつのバグの原因もこれだった。

 

それで飽きたので次は復讐をいじった。だがこっちはこっちでマップ周りがひと段落して次にどこに手をつけるか迷ったので、入力を整理した。で、何を思ったかリプレイを作り始めた。

そのときにキー入力を格納した静的配列を参照渡しとして引数にしようとしたのだが駄目だといわれた。だからといって動的配列に変換して参照渡しすることもできず、結局静的配列の中身を一度動的配列にコピーして、その動的配列を参照渡しして、結果を再び元の静的配列に戻すという面倒なことになった。ポインタを使えばいけるのかもしれないがD言語でわざわざポインタを使うのも嫌。何かいい解決法はないのだろうか。

 

それと、蘇生の5面ボスと復讐のボスの絵を描いた。5面ボスでは絵の輪郭線をつけるかどうか悩んでいる。4面のボスの絵には輪郭線をつけたのだが、それはとぐろを巻いているという特殊な理由があったから。

復讐のボスの絵のほうは以前描いたものの修正。身軽なイメージで書くべく努力しているのだが、どうもうまく描けない。

2009/01/08

今日の混合

・Re:Action再開
・蘇生5,6面追加作業
・弾幕作成中
宣言をしたのでRe:Actionを触り始めた。だったのだが、前いじっていたときに残っていた問題がそのまま放置されていて、まだその問題を解決するための頭が回り始めていないのでどうにもならず、結局タイトル画面を作っていた。物理演算部分を書くのに試行錯誤の繰り返しだったらしく、大量の書き損じのコードがコメントアウトされて残っていて、その部分がとことん読みづらい。バグを解決するためにはその部分を洗わないといけないのでそれが憂鬱。

で、その憂鬱とは別に関係はないのだが蘇生の隠しボスに使わせる弾幕のネタを考えたので作り始めた。単に弾幕を書くのが目的だったので隠しボス自体を実装する気にはならず、とりあえず5面の中ボスに使わせようとしたところ、5/6面をシステムに組み込むのに結構時間がかかった。
それで肝心の弾幕は、隠しボスなのでだいぶふざけて作っている。今のところ自分でも瞬殺される難易度なのだが隠しボスなので成分無調整で。耐久力も普通の5倍ぐらいで制限時間も2倍程度、弾速も2倍以上というわけだが隠しボスなので大丈夫。そのくせボムバリアを持っているが、それも隠しボスなので。あっさりと倒せる攻略法が用意されるのだが隠しボスだから。隠しボス万歳。

2009/01/07

今日の始点

・復讐イベントチップ製作
・物理ゲーム展望
何をやるか考えて、マップから別のマップへの移動を作ることにした。その際、必ずしも移動処理は画面端のみで行うといったものでもないので、マップ移動をイベントとして扱うことにしたので、イベントをマップチップのように配置できるようにイベントチップの製作に取り掛かった。
それでイベントをマップエディタ上で配置してデータに記録するまでを作って、後はテスト用に主人公のスタート位置を設定するイベントを作って実際に動かしてみた。これで大体6時間程度。

物理ゲームを3月末に完成させると漫然と考えていたのだが、カレンダーを見てみるとあまり余裕がなさそうだったので、頭を物理ゲーム製作に切り替えて考えてみた。その結果以下の方針が決定
・Re:Actionはゲームとして
・卓球は3Dの技術力として
・パラボラマスターは物理、数学力として
・フォトンは切る
4作を3ヶ月以下で作るというのは結構なハイペースの上に、卓球やらパラボラマスターやらは間違いなく壁になるだろうということでフォトンを諦めた。フォトンは多分計算に時間がかかり、そして描画部分も地獄が見られる、そしてモデルファイル読み込みをOpenGLで実装するか、DirectXを使うかという茨な二択を迫られる、その割にはぱっとしなさそう、ということでいいとこなし。

明日からはRe:Actionの完成に向けて製作を進めていく。復讐の製作はその気分転換用に。

2008/12/05

今日の延長

・復讐絵について
金行の絵がしっくりこないので、下絵を書き直してみた。それでしっくりこない理由に気がついた。威厳がない。
威厳なんて皆大してないのだが、現在の案だと威厳どころかテーマパークにいるキャラクターのような状態になっている。そもそも、ベースは白虎のはずなのに何時の間にかただの猫になっていた時点でおかしい。

なんとなく、画面に大量にEXTENDと表示される物を作ってみたいと思った。3秒ごとにエクステンドするようなイメージで。実際作るとなると、タイムエクステンドで制限時間が非常に窮屈なバランスがいいと思う。Re:Actionでやってみるのがいいかも。

物理演算系のゲームでは、毎フレームごとに演算を行うよりも、状態が変化した瞬間にその先の軌道を全て計算して、描画用に座標を求めるときはその式の時間の項に時間を代入するだけ、というのがふさわしいと感じ始めた。実装が難しくなるが、計算精度は上がり、衝突でめり込むような問題も回避できて、FPSを変更してもプログラムを大きく変える必要がない。

2008/11/20

今日の壁

・壁反射実装
Re:Actionの完成目標が今日だったわけだが、一番ややこしい衝突周りの処理が書き終わったので、期限を完全に破ったわけではない、と言い訳。復讐を作り始めたことが主たる原因。
昨日大部分書いたのに実装に時間がかかったのは、衝突後の位置あわせと、クラスの参照に関する問題があったから。前者は、暫定的に書いた頭の悪い手法をスマートな方法に書き換えたのだが、式を間違えているのか、それともどこかで浮動小数点が整数に丸められているのかで、上手く行かない場合が出る。色々と試しているが未だ解決には至らず。
後者は、クラスは常に参照渡しされるというDの使用に則って書いていたつもりが、何かが上手く行かずクラスの参照を変更したはずなのに変更されていなかったことに気がつかず、色々な部分をいじっては悩んでいた。
一段落したことにするので、SSの製作に移行する。

復讐で使う画像データをドット絵で書こうと思っていたのだが、アクションゲームはSTGよりも絵をアニメーションさせる必要が多いことを忘れていた。そこで、以前考えていた3Dで作った絵を2Dにする、という方法を改良し、2Dのモデルにドット絵のテクスチャを貼り付けてそれをアニメーションさせて、キャプチャするというのも考えた。しかし、この方法は小さい絵に使うのには向いていない気もする。漫画的手法を使うことで少ない絵の枚数でも納得の行く動きにするのがいいかもしれない。

頭が放物線の人間と、双曲線の人間を書いてみたが、放物線の方がよさそうだった。それだけ。双曲線も悪くはなかった。

2008/11/19

今日の埴輪

・縮小機探し
・FPS調整実装
・直線演算機能実装
ドット絵の縮小ソフトを探した結果、Yukari(ユーカリ、紫ではない)というソフトが一番自分の用途に合っているように感じた。これで上手く行くようならそのまま使い続ける。ドット絵は、1ドットごとに考えてドットをおいていく作業も含めてドット絵と呼ぶ、というの言葉を見たが、大きめなドット絵を小さいドット絵に変える、という手法はドット絵と呼ぶのだろうか。
Re:Actionを再び作り始めた。まずはFPS調整の作成。表示機能の一部を流用して作った。PhobosにCで言うsleep関数がなかったのは意外。垂直同期を使うのは、Dだとやり方がよくわからなく、ABAGamesのやつもタイマーで作っていたので諦めた。
そして、壁との当たり判定を取り始めた。前作ったやつはソースが汚く、汎用性がなく、しかも動かなかったので没にし、新しく数学的な当たり判定を書いた。壁との反射は簡単だったが、壁との当たり判定を取ったり衝突した点を取ったりするのがややこしそうだったので直線クラスを作成。線分を扱うことも出来るはず。
これを蘇生に流用してレーザーを作りたいとも思ったが今更付け足すのも微妙。キャラクターのグラフィックは大きく書いたのを縮小するという技法を取り入れたいと思っている。

棒人間の代わりとなる新しい簡易人間を考えてみた。ジャガイモ、記号、色違いの記号、兵馬俑、埴輪、蝋人形、双子など。こう纏めると意味不明だがどれも長所も短所も持っている。