忍者ブログ
カレンダー
10 2024/11 12
S M T W T F S
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
プロフィール
HN:
[-_-;] (みかん)
性別:
男性
趣味:
プログラミング、XOPS
自己紹介:
中部地方在住です。
最新コメント
[11/30 NONAME]
[11/22 NONAME]
[09/24 NONAME]
[06/10 NONAME]
[01/29 NONAME]
XOPS関連サイト「みかん箱」の運営や、OpenXOPSの開発などを行う[-_-;](みかん)のブログ。近状報告や独り言などを書きます。
Prev Month123456789101112131415161718192021222324252627282930Next Month
C言語で3Dを勉強 -13
気が付くと3月です。

今思うと、このプロジェクト(?)が去年(2009年)12月に始まってから
行き先・計画がコロコロ変わっているので、とりあえず現時点の考えをまとめたいと
思います。

上から順に優先的に取り組みたい項目です。
 ?3DとDirectX APIを勉強する
 ?XOPS自体や関連アプリケーション(エディタやビュアーなど)に
  使いまわせるライブラリの開発
 ?XOPSの動作原理・アルゴリズムの研究
 ?自らXOPS自体のプログラム開発
  (各グラフィックはXOPSのをそのまま利用)

注目してほしいのは、実行順ではないという事です。
現時点で「?が最終目標」という趣旨ではありませんし、?に達する事に
こだわりはありません。
むしろ、?・?の方が重要です。
category : ソフト・ツール開発 comment [0] trackback []
PR
C言語で3Dを勉強 -12

(目線を気にして画像を載せただけです。特に変更点はありません。)

人とマップの当たり判定について、もう総計2週間も考えてます。
『仮で作った』とは言え、当たり判定が気になって作業が先に進みません。
やっぱり早めに作り直します。

人は円柱1つ(弾の処理時は下半身・胴体・頭で3つ)の判定範囲だと仮定しても、
やはりマップの処理が決まりません。

現在は、人から四方八方に「レイ」と呼ばれる見えない光線を飛ばして
それで壁なり床なりの距離を計測して当たり判定を行っています。

ただ、それだとnine-twoさんがわざわざ「ブロックデータ」と呼ばれる
概念を採用した理由が謎に包まれます。
三角形の固まりであるXファイルを使った方が、
nine-twoさんもXOPS専用のブロックエディタならぬ物を作らなくて済むし、
追加マップ制作も制作者側も好きなモデリングソフトが使えるし、
何しろ高精細なマップが作れるはずです。
わざわざファイル形式を独自で作りながらもブロックデータ形式を採用した理由は、
明らかに当たり判定の計算が絡んでくるとしか思えません。
(描画はそれほど高速化されたり都合が良い訳ではありません)

一体「ゲーム・XOPS」という名のブラックボックスの中では何が起こっているのか・・。

nine-twoさんと連絡さえ取れれば、色々と面白い話が聞けると思うのですが、
そうそう簡単に連絡が取れない(返信が返ってこない)という厳しい現実です。
(△ 既にどっかで聞いたw)
category : ソフト・ツール開発 comment [1] trackback []
C言語で3Dを勉強 -11
たまには異なる視点から〜

FPSを30に固定した上、読み込んだポイントデータで各物々を表示しています。

あと、簡易的な仮当たり判定を完成させました。
計算方法が思い浮かばない とは言え、やはり何かしら作らないと先に進まないので。
あくまで「仮」であり、とりあえずこれで作業を勧めますが、後で最初から作り直します。
この仮当たり判定を(後ほどの作り直した物でも引数のパラメーターは同じと仮定して)
関数化して計算効率を高めます。

だいぶ完成に近づいているように見えますが、一人前に見栄えだけであって
完成は果てしなく遠いです。
当たり判定の作り直しもそうですが、AI制御という第二の壁が待っています。
あと、多量の銃弾と音、各イベント処理も考えないといけません。


<追伸>
ポイントエディタ(XPE+)のアップデート・バージョンアップは、結構先の話になると思います。
物凄く自分勝手ですが、VC++に慣れ過ぎてHSPをやる気になれないので。
新機能の要望などで新バージョンをお待ちの方には申し訳ないです。
category : ソフト・ツール開発 comment [0] trackback []
C言語で3Dを勉強 -10
XOPSの陰計算は、どうやらnine-twoさんの独自計算のようです。

C言語で3Dを勉強 -9(02/02)の影計算とXOPS実物の物とは差があります。
(詳細は下記に記載。 暇な人は実際に実行して比較してくださいw)
本物にはDirectXのライティング計算では考えられない(と思う)ような、明暗に段階があります。

どのようにやっているのか。
・・・と考えていると、ヒントは意外な所にありました。
-----
 陰影の付け方が分からなかったので面の法線の向きから光の当たり具合をそれとなく算出した
 「offensive armor」説明書より引用
-----
これは物凄い貴重なヒントで、重要な証言になります。
nine-twoさんの初作品でXOPSの公開から1年以上前のゲームですが、
やや手を加えて(XOPSでも)そのまま利用している可能性があります。

そうと分かれば試してみるしかありません。
ポリゴン(面)の明暗の付け方を考えたうえで、明暗を法線を元に手動計算で算出します。

お見事!
自分で言うのもアレですが、うまく出来ました。
これでマップ表示はほぼ完成しました。
category : ソフト・ツール開発 comment [1]
C言語で3Dを勉強 -9
年が明けたばっかなのに、もう2月です。


▲ DirectX APIでmap1読み込み

なんとかマップを読み込んだ。
まだ何もやってないが、ポイントデータも読み込んでいる。
良く見るとマップに影が付いているが、DXライブラリの時の経験をもとに挑戦した。
ついでに、地味にフォグ効果も搭載。(この場合遠くの物ほど黒くなる)

あと画面上に2Dで文字を描いて、サウンドも再生できた。
っと言っても、2D描画だって画像とかまだ無理だし、サウンドも3D関係がないから
距離による音の強弱も手動でやらなければならない。
ところが、残念ながらサウンドの音量調整のやり方が分からず挫折気味。

無論、当たり判定なんて「何それ?」状態。

「サウンドも再生できた。」って言ったけど、実はDirectX Audioの初期化のし忘れで、
(ただ再生するだけで)計8時間以上苦戦したことは秘密。

苦戦しっぱなしで良い事が無いように感じるが、処理の軽さは最強。
DXライブラリでは考えられないほど高速描画。


以上、雑な近情報告。
DirectX APIの難しさは異常。 nine-twoさんの凄さを再認識した。
category : ソフト・ツール開発 comment [0] trackback []
[24] [25] [26] [27] [28] [29] [30] [31] [32] [33] [34]

※過去のブログ記事は 原則として編集・修正していません。
 各記事の内容は投稿時のものであり、現在では異なる場合があります。
 最新の情報は、関係する内容について書かれた 最新の記事をご覧ください。

TOP