使ってゲーム・アプリ開発してる方、気軽に参加してください!※DXライブラリではなく、DirectXを直接いじってる方を対象にしています。※興味を持った方は誰でも参加していただいて構いません。つの質問につき、一つのスレッドを作成して下さい。・個人の判断でスレ立てるまでもないなーと思った質問に関しては、「スレ立てるまでもない質問」のスレッドに投稿をお願い致します。何か迷ったら私の方まで気兼ねなくメッセージをお送り下さい。9年前2Dカメラの実装について。詳細はNNKさんの最初の投稿をご確認ください。20:15管理人がタイトルと文章を変更しました。今後は基本は一つの質問につき1スレ作成していただくようお願い致します。9年前では早速日記でも書いてるのですが。現在DirectXを使用して自作のゲームを制作しておりまして、2Dの横スクロールなのでメッシュなど3Dの機能は省いて、2Dのみでプログラミングしていきたいと思っております。DirectXを使用してる理由は派手なエフェクトとカメラを使って画面にスピード感などの演出をしたいからです。一応やりたい事を記述すると1.左右上下の移動とズームも自由にしたいので出来る、3D空間でのカメラ操作を可能にする。2・ゲーム自体は2Dなので、キャラなどオブジェクトをスクリーン座標での値で操作する。3・尚且つ、回転や拡大もキャラなどオブジェクトが出来るようにする。現在FVFをD3DFVF_XYZに設定して行列を計算した結果をSetTransformでワールド空間に描画してます。カメラも自由に操作出来、キャラやオブジェクトも自由に回転や拡大出来るようになっているが、スクリーン座標での値で操作出来ない。正射影変換にすればスクリーン座標で指定出来るが、カメラが固定されるので自由が利かない。逆にFVFをD3DFVF_XYZRHWにした場合スクリーン座標で指定出来るけど、SetTransformが使えないので回転や拡大は別に計算しなければならない上に、カメラの制御もできないので、何とかD3DFVF_XYZでスクリーン座標の値で自由に操作したいんです。やりたい事が成立するならばD3DFVF_XYZでもD3DFVF_XYZRHWでも構わないんですが、分かる方がいれば是非ご教授お願い致します。9年前これは私も興味あったので試してみました。425,350]http://www.nicovideo.jp/watch/sm12541374[/BBvideo]上の動画ではID3DXSpriteインターファイスを使用したのでそれ以外ではあんまり参考にならないかもしれませんが、私はまずカメラのクラスを作りそこにカメラの現在地、ズーム(拡大)、回転を合わせたマトリックスを出す関数を用意しました(位置はスクリーン座標で)。ID3DXSpriteのBegin()を呼ぶ時にカメラのマトリックスを保存し、End()が呼ばれるまでの間に描画される全てのスプライトにこのマトリックスを適用しました。);}かなり長く、しかも分かりにくくなりましたが、もし欲しい情報と違かった場合は申してください。あと、最近日本語が壊滅的なのでどこか変だったら指摘してください。9年前お返事ありがとう御座います。動画拝見させて頂きましたが、まさに私がしたい事です!上手く実装してみます!!にしても本当に素晴らしいコミュニティですね^^ずっとお互いの技術を交換して、高め合う場があれば良いなぁ~と思ってたのですが、ゲームプログラミングがより一層楽しめそうです。これからは、簡単な事でも自分が躓いたところや工夫したところを載せて、皆のゲームクリエイトライフが充実するようになると良いなぁって思います。9年前>>大熊猫さん。回答ありがとうございます私も非常に助かりましたし、参考になりました^^>>NNKさん。今回の質問は私も勉強になりました。);上記のソースをコピペすればスクリーン座標で値を操作可能です(はず)。一部の引数などは各々のプログラムに合わせる必要ですが、下記に一応説明しますね。d3dmMatrixZこのみっつ追加して下さい。);決め打ちされてる値のうち、D3DXMatrixScalingとD3DXMatrixRotationZの関数の数値を弄れば回転や拡大が出来ます!わーい、やったねwあと自分はキャラクターの回転や拡大も変更する事になりました。明日はそちらも合わせても綺麗に纏めて書き込もうと思います。何か整理してたら、キャラクターの回転や拡大が出来なくなっちゃいました。中心からずれてるんで、上手く行列を操作すれば良いと思うんだけど、もう4日も同じとこやっててモチベーションが下がりつつあるし、一応正射影変換は実装出来たので一旦他の作業しようと思います。前の書き込みのソースでD3DXMatrixScalingの値が0.25fになってますが、1.0fが正しい倍率です。テストして決め打ちしてたのがそのままになってました。5と8に書いてあるソースコードを組み合わせれば、FVFの設定をD3DFVF_XYZの状態でスクリーン座標の値で操作出来るので、是非2D(空間)のゲームを作ろうと思ってる方は試してみて下さい。このカメラを応用すれば、自分のプログラムは現在キャラの中心をカメラの中心にしてますが、イベント用の座標を用意して、そこまで距離を求めて速度を入れてあげれば、カメラを新しく登場にしたキャラに向けるなどの機能も簡単に作れるかなと、あと仲間など複数のキャラが画面内に納める事も出来ると思うで、是非活用してみて下さい。何かあれば書き込もうと思います。ミクプラは自由にリンクできます。