SetTransform()とか

 個人的に謎なんですが、


D3DXMATRIX world, view_to_screen;
DrawPlate( 0, 0, 0 );

// 全軸ビルボード (カメラの逆行列作成)
world._11 = g_camera._11;
world._12 = g_camera._21;
world._13 = g_camera._31;

world._21 = g_camera._12;
world._22 = g_camera._22;
world._23 = g_camera._32;

world._31 = g_camera._13;
world._32 = g_camera._23;
world._33 = g_camera._33;

// スクリーン座標に変換
D3DXMatrixMultiply( &view_to_screen, &g_camera, &g_ortho_proj );
D3DXMatrixMultiply( &view_to_screen, &view_to_screen, &g_screen );
D3DXMatrixInverse( &view_to_screen, NULL, &view_to_screen );
D3DXVec3TransformCoord( &out, &pos, &view_to_screen );

world._41 = out.x;
world._42 = out.y;
world._43 = out.z;

g_pD3Ddevice_3D->SetTransform( D3DTS_WORLD, &world );

これと

D3DXMATRIX world, view_to_screen;
// 全軸ビルボード (カメラの逆行列作成)
world._11 = g_camera._11;
world._12 = g_camera._21;
world._13 = g_camera._31;

world._21 = g_camera._12;
world._22 = g_camera._22;
world._23 = g_camera._32;

world._31 = g_camera._13;
world._32 = g_camera._23;
world._33 = g_camera._33;

// スクリーン座標に変換
D3DXMatrixMultiply( &view_to_screen, &g_camera, &g_ortho_proj );
D3DXMatrixMultiply( &view_to_screen, &view_to_screen, &g_screen );
D3DXMatrixInverse( &view_to_screen, NULL, &view_to_screen );
D3DXVec3TransformCoord( &out, &pos, &view_to_screen );

world._41 = out.x;
world._42 = out.y;
world._43 = out.z;

D3DXVec3TransformCoord( &set_pos, &origin, &world );
DrawPlate( set_pos.x, set_pos.y, set_pos.z );

これが等価にならないようなんだけど、何ででしょか…。

「(0,0,0)に描画したものに行列演算かける」のと

「行列演算した座標のものを描画している」のとの違いしかないはずなんだけど…。





 3D2D描画が上手くいってるようないかないような、R-無印です。

ちなみに


D3DXMatrixTranslation( &mat, x, y, z );
これと

D3DXMatrixIdentity( &mat );
mat._41 = x;
mat._42 = y;
mat._43 = z;
これと

D3DXMatrixIdentity( &mat );
D3DXMatrixTranslation( &trs, x, y, z );
mat = mat * trs;
これの「mat」の結果はすべて等価になります。

device->SetTransform()に放り込めば同じ結果…になるはず。

…多分、2番目のが一番軽い…のかな??




 ストライカーズ1999、二周ALL達成ーー!!





な、R-無印です。

言うまでも無く通常機体ですよー。



 思えば、ゲーセン通い始めた頃に最新作で。

それから少ししてから割とガッツリやりこむものの、2-5ボスと相討ち。

それから8年?くらいして再会してから、1年くらいやってようやっとの二周ALL


…長かったなぁ…。

何にせよ、ALLできてヨカタヨ。



===
以下、ミス/ボム配分。

・4ボス第二形態開幕凡ミス

・2-5ボス第二形態開幕で微調整ミス(残7→4)



 二周目ランダムは

戦車→空→海→列車

・海ボス第一開幕右端で1ボム。

・列車ボス減速固定弾で1ボム。

・2-7で3ボム。

・2-8中型機後半で1ボム。

・2-8中ボスで1ボム。

・2-8ボス第一で1ボム。

・2-8ボス第二で1ボム。



2-8ラストが一周目と同じで助かった…。




 テンカイナイトのゲームがヤバイことに愕然としているR-無印です。

これは…どうなのよ…。

蒼い人で適当に撃ってれば終了じゃないですか。

面白くなってきたけど、これは

「楽しい」→「面白い」ではなく、

「困難にぶつかる」→「解決法を模索する」→「面白い」であって、

万人に薦められるタイプの「面白い」ではないなぁ…。

