HSPかC++か

hirai_jp20002009-04-26

春休みがなんだかんだで終わってしまって、ゲーム制作に割ける時間が極端に減ってしまった。
最近は夜10時帰りがデフォルトとか、高校時代の自分からじゃ信じられない。まぁ、サークルは好きでやってるわけだし、多分6月か7月にはもっと早く帰れるようになるとは思うけど。
とは言っても、暇な時間には一応コーディングは進めてるつもり。


…。


途中までプログラム書いてて思ったんだけど、なんか想像以上に車動かすの大変だ…orz
例えば、ブレーキの処理一つにしても、速度の絶対値を比較しないとどっちの方向に力を加えればいけないのか分からない。すなわち、仮の速度の計算をしてから絶対値を比較してようやく力の向きが決定という流れになる。その処理をしないと、逆方向に加速し続ける…(汗
処理としてはそんなに多くないんだけど、こういうのがいくつもあって、最終的に車が動くまでに数千行になっていそうな気がする。


そもそもの目的として、HSPでの目的は挙動計算のアルゴリズムをある程度確立しておくというものが挙げられる(C++に移った時に困らないようにね。)。それで、HSPで途中まで書いた段階でなんとなくイメージは出来てきたので、ここはパッとC++に移っちゃうのもありかなぁと。というか、このままいくとHSPだけで満足してしまいそうだ…(汗


実際に、HSPでプログラムする中で見えてきたこともあった。
StraightCarChaser以来、技術的な進歩はほとんど無かったといっても過言ではないが、実生活では高校数学を修得し、ベクトルというものを理解した。存在自体は中学の頃から知っており、3Dプログラムを書く上では必須だと言っても過言ではないことはなんとなく分かっていた…が理解できなかった。
それをHSPで使い始めたのはつい先日のことで、3Dにおけるベクトルというものの偉大さの一片をなんとなく理解した。
過去の話になるが、StraightCarChaserにおいては、車が常に直線の道路に沿って走らなければならなかった。これは完全に自分の技術不足であり、車が回転したときにどう処理すれば良いのかということが皆目見当がつかなかったためである。ちなみに、StraightCarChaserでは、向きを変えても直線方向の速度は変わっていなかったという…(笑)
ところが、いまやベクトルというものを理解し、その処理は意外に簡単であるということが分かった。駆動力を例に取ってみると、タイヤの向きを正規化したうえで、そのベクトルに力をかければ良いだけなのである。タイヤの向きは、車体の向きから出せば良いし、車体の向きは力のモーメントから計算すれば良い。
意外に簡単そうである。


というわけでそろそろC++に移ろうかと思案中…。実際問題として、このまま移ると色々な問題が起こってくるであろうことは見えてるし…。かといってこのままHSPで続ければ、そのまま満足してアルゴリズムを忘れるかもしれないからなぁ。自分が書いたプログラムっていうのは時として理解できなくなるんだよね…。でも、その点はC++の方がクラスがあるから有利かもしれない。


まぁ、気が向いたら明日からC++に移ろうかな。


ちなみに画像はちょっと進化したHSPのプログラム。って言っても、超適当な加速・減速しかできないけど。

ソフトバンク

気づいたらいつの間にか春休みが終わってしまっていた。
2か月って案外あっけないのね。


それで、諸々の都合で携帯をau→Soft Bankに変更、というかSoft Bankを追加。
サークルの新歓で、冊子にauのアドレスを書いていたため、4月一杯は携帯を2個持ち歩く羽目になってしまった。
それはまだ許せるが、Soft Bankの携帯がかなり使い辛いというのが許せない。安物を買ったっていうのもあるけど、家の中でメール送信ができないっていうのは一体どういうことなんだろ?そのせいで未だにメールアドレス変更のお知らせも全部は送れていない。再送信を繰り返すこと50回。auでもメール送信ができなかったというのならまだしも、京都市の繁華街の近くでこれは無いでしょ。やっぱ、Soft Bankは安いだけなのか。


とは言っても、今更仕方ないし、しばらくはこれで我慢するとしよう。人間の適応力を信じてみることにする。題して、人間は退化できるのか!?笑

コーディング開始

hirai_jp20002009-03-25

今日から本格的にHSPでプログラムを書き始めました!
とりあえず、最初はグラフィック面について書いたあと、実際に車が動くようにする予定。


それで、今日は車の表示をメインに進めていました。
久し振りということもあって、マニュアルを見つつゆっくりやっていたのだが、さっそく問題が一つ発生。3Dモデルに陰影が無く、べた塗したようになってしまうのだった。
シェーディング方法についていろいろといじってみるも変化なし…汗
そこで、HGIMG3のサンプルを見てみたところ、他の設定は一切行っていない。にも関わらず、陰影がしっかりでている(涙)何故だ?ということで、そのプログラムで3D自作モデルを表示してみたところ、なんとこれまた陰影が表示されない。ということは…。


結局、モデリングデータそのものに問題があったらしい…。Xファイルの出力オプションで法線ベクトルを出すようにしたところ、あっさり解決。


何はともあれ解決して良かった。


そして、ドライバー視点というものをHSPで初めてやってみた。StraightCarChaserでもやろうとしたことがあったんだけど、ポリゴンが欠けるため、無理だった。その原因はレンダリングする範囲の指定にあると考えていたが、HGIMG2では指定できず、諦めることに。案の定、HGIMG3では範囲が指定できるようになっていた。それで範囲を指定してみると、ポリゴンが欠けることも無く、ドライバー視点で描写できたというわけ。ちなみに上の画像はハチロクのドライバー視点。まだテクスチャは張ってないけど…(汗)


ということで、これから少しずつ進めていく予定です。

納車

昨日、SCOTT SPEEDSTER S45 CDがついに納車されました!
こんなんです↓


う〜ん、かっこいい^^笑
ちなみに、シートチューブ側についているものは、空気入れですが、予備のタイヤチューブは持っていないどころか、チューブの交換方法すらまだ分かっていないのでほぼ意味無し…笑
しかも、今日の朝に空気を入れようとしたところ、上手く入らずにタイヤの空気だけがどんどん抜けていったという…汗 まぁ、なんとかなったけどね。


そして、さっそく今日の朝に34kmぐらい走ってきました。


初のロードバイクですが、なんというか、ママチャリとは全然違う。笑
下り坂で最高速度50km/hを見たときはほんとびっくりしました。
いや〜、速い。


…とは言っても、そんなに乗りこなせるはずもなく、まず最初は変速機構がいまいち分からず。そのうち慣れたけど、今度は20kmを過ぎたあたりから、段々と巡航速度が…。最初は35km/h前後で走っていたものの、最後は20km/hほどで、ママチャリに抜きつ抜かれつ…。汗 まぁ、信号の影響もあるけど。


それで、今回走ってきたことでわかったことがいくつか。


ジーパンで乗る場合は、裾を止めるマジックテープが必須。というか、無いとチェーンに絡まないかかなり心配になる。またあとで買ってこよう。

そして、さらにジーパンで乗るとサドルが白いせいか、微妙に色が移る…。まぁ、乗った後に掃除すれば気にはならないけど、何か考えた方が良いかも。


総評としては、高い買い物だったけど、非常に満足。今後は、せっかく京都にいることだし、色々な観光名所に行ってロードバイクと一緒に写真でも撮ってこようかな。
まぁ、これから一週間ほど帰省するんで、次乗るのは一週間後。

ロードバイク購入!?

いつの間にかロードバイクを購入することに…。と言っても、今日注文して来ただけで手元に物があるわけではない。


何故買うことを決心したかというと、時間距離の短縮によって、行動範囲を広げようかと思ったことに起因する。せっかく京都に住んでいるのだし、色々と回ってみるのも良いと思ったのである。電車や市バスを使うと交通費が半端ないし、かといって今のホイールのひんまがった(にも関わらずまっすぐ走る…!?)重いママチャリだと足が疲れ、長距離を走るのは大変だからである。
それに加え、最近知ったことなのだが、ロードバイクは一日に200km程度走れるらしく、それなら自宅にロードバイクで帰れるのでは?と思ったのである。それによって、交通費が浮くという非常に大きな経済効果が得られるのである。(笑)

いずれにしても、スポーツバイクに乗るのは初めてであり、1カ月程度慣らし運転をしてから本格的に使うことになると思う。納期は今週末であり、非常に楽しみである。


そして、今回選んだバイクがコレ↓

http://www.goldwin.co.jp/scott/bike/products/onroad/speedster_s45cd.html SPEEDSTER S45 CD


他にも、TREK 1.2やGIANT DEFY2も候補に挙がっていたが、最終的にデザインでこれを選んだ。他の2台に比べると多少値が張ってしまったが、コンポも一つグレードが上がっていることだし、良いとしよう。まあ、コンポの違いなんて良く分からないけど。


そんなこんなで、またゲーム制作にかける時間が減ってしまいそうだ…(汗
今現在はHSPでコーディングを始めたところであるが、肝心なところは未だ手つかず。というか、初期化の処理を書いただけ…。久し振りなのでマニュアルを見つつゆっくりと進めていこうと思う。

展望

月日が経つのは早いなぁと思う今日この頃。


いつの間にか2月も終盤になってしまいました。レースゲームに関しては結局、2月2日から未だ進展なし。サークルが忙しくてなかなか時間が取れないというか。ほぼ毎日朝〜晩までだからなぁ。まあ、好きだからやってるんだけど。


言い訳はこのくらいにして、とりあえず今後の展望について。展望というか、むしろ妄想だけど(笑)


HSPで足回りの暫定2次元モデル(ジオメトリは無視するとか)の開発

HSPで暫定エンジンモデル(トルク、出力をそれっぽく近似)の開発

C++で足回りの暫定3次元モデルの開発

C++で暫定エンジンモデルの開発


っていう感じかなぁ。それ以後は暫定モデル→本格的なモデルへの移行っていう感じか。いずれにしても開発中に色々と問題が出てくるだろうから、あくまで展望。

ハチロク

hirai_jp20002009-02-02

モデリングはほぼ完了。ここまで計5日。実動時間にして、10時間ぐらいかな。リハビリも兼ねてたわりには早かった気がする。あとはモデルの細かい調整と、テクスチャのUV設定して、テクスチャを描けば完成だ。


とりあえず、最初はこの車×HSPで挙動計算のテストを行っていこうと思う。とは言っても、この車は運転したことないし、あくまでもそれっぽい動きを目指す方向で。


ただ、よく考えると車を走らせるためには、操舵装置にブレーキ、エンジンが最低でも必要なんだよね。サスペンションも必要な気がするけど、そこまでは手が回らないし、とりあえずなしの方向で考えてる。


操舵装置は、アッカーマンジオメトリとかキングピン軸考えるのは面倒だから、前輪は常に平行であるとして考えよう。色々と問題はあるが…。


ブレーキは、制動力は適当に、前後比率は一定で。プロポーショニングバルブを考えるのもまた今度。ロックしたときの挙動がどう出るのか良くわからないけど、それは結果をみつつ考えよう。後輪はロックしてもエンジンへの影響は考えない。


それで、問題はエンジン。トルク曲線は回転数の2次式にでも近似して、駆動力はそのトルクが両輪に直にかかると考えて計算すれば良いのだろうか。エンジンに関する文献は読んだことが無いので良くわからない。最終的には空燃比や点火タイミング、カムシャフトの特性まで考えるようなものにできると面白いと思う。


こう考えてると、最初はレーシングカートで考えた方が楽な気がしてきた。サスペンション、LSDは無いし。その変わり荷重移動が面倒なのかな??まあ、いいや。


なんか自分用のメモみたいになってしまった。でも、考えたことを実際に書くことによって得られるものもあると思うので、これで良しとしておこう。


ちなみに、HSPである程度の挙動計算を確立させた上でC++に移っていく予定。もちろん、ここ5日間はモデリングしかやっていなかったので、プログラミングの方は全然進んでいない。


とりあえず、今から明日の意味不明な情報のテスト勉強でもしよう(泣