Re: 就活のために デスクトップマスコットを作りたい! ( No.1 ) |
- 名前:管理人 日時:2024/06/02 01:55
> モデルが表示されているのかされていないのかがわかりません。
現在はどのような表示がされているのでしょうか?
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.2 ) |
- 名前:kukaniki 日時:2024/06/02 15:36
状態:
背景は黒色でフォームは何も映っていません。
モデルの読み込みのエラーとかはなっていません。
Console.WriteLine("model to loading");
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.3 ) |
- 名前:管理人 日時:2024/06/02 17:39
> 背景は黒色でフォームは何も映っていません。
了解です
プログラムを改めて拝見してみましたが、SetUserWindow が DxLib_Init の後に呼ばれているようです
SetUserWindow は DxLib_Init の実行前でのみ有効な関数ですので、SetUserWindow を DxLib_Init の前に
呼ぶようにしてみてください
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.4 ) |
- 名前:kukaniki 日時:2024/06/02 18:56
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.5 ) |
- 名前:kukaniki 日時:2024/06/02 19:01
>
※ 修正後のコードの全体です。
ウィンドウと黒色の画面が奇麗にまとまりました。
using System;
using System.Windows.Forms;
using System.Drawing;
using DxLibDLL;
namespace WinForm
{
public partial class Myf : Form
{
private int model;
public Myf()
{
Ini();
DxIni();
}
public void Ini() // 初期化
{
this.Text = "My Form";
this.Width = 800;
this.Height = 600;
this.FormClosed += new FormClosedEventHandler(Close);
}
public void DxIni()
{
DX.SetOutApplicationLogValidFlag(DX.FALSE); // Log.txtを生成しないように設定
DX.SetUserWindow(Handle); // DxLibの親ウィンドウをこのフォームに設定
DX.DxLib_Init(); // DxLibの初期化
DX.SetDrawScreen(DX.DX_SCREEN_BACK); // 裏画面の設定
model = DX.MV1LoadModel("Model/sora.pmx");
Console.WriteLine("Loading to model..");
DX.SetCameraNearFar(0.1f, 1000.0f); // カメラの描画範囲を設定
DX.SetCameraPositionAndTarget_UpVecY(DX.VGet(0.0f, 10.0f, -20.0f), DX.VGet(0.0f, 10.0f, 0.0f)); // カメラの位置とターゲットを設定
}
public void MainLoop()
{
DX.ClearDrawScreen();
DX.MV1DrawModel(model);
DX.ScreenFlip();
// メインループ内での処理をここに記述します
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Myf form = new Myf();
form.Show();
// フォームを描画させる。
while (form.Created)
{
form.MainLoop();
Application.DoEvents();
}
}
// フォームが閉じられたときに呼び出されるメソッド
private void Close(object sender, FormClosedEventArgs e)
{
// DX.MV1DeleteModel(model); // モデルの削除
DX.DxLib_End(); // DxLibの終了処理
}
}
}
((+_+))何度も返信申し訳ないです。
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.6 ) |
- 名前:管理人 日時:2024/06/02 21:26
> DxLib Model Viewer というアプリが必要みたいです。
DxLib Model Viewer はDXライブラリのパッケージの中の Toolフォルダの中の
DxLibModelViewerフォルダの中にあります
> M1に変換するにはどうすればいいですか?
M1 ではなく MV1 です
DxLibModelViewer で3Dモデルを読み込んだ後に、メニューから『ファイル(F)』→『名前を付けて保存(A)』で
MV1ファイルで保存することができます
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.7 ) |
- 名前:kukaniki 日時:2024/06/05 22:44
ちゃんとmv1に変換しました!
// #pragma warning disable CS0436
using System;
using System.Windows.Forms;
using System.Drawing;
using DxLibDLL;
namespace WinForm
{
public partial class Myf : Form
{
private int model;
public Myf()
{
Ini();
DxIni();
}
public void Ini() // 初期化
{
this.Text = "My Form";
this.FormClosed += new FormClosedEventHandler(Close);
}
public void DxIni()
{
DX.SetOutApplicationLogValidFlag(DX.TRUE); // Log.txtを生成しないように設定
DX.SetUserWindow(Handle); // DxLibの親ウィンドウをこのフォームに設定
DX.SetZBufferBitDepth(24);
DX.SetCreateDrawValidGraphZBufferBitDepth(24);
DX.DxLib_Init(); // DxLibの初期化
DX.SetDrawScreen(DX.DX_SCREEN_BACK); // 裏画面の設定
model = DX.MV1LoadModel("sora.mv1");
if(model == -1)
{
Console.WriteLine("Error");
}
DX.SetCameraNearFar(0.1f, 1000.0f); // カメラの描画範囲を設定
DX.SetCameraPositionAndTarget_UpVecY(DX.VGet(0.0f, 10.0f, -20.0f), DX.VGet(0.0f, 10.0f, 0.0f)); // カメラの位置とターゲットを設定
}
public void MainLoop()
{
DX.ClearDrawScreen();
DX.DrawString(100, 100, "モデルを読み込みたい!", DX.GetColor(255, 255, 255));
DX.MV1DrawModel(model);
DX.ScreenFlip();
// メインループ内での処理をここに記述します
}
// [STAThread]
static void Main(string[] args)
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Myf form = new Myf();
form.Show();
// フォームを描画させる。
while (form.Created)
{
form.MainLoop();
Application.DoEvents();
}
}
// フォームが閉じられたときに呼び出されるメソッド
private void Close(object sender, FormClosedEventArgs e)
{
// DX.MV1DeleteModel(model); // モデルの削除
DX.DxLib_End(); // DxLibの終了処理
}
}
}
なんどかVisual Studio CodeでRunをしましたが、-1とでます。エラーとでます。
こっちはエラーです。
model = DX.MV1LoadModel("sora.mv1");
こちらは文字列がちゃんと出るのに
DX.DrawString(100, 100, "モデルを読み込みたい!", DX.GetColor(255, 255, 255));
------------------------------------------------------------------------------
Microsoft Visual Studio .NET/C/C++ デバッガー (vsdbg)
は、アプリケーションの開発とテストに役立つ Visual Studio
Code、Visual Studio、または Visual Studio for Mac
ソフトウェアでのみ使用できます。
------------------------------------------------------------------------------
Error
原因が不明です。((+_+))あきらめてCppの環境構築をしたほうがいいですか?
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.8 ) |
- 名前:kukaniki 日時:2024/06/05 23:01
|
Re: 就活のために デスクトップマスコットを作りたい! ( No.9 ) |
- 名前:管理人 日時:2024/06/05 23:40
> こっちはエラーです。
> model = DX.MV1LoadModel("sora.mv1");
プログラムをビルドをすると実行ファイル( 拡張子が exe のファイル )が何処かのフォルダに作成されると思うのですが
実行ファイルがあるフォルダに sora.mv1 は有りますでしょうか?
> 原因が不明です。((+_+))あきらめてCppの環境構築をしたほうがいいですか?
Visual Studio Code は私は使用したことがないので Visual Studio Code に関する問題にはお答えできません
C# についても私は詳しくありません
なので Visual Studio Community 2022 で C++ を使用していただけると私もお答えし易いです
|