…しかも、そこまで大した困難ではないしなぁ…。



…あ、後攻略wikiはあるっぽいね。




中級者(?)のための攻略メモ -テンカイナイト ブレイブバトル 導入編-

 まだクリアしてないけども、誰も書きそうに無いので、メモっていく。



** 移動関連 **


・前x2でダッシュできるタイプ。ゲージがある限り可能。
・ジャンプ中空中制御不可。
但し、空中ダッシュが可能なので、ジャンプ→ダッシュでの足場移動が基本。
・ジャンプ中ボタン押しっ放しでホバー。
・ロックしてからだと常に敵側を向いて移動できる。
 肝なのは「空中制御不可」なところ。

基本的な横移動はダッシュが基本になるため、細かな調整は効かないものと考えた方がいいかも。

 後、ロックは正直使っている余裕がない気がする。

…というより、使わなくてもなんとかなるレベル。

ロックを気にする前に回避パターンを作りませふ。



** 基本システム関連 **


・ザコ敵の発生位置は固定で、居なくなると一定時間で復活する
・ザコ発生位置が画面内であっても問答無用で復活するため、
待ち中は多少離れておくこと。
・「n体破壊せよ!」系は、本当にn体倒すだけでいい。
全箇所の敵を破壊する必要は皆無。
・「強攻撃」にはノックバック効果があるが、
ノックバック後に大きな無敵時間を与えてしまうため、
1対1では使わないこと。
・一部の攻撃は方向入力との組み合わせで上段下段を使い分けられたりする。
ザコ敵はかなり適当に湧いてきます。

冗談抜きに突然復活するので、倒したら少し距離を置くの推奨。



** で、どうするのか? **


・トリビュトン(蒼い人)最強です。(俺に任せとけって!)
・開幕近くのザコ破壊→ザコポイントに適当に弱攻撃を撒いておく
→ザコ破壊...の繰り返し。
・複数体相手になる場合は、強攻撃で吹き飛ばして1対1に持ち込む。
基本的に蒼い人で飛び道具撃ちまくってれば問題ないです。

 ザコポイント合わせでなくても、

真下の降りてくるであろう箇所などの要所に弱攻撃撒いておけば

弱攻撃でもダメージ十分に入るので、爆発四散していきます。

強攻撃は敵の数に応じて数え撃ちしていかないと、

こちらが蛸殴りにあうので注意。



** ポイントメモ **


・Xモード中は小さい敵には攻撃があたらないので要注意。
↓+強攻撃の下段蹴りで削るべし。
・ガードは前方のみ有効。背中からだと普通に喰らうので、
耐える場合は壁際で。


*ボスの取り巻きにミニ幹部が付く場合は、
どちらかの壁際でガードして待つ→弱攻撃コンボ(or下段蹴り)で
ミニ幹部を葬ってからボス本体を叩くのがセオリーか。
*馬は、開幕は右→左→中央の動くが、
以降は必ず左→右→中央の順で動くので、
中央右で走り始め確認→ジャンプ+ホバーでやりすごし
(→ガードで敵弾やりすごし)→弱攻撃コンボx1→走り始め確認...でOK。
*…なので、馬の開幕一発目はまず回避できないので、
喰らうものと考えておいた方がいいかな…。



 3D上2Dが上手くいきそうでいかない…R-無印です。

大昔にこんなことを書いたわけなんですが、

どうやら、これだとカメラの姿勢ベクトルに対してはもろに影響を受けることが発覚しました。今更。

(D3DXMatrixLookAtLH()のpUpの影響を受けるということ)

 …んー、どうも解せないのが、


・「カメラの逆行列」を放り込んでいるのに、姿勢ベクトル分だけ「影響を受けている」。
ということ。

 単純な発想でいけば、

・World座標系にカメラ行列で変換をかけてスクリーン上の座標を求めている

はずなので、スクリーン上の座標にカメラ行列をキャンセルさせるものを放り込めば、World座標系になるはず。

…で、「カメラ行列をキャンセルさせるもの」というのは、「カメラの逆行列」になるはずなのだけれど…。

ここに姿勢ベクトルが入っていないというのはドウイウコト??





*追記

 …アレ…pUpはずっと


