トップページ > 記事閲覧
Live2Dモデルの表示に関して
名前:ななし 日時: 2022/08/02 12:02

お世話になっています。 Live2D_LoadModelのサンプルプログラムでLive2Dモデルを画面に表示してみたのですが、 その場合表示されるモデルは横幅がSetGraphModeで設定した画面横幅の半分の解像度に自動で拡大縮小され、表示位置は画面の中央に表示されるようになっていると思います。 (Live2D_Model_SetTranslate(int Live2DModelHandle, 0.0f, 0.0f) 、Live2D_Model_SetExtendRate(int Live2DModelHandle, 1.0f, 1.0f)で表示した場合が上記の状態なのだと思います。) 例えば2DアクションゲームのキャラクターをLive2Dモデルで作成し、画面に表示して操作したいと考えているのですが Live2Dモデルを原寸の解像度で画面上の任意の座標に表示させることができるようにはなりませんでしょうか? よろしくお願いします。
メンテ

Page: 1 |

Re: Live2Dモデルの表示に関して ( No.1 )
名前:管理人 日時:2022/08/03 05:46

> 例えば2DアクションゲームのキャラクターをLive2Dモデルで作成し、画面に表示して操作したいと考えているのですが > Live2Dモデルを原寸の解像度で画面上の任意の座標に表示させることができるようにはなりませんでしょうか? 画面の中央に表示する処理と自動拡大縮小処理をOFFにする関数を追加することでご希望の処理を実現できると思います 一つご質問なのですが、任意の座標に表示させることができるようになった場合、表示座標を座標x=0 y=0 とした場合は 画面左下端にLive2Dモデルが表示されることになるのですが、 その場合画面左下端をLive2Dモデルのキャンバスの左下端に合わせる形が良いでしょうか? それとも画面左下端にLive2Dモデルのキャンバスの中心点が来る形が良いでしょうか?
メンテ
Re: Live2Dモデルの表示に関して ( No.2 )
名前:ななし 日時:2022/08/03 08:25

>一つご質問なのですが、任意の座標に表示させることができるようになった場合、表示座標を座標x=0 y=0 とした場合は >画面左下端にLive2Dモデルが表示されることになるのですが、 >その場合画面左下端をLive2Dモデルのキャンバスの左下端に合わせる形が良いでしょうか? >それとも画面左下端にLive2Dモデルのキャンバスの中心点が来る形が良いでしょうか? お疲れ様です。 その場合、画面左下端をLive2Dモデルのキャンバスの左下端に合わせる形にしていただけると嬉しいです。
メンテ
Re: Live2Dモデルの表示に関して ( No.3 )
名前:管理人 日時:2022/08/04 00:42

ご返答ありがとうございます ( 表示座標をx=0, y=0 とした場合は画面左下端( or 画面左上端 )にキャンバスの左下端( or 左上端 )が合う形にしました ) Live2D を原寸で表示する機能などを追加したバージョンをアップしましたので、 よろしければダウンロードしてください m(_ _)m https://dxlib.xsrv.jp/temp/DxLibVCTest.zip // Windows版 VisualC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCCTest.zip // Windows版 BorlandC++ 用 https://dxlib.xsrv.jp/temp/DxLibBCC2Test.zip // Windows版 C++ Builder 10.3 用 https://dxlib.xsrv.jp/temp/DxLibGCC_MinGWTest.zip // Windows版 MinGW 用 https://dxlib.xsrv.jp/temp/DxLibDotNet.zip // Windows版 .NET用 https://dxlib.xsrv.jp/temp/DxLibMakeTest.zip // ソース (中身を既存のライブラリのファイルに上書きして『リビルド』をして下さい) 以下の関数を追加しました // Live2D のモデル描画をする際に、画面サイズに応じたスケーリングを行うかを設定する // UseFlag TRUE:スケーリングを行う( デフォルト ) FALSE:スケーリングを行わない int Live2D_SetUseAutoScaling( int UseFlag ) ; // Live2D のモデルを画面の中心に描画するかを設定する // UseFlag TRUE:画面の中心に描画する( デフォルト ) FALSE:画面の中心に描画しない int Live2D_SetUseAutoCentering( int UseFlag ) ; // Live2D_Model_SetTranslate で指定する平行移動値の y の向きを反転するかを設定する // UseFlag TRUE:反転する( デフォルト ) FALSE:反転しない int Live2D_SetUseReverseYAxis( int UseFlag ) ; // Live2D のモデルのキャンバスの横幅を取得する float Live2D_Model_GetCanvasWidth( int Live2DModelHandle ) ; // Live2D のモデルのキャンバスの縦幅を取得する float Live2D_Model_GetCanvasHeight( int Live2DModelHandle ) ; ななしさんがご希望される処理を行う場合は上記3つの関数を全部 FALSE を渡して呼んでいただければと思います Live2D_SetUseAutoScaling( FALSE ); // 自動拡大縮小OFF Live2D_SetUseAutoCentering( FALSE ); // 画面中心表示OFF Live2D_SetUseReverseYAxis( FALSE ); // Y軸反転OFF ( DxLib_Init の呼び出し後の辺りに上記3行を追加してください ) あと、前回『表示座標を座標x=0 y=0 とした場合は画面左下端にLive2Dモデルが表示されることになる』と 申し上げましたが、こちらも Live2D_SetUseReverseYAxis( FALSE ); を実行することで他の DrawGraph や DrawBox などの描画関数と同じようにY軸の原点が画面上端になり、プラスの方向が画面下方向となります ( また、Live2D_SetTranslate( ModelHandle, 0, 0 ); で描画した場合も画面左上端に表示される形になります ) Live2D_Model_GetCanvasWidth と Live2D_Model_GetCanvasHeight は グラフィックハンドルの GetGraphSize に相当する関数が存在しなかったので追加しました よろしければお試しください m(_ _)m
メンテ
Re: Live2Dモデルの表示に関して ( No.4 )
名前:ななし 日時:2022/08/04 21:00

Y軸の反転オフなどまで対応していただきありがとうございます。 無事に各関数の動作を確認することができました。 DXライブラリにはとても助けられていますのであらためてお礼を言わせていただきます。
メンテ

Page: 1 |

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

   クッキー保存