トップページ > 記事閲覧
就活のためデスクトップマスコットを作りたい パート2
名前:kukaniki 日時: 2024/10/03 17:25

注意:Dxlibの勉強中の初心者さん  丁寧に接していただければ幸いです。    主(kukaniki)は、独学でしております。 3&#8558;キャラクターの表示とアニメーション実現が出来ましたが。 3&#8558;キャラクター.pmdの作り方やアニメーションの探すサイトがわかりません。 〇 情報不足 :       書籍が古いのが多くて情報が少ないです。       Aくん < 愚か者! 自分で探せよ! kukaniki < ワイ友達おらんしプログラミング教室、月額日ぼったくりだし。       Bくん  < いいわけするなよ。 〇 結論 : 棒立ちのアニメーションと走るアニメーションを併用してうまくキーボードの画面を走り回る「しょぼん(´・ω・`)」を作りたいと考えています。        pmdのキャラクターの作成方法やvmdのアニメーションの作成方法など。 有名なサイトを知りたい。 〇 現在の進行 : キーボードでの座標の確認、アニメーションの制御が理解できていなくて  個人的には、C++で作っていますが 本当は、3Dゲームを作る友達が欲しかったんです。( ;∀;) 有識者 恐れ入りますが、どうかご教示お願いいたします。 ◎      下記のソースは改変されたデモですちゃんと勉強している方でないと理解はできません。        ちゃんとしたソースが欲しいなら勉強して頂戴!( 一。一) 〇 ソース デモ : #include "DxLib.h" #include "windows.h" // WinMainの注釈用 #include "cstdio" #include "cmath" // sin, cos関数用 // グローバル変数 float CameraX = 0.0f; // カメラのX座標 float CameraZ = -30.0f; // カメラのZ座標(初期値として後方に配置) float CameraY = 10.0f; // カメラのY座標(高さ) float MoveSpeed = 0.5f; // カメラの移動速度 // グリッドを描画する関数 void DrawGrid(int gridSize, int gridStep) { int gridColor = GetColor(200, 200, 200); // グリッドの色を薄いグレーに変更 for (int x = -gridSize; x <= gridSize; x += gridStep) { // Z軸に平行な線を描画(色を強くするため、太い線を表現) DrawLine3D(VGet((float)x, 0.0f, (float)-gridSize), VGet((float)x, 0.0f, (float)gridSize), gridColor); } for (int z = -gridSize; z <= gridSize; z = gridStep) { // X軸に平行な線を描画(色を強くするため、太い線を表現) DrawLine3D(VGet((float)-gridSize, 0.0f, (float)z), VGet((float)gridSize, 0.0f, (float)z), gridColor); } } // プログラムは WinMain から始まります int WINAPI WinMain(_In_ HINSTANCE hInstance, _In_opt_ HINSTANCE hPrevInstance, _In_ LPSTR lpCmdLine, _In_ int nCmdShow) { ChangeWindowMode(TRUE); // ウィンドウモードで起動 int ModelHandle, AttachIndex; float TotalTime, PlayTime = 0.0f; // アニメーション再生時間を保持 SetGraphMode(800, 600, 32); // ウィンドウサイズを800x600に設定 SetBackgroundColor(0, 0, 0); // 背景を黒に設定 if (DxLib_Init() == -1) // DXライブラリ初期化処理 { return -1; // エラーが起きたら直ちに終了 } SetDrawScreen(DX_SCREEN_BACK); // 描画先画面を裏画面にセット // カメラの初期設定 SetCameraNearFar(0.1f, 100.0f); // モデルの読み込み(PMDファイル) ModelHandle = MV1LoadModel("C:\\Users\\PC01k\\Downloads\\ボコボコにしてやんよ\\ボコボコにしてやんよ\\bokoboko.pmd"); if (ModelHandle == -1) { MessageBox(NULL, "モデルの読み込みに失敗しました。", "エラー", MB_OK); DxLib_End(); return -1; } AttachIndex = MV1AttachAnim(ModelHandle, 1, -1, FALSE); TotalTime = MV1GetAttachAnimTotalTime(ModelHandle, AttachIndex); // 色の定義(白色) int siro = GetColor(255, 255, 255); while (ProcessMessage() == 0 && CheckHitKey(KEY_INPUT_ESCAPE) == 0) { // アニメーションの再生時間を進める PlayTime += 0.016f; // 60FPS想定で時間を進める if (PlayTime > TotalTime) { PlayTime = 0.0f; // アニメーションをループさせる } // アニメーションの進行に合わせてキャラクターを再生 MV1SetAttachAnimTime(ModelHandle, AttachIndex, PlayTime); // カメラ移動処理 (W, A, S, Dキーで移動) if (CheckHitKey(KEY_INPUT_W) != 0) { // 前進(Z軸方向にプラス) CameraZ += MoveSpeed; } if (CheckHitKey(KEY_INPUT_S) != 0) { // 後退(Z軸方向にマイナス) CameraZ -= MoveSpeed; } if (CheckHitKey(KEY_INPUT_A) != 0) { // 左移動(X軸方向にマイナス) CameraX -= MoveSpeed; } if (CheckHitKey(KEY_INPUT_D) != 0) { // 右移動(X軸方向にプラス) CameraX += MoveSpeed; } // カメラの位置とターゲット(正面に固定) VECTOR CameraPosition = VGet(CameraX, CameraY, CameraZ); VECTOR CameraTarget = VGet(CameraX, CameraY, CameraZ + 1.0f); // カメラの向きは常にZ軸方向に設定 SetCameraPositionAndTarget_UpVecY(CameraPosition, CameraTarget); // 画面のクリア ClearDrawScreen(); // グリッドの描画 DrawGrid(40, 4); // グリッドサイズを大きく、ステップ間隔も大きくしました // 3Dモデルの描画 MV1DrawModel(ModelHandle); // 2Dテキストの描画 - カメラ位置の表示 DrawFormatString(0, 0, siro, "Camera X: %.2f", CameraX); // カメラのX位置を表示 DrawFormatString(0, 20, siro, "Camera Z: %.2f", CameraZ); // カメラのZ位置を表示 DrawFormatString(0, 40, siro, "PlayTime: %.2f", PlayTime); // アニメーションの再生時間を表示 // 画面更新 ScreenFlip(); } // モデルの解放とDXライブラリの終了 MV1DeleteModel(ModelHandle); DxLib_End(); return 1; } 〇 参考サイト :       "httP://neokiex.hatenablog.com/entry/2019/12/11/125909"       "httP://qiita.com/massoumen/items/2985a0fb30472b97a590"
メンテ

Page: 1 |

Re: 就活のためデスクトップマスコットを作りたい パート2 ( No.1 )
名前:管理人 日時:2024/10/04 01:33

> pmdのキャラクターの作成方法やvmdのアニメーションの作成方法など。 > 有名なサイトを知りたい。 すみません、私はご要望に該当するサイトは知りません…
メンテ
Re: 就活のためデスクトップマスコットを作りたい パート2 ( No.2 )
名前:kukaniki 日時:2024/10/05 16:01

管理人さんお忙しい中、連絡を有難うございます。 現状日本市場では、pmd(キャラクター)やvmd(アニメーション)の市場は無いということですか? 回答:ご要望のサイトは該当なし 理解いたしました。 (´▽`)自分はdxlibを触れてみて3&#8558;のキャラクターの多種多様なアニメーションって面白いなと感じます。 ご協力、感謝致します。
メンテ
Re: 就活のためデスクトップマスコットを作りたい パート2 ( No.3 )
名前:名無三 日時:2024/10/08 10:10

pmd、pmx、vmdはMMD用に作られたフォーマットである意味日本独自のものになります。 モデルはニコニ立体などで再配布可、商用利用可能レベルで規則を緩くしていただいているモデルをお借りしたりVroidで作ることができます。 アニメーションは上記のもののようにお借りする、MMD上で自分で手打ちするなどして作成することができます。 注意点として、あくまでMMD向けに作られておられるのでゲームなどの素材目的で無闇にリソースに含めるのは規約違反になる事もあります。 ゲーム的な観点ではテクスチャ枚数や物理設定の多さなどにより普通に読み込んで使うだけでもかなり重たい可能性があります(まぁVroidで作成するのであればある程度は制御できますが…) また、1m=12.5として作られている点にも注意です。 上記をよく読み込んで使用しましょう。
メンテ

Page: 1 |

題名
名前
コメント
パスワード (記事メンテ時に使用)

   クッキー保存