カメラの上方を示すベクトル
だと思っていたのだけれど、

マニュアルを見返してみたら、


pUp
 [in] カレント ワールドの上方、一般には [0, 1, 0] を定義した D3DXVECTOR3 構造体へのポインタ
と記述してあるな。

…えーと、…この感じからすると無闇に回すものでもなさそうであることと、

World変換と合わせて使うチックな感じ…なのかしら?

…でも、そうすると、

「カメラマン自体のローリング」

って、

一般的にはどうやって表現するんやろか??




 …と、何となく書き遺しておいた方がいい気がして書いてみたけど、

なんやよくわからんな、R-無印です。

…まぁ、僕はかつてその一つまみだったこともあったりしたので、

現在みたいな流れになるのは…まぁ、渋々ながらも納得はしています。

でもさ、ロケテから張付いていないとダメだとか、稼げないとダメだとか、

その風潮は少しおかしいのかな…と。

そんなだから、ゲーセンそのものもゲームよろしく、

少しでも他に劣るようだったら閉店…なんてことになってるんじゃないのかね?

…なんてね…それは流石にないか…ない…よね?(汗)





…あー、ちなみに全国スコアが表示されるのなんて一部だけじゃね?

というのは承知しております。

よくよく考えてみると少し違和感を感じたので、書き残してみた次第です。




アーケードゲーム雑誌の存在意義

 よくよく考えてみると、アーケードゲーム雑誌の存在意義って、

「オンラインランキング」「攻略動画」の出現によりかなり奪われていると思うのよね。

 サーバ経由で全一スコアが常にわかるゲームも、

稼動してから一週間としない内にラスボス撃破の動画がupされるなんて光景も

今では決して珍しくない。

わざわざ雑誌なんぞ買わなくても全国クラスの情報はわかるし、

酷い場合は全く努力しなくてもエンディングを見られる。



……この状況ってどうなのかね?

 全一のスコアとか常に表示されましても、

実際にそれを確認して本当に意味のある人間って、ほんの一握り…というより、一つまみくらいなのよね。

大抵のライトユーザーにとっては雲を掴むどころか太陽を握りつぶすような話で…。

それであれば、「自己ベスト」や「店内ランキング」を確認できた方が有意義な人間が多いのではないかと思ってみたり。

店内ランキングとかはかつての筐体内ランキングなわけだけど、

「この台で誰がプレイしたか」がわかるわけで、自分のスコアが抜かれていればすぐわかるし、上手い人が来ていれば分かったりする。

…で、場合によっては観察されていた人に声をかけられたり、妙なギャラリーが話の種になったりとかしたんだけど…、

最近あんまり無いような気がするのよね…、単純な人口減少の影響のようなきもするけど。



 ゲーセンに通ってる人間って、もちろんゲームをやりに来ているというのもあるけれど、

多かれ少なかれ、そういう人付き合いとかその場の空気とかを楽しんでる人間だと思うのよね。

だから、globalな情報もいいけど、もう少しlocalな情報も大事にして欲しいなとか思う次第なのですよ。

多分、そのglobalな部分を本来担っていたのが、アーケードゲーム雑誌の立ち位置だった…と思うんだけど、

現在はネットで事足りてしまうのよね、その手の情報って。

ましてや情報の新鮮さにおいては、紙媒体では敵う訳が無い…。

 でもさ、前述の通り、全国ランキングが極々一部の人間にのみ意味があるものだとしたら、

ランキングは店舗内のみにして、全国ランキングは雑誌側に任せる形がやっぱり理想的なんじゃないかと思うのよね。

全国レベルの戦いもいいけど、localな戦いの方が熱かったような気がするし(笑)

少なくともハード的な条件は一致してるわけだし、対戦者および目標のプレイが目の前で見られるのは燃えますわね。



 …んまぁ、ゲームはゲームでしかないわけなので、

本人が楽しめるのであれば、何してもいい…はちょっと誇張だけど、(汗)

本人楽しいのであればOKなわけで、

そんな、「アケだから全一目指すのは当然でしょ?」みたいに

全一スコアだけドーン!と出すんじゃなくて、

もっと他に表示するものがあるんじゃないかね?と思った、それだけの話でございます。