top page



プロフィール

Yo./Namikaze Project

Namikaze Projectの萌え系プログラマ。ご意見などありましたら、記事にコメントあるいは、twitter(@yo_namikaze)、メール(yo@namikaze.org)にお願い致します。


開発環境など

C++, Blender, Unity, DirectX, Windows7

カレンダー

<   2014年12月   >
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

旧ブログへのリンク

Yo.'s Game Development Diary

購読(RSS)

Powered by Movable Type 5.2.9

[Idinaloq] 進捗 2014/12/15

| コメント(0) | トラックバック(0)

3Dオブジェクトを管理するクラスを作り直し中です。もうしばらくかかりそうです。内部設計の変更なので、目に見えるような進捗になりませんが、これが終わらないと色々収拾がつかなくなるので、ここは落ち着いて進めたいと思います。

3Dといえば、旧イディナロークは、オイラー角でオブジェクトをコントロールしていて、しかもDirectX6のDirect3DRMにおんぶにだっこでした。なので、実のところあまり困った記憶が無かったのですが、時を経て改めて作ってみたところ、どうもうまく回転しないな、などと思っていたのでした。パイロット選択画面では、pitch-30度、yaw-80度、rollは少しづつ行います。回転する順序を変えて誤魔化して乗り切っていたのですがw、ローカル座標で任意軸回転させたほうが楽なので、素直にクオーターニオンを導入しました(←いまここ)。過去を振り返ると、イディナロークの様な、動きの少ないw 3Dオブジェクトを使用した2Dシューティングは、ダイナミックな動きが無かったおかげでオイラー角制御でもなんとかなってしまっていたのかなと思います。

ライブラリとかエンジンとかの話。3D描画エンジンであるD3DRMはとうの昔になく、そして後続のD3DXも無くなりましたね。Direct3D Retained Mode(D3DRM)がサポートされなくなった代わりにD3DXがリリースされた時、同じことになるような気はしていましたが、思いのほか長生きしましたね。DirectXの関数にせよ、ライブラリを生で使うのもライブラリに依存するのでマズい、と毎回思うので、今回はしっかりやろうと思います。まあ、ラッパ関数の作成と、ライブラリを作るだけなんですけれどね。これは、D3DRMに依存しすぎ、しかもD3DRMの関数がコードにガチガチに複雑に入り組んでいる為、D3DRMを模擬するライブラリを作るのもキツイ(RMを全部作ることになる)という状況を次に起こさないようにする為でもあります。同じような感覚を、実はUnityにも感じていたりします。ライブラリを使って楽をするならば、やはり、ソースコードがある方が安心できますが、エンジンのソースが無いので、最悪でも、C#やBooで書いて、Unityが無くなってもアプリケーション部分をある程度使いまわせるようなコードにする必要はありそうです。ソースがあるゲームエンジンとしては、Blender+Bullet+Ogre3D+Luaのgamekit(Ogrekit)は開発が明らかに止まっていますし、Blender Game Engineで作るには、広く頒布するには若干のハードルがあったりします。

とまあ、こういう話は楽しいのですが、今はWindowsプラットフォーム向けにWindows依存でガリガリ書いていきます。次回作る際に悩むことにしましょう。

今日はこの辺で。
ではでは。



トラックバック(0)

トラックバックURL: http://www.namikaze.org/mt/mt-tb.cgi/8

コメントする

Yo Namikaze Channel

アフィリエイト

Twitter