Re: 将棋のゲーム ( No.1 ) |
- 名前:管理人 日時:2022/02/23 01:29
> どこから手をつけていいかわからず、簡単に手順とかは
> 分かりますか。
すみません、将棋のゲームは作成したことが無いので、私も手順は分かりません
> directxはすでに動いています。
DirectX を使用したプログラムを実行するためのプログラミング環境は整っているということでしょうか?
|
Re: 将棋のゲーム ( No.2 ) |
- 名前:はしもとさん 日時:2022/02/23 01:30
プログラム環境は整っています。
3Dのオブジェクトの置き方だけでもいいのですが、例えば空間座標の
認識とかを、簡易的でいいので、分かりますでしょうか。
|
Re: 将棋のゲーム ( No.3 ) |
- 名前:管理人 日時:2022/02/23 01:31
了解です。
すみません、一つ確認なのですが、こちらはDXライブラリの質問掲示板です
3Dオブジェクトの表示の仕方をC++言語とDXライブラリを使用して
行いたいということでしょうか?
( 因みにメタセコイアで作成したモデルファイルはDXライブラリの関数 MV1LoadModel で読み込み、
関数 MV1DrawModel で描画できます )
|
Re: 将棋のゲーム ( No.4 ) |
- 名前:はしもとさん 日時:2022/02/23 01:32
管理人さん
dxライブラリを使っています。
C++言語ですが、C言語で行いたいです。
MV1DrawModelを使ってみます。
将棋盤と駒はどのように位置づけて、描画すればよろしいでしょうか。
|
Re: 将棋のゲーム ( No.5 ) |
- 名前:管理人 日時:2022/02/23 01:38
> dxライブラリを使っています。
> C++言語ですが、C言語で行いたいです。
了解しました
DXライブラリは C++言語のライブラリですが、C言語の書き方で使うライブラリなので
ソースファイルの拡張子を cpp にするだけで、プログラムの書き方は全部 C言語で組めます
> 将棋盤と駒はどのように位置づけて、描画すればよろしいでしょうか。
MV1LoadModel でモデルファイルを読み込んで、MV1SetPosition で位置を設定して
MV1DrawModel で読み込んだモデルを描画する形となります
関数リファレンスの MV1LoadModel の解説をご覧になってみてください m(_ _)m
<関数リファレンス MV1LoadModel>
https://dxlib.xsrv.jp/function/dxfunc_3d_model_0.html#R1N1
|
Re: 将棋のゲーム ( No.6 ) |
- 名前:はしもとさん 日時:2022/02/24 14:48
確認しました。
わざわざスレッドを立てていただき、ありがとうございます。
|
Re: 将棋のゲーム ( No.7 ) |
- 名前:はしもとさん 日時:2022/02/25 09:48
将棋盤の簡易的なものは、表示できました。
MV1SetPosition(MHandle, VGet(320.0f, -100.0f, 600.0f));により、
配置しました。駒を置く際は、やはり平面でないと、座標的に駒の
配置位置の指定はできないでしょうか。
|
Re: 将棋のゲーム ( No.8 ) |
- 名前:管理人 日時:2022/02/26 06:28
> 駒を置く際は、やはり平面でないと、座標的に駒の
> 配置位置の指定はできないでしょうか。
すみません、仰りたいことの意図が分かりませんでした
もう少し詳しくご説明いただけないでしょうか?
|
Re: 将棋のゲーム ( No.9 ) |
- 名前:はしもとさん 日時:2022/03/01 21:35
まだ意図的な部分までは、作成方法は決まっていません。
決まり次第、質問させていただきます。
|
Re: 将棋のゲーム ( No.10 ) |
- 名前:はしもとさん 日時:2022/03/08 22:35
管理人さん
以下のように、カメラを原点「0,0,0」から離して、原点に、
xファイルのモデルを置いたのですが、何も表示されません。
モデルを置くだけのソースなら表示しました。
何か分かりますでしょうか。
---------------------------------------------------
//カメラの描写範囲(奥行)を0.1〜10000.0に設定する。
SetCameraNearFar(0.1f, 10000.0f);
//( 0.0, 9.0, -22.0 )の位置にカメラを設置し、視線を( 0.0, 10.0, 0.0 )にあるターゲットへ向ける。
VECTOR cameraPos = VGet(0.0f, 9.0f, -22.0f);
VECTOR theTarget = VGet(0.0f, 10.0f, 0.0f);
bool targeIsOrigin = false;
SetCameraPositionAndTarget_UpVecY(cameraPos, theTarget);
MHandle = MV1LoadModel("tenohira.x");
// 画面に映る位置に3Dモデルを移動
MV1SetPosition(MHandle, VGet(0.0f, 0.0f, 0.0f));
// 3Dモデルの描画
MV1DrawModel(MHandle);
// モデルハンドルの削除
MV1DeleteModel(MHandle);
---------------------------------------------------
|
Re: 将棋のゲーム ( No.11 ) |
- 名前:管理人 日時:2022/03/10 23:36
原因としては二通り考えられます
A.カメラの位置と向きが正しくない
B.モデルが大きくて画面からはみ出ている
どちらが原因なのかは tenohira.x を拝見してみないとわかりませんが、
とりあえずDXライブラリのパッケージの中にあるモデルビューアーを使用すると
カメラの正しい位置と向きを簡単に割り出すことができます
<モデルビューアーの場所>
DxLib_VC\Tool\DxLibModelViewer\DxLibModelViewer.exe
モデルビューアーに tenohira.x などのビューアーが対応しているモデルファイルをドラッグ&ドロップすると
モデルビューアーにモデルが読み込まれ、モデルが画面に表示されます
その状態でビューアーのメニューの『クリップボード(C)』→『カメラの設定をクリップボードにコピーする(C)』を
選択するとクリップボードに以下のようなカメラの設定を行うDXライブラリのプログラムがコピーされます
SetCameraPositionAndTarget_UpVecY( VGet( -0.000002f, 21.211802f, -44.648567f ), VGet( 0.000000f, 2.717758f, 0.000000f ) );
SetCameraNearFar( 0.508708f, 127.176987f );
( クリップボードにコピーされるプログラムの内容は、表示されているモデルやカメラの位置で変化します )
後はクリップボードにコピーされたカメラの設定を行うプログラムを
MV1DrawModel を実行する前の行にコピーすれば、少なくとも
カメラの設定が原因である『モデルが表示されない』現象は解消できます
よろしければお試しください m(_ _)m
|
Re: 将棋のゲーム ( No.12 ) |
- 名前:はしもとさん 日時:2022/03/11 15:24
管理人さん
試してみました。表示はしました。
ありがとうございます。
|