DXライブラリの特徴


 DXライブラリの主な特徴を以下に記します。

 1.Windowsプログラム( Android/iOS版の場合は Android/iOSアプリプログラム )だと意識しなくて済む
 2.ライブラリの色が薄い
 3.ライブラリのソースコードを公開

 まず1の『Windowsプログラム( Android/iOS版の場合は Android/iOSアプリプログラム )だと意識しなくて済む』ですが、 これは大抵の同種のライブラリでも同じだと思います。『メッセージループ』だとか、 WindowsAPI云々などとは99%無縁の環境でゲームプログラムが出来ます。 ( Android版の場合も同じく、Androidアプリ特有の『アクティビティ( Activity )』や『ビュー( View )』といったものを意識せずにプログラムを組むことができます。 )
( iOS版の場合も同じく、iOSアプリ開発では必須の『Objective-C』や『Swift』などのC言語以外をあまり意識せずにプログラムを組むことができます。 )

 次に2の『ライブラリの色が薄い』ですが、これは何を意味するかと いいますと… いわゆるライブラリ独自の『規則』や『法則』が少ないと いうことです。つまり、このライブラリでつちかったゲームプログラム技法は 他の開発環境に移っても通用しますし、逆を言えば他の環境で養ってきたプログラム技法も このライブラリで通用する率が高いということです。
 これは重要なことで、逆に独自性が高いライブラリですと他の開発環境に移ったときに 今まで築いてきた知識が全く役に立たなかったり、そのライブラリを使おうとしたときに多くの 知識と技能を再構築しなくてはならなくなるという事態に陥ります。

 3の『ライブラリのソースコードを公開』 は、今では特徴というほどでもありませんが… 見ようと思えばライブラリ内部で何が行われているか確認することができます。


DXライブラリの仕様


必須開発環境及びソフト

 Windows版
  WindowsXP 以降のOS
  VisualC++ 6.0以降 又は BorlandC++ Compiler5.5 など

 Android版
  Android Studio, Visual Studio 2015 ~ Visual Studio 2019 又は Android の NativeActivityアプリをビルドできる開発環境。

 iOS版
  Xcode 10 以降が動作する Mac パソコン。



使用言語

 Windows版
  C++

 Android版
  C++
  ( Java 用のDXライブラリ Android版はありません )

 iOS版
  C++
  ( Swift, Objective-C用のDXライブラリ iOS版はありません )



開発したソフトの必須動作環境

 Windows版
  WindowsXP 以降のOS
  DirectX9 以降がインストールされていること
  DirectX7 以降に対応したグラフィックスデバイス( 3Dモデルを扱う機能を使用する場合のみ )
  プログラマブルシェーダーを使用する場合はシェーダーモデル 2.0 以降に対応したグラフィックスデバイス
  40MBほどの空きメモリ

 Android版
  Android 2.3 以降で OpenGL ES 2.0 が正常に動作する Android 端末。
  ( 実機での動作確認済み最低バージョンは Android 4.0.3 )

 iOS版
  iOS 7.0 以降の iPhone, iPad 端末。


機能表

 Windows環境依存処理
    メッセージ処理
      メッセージ処理関数を定期的に呼ぶことで解決

 Android環境依存処理
    イベント処理
      イベント処理関数を定期的に呼ぶことで解決

 iOS環境依存処理
    イベント処理
      イベント処理関数を定期的に呼ぶことで解決

 グラフィックス機能
    簡易図形描画機能
      点、線分、矩形、円、三角形

    2D画像描画機能
      画像管理方式
        識別番号による管理
      描画機能
        等倍、反転、回転、拡大、変形
      描画設定機能
        ブレンドモード設定機能
          半透明(256段階)
          加算(256段階)
          減算(256段階)
          乗算(256段階)
        フィルタリング形式設定機能
          最近点サンプリング方式
          バイリニア補間方式
        描画輝度設定機能(赤・緑・青、各256段階)
      補助機能
        トランジション効果機能(256段階)
        マスク効果機能
      対応ファイル形式
        BMP、JPEG、PNG、TGA、DDS、ARGB、TIFF

    文字描画機能
      描画可能フォント形式
        ノーマルフォント( Windows版のみ )
        アンチエイリアスフォント
        縁付きノーマルフォント( Windows版のみ )
        縁付きアンチエイリアスフォント
      描画設定機能
        太さ、大きさ
        半透明、描画輝度
      補足
        テクスチャキャッシュ方式なのでかなり無理がききます

    3D画像描画機能
      ポリゴン描画機能
      3Dモデル機能
        対応ファイル形式
          x, mqo, pmd( + vmd ), pmx( + vmd ), mv1( ライブラリ独自形式 ),
          fbx( ビューアーのみ )
          ( pmx は pmd 相当の機能のみを使用した pmx ファイルのみ正常に
           読み込める仮対応状態 )

    Live2D モデル機能
      対応バージョン
          Cubism 4
      モーション再生、目パチ、物理、呼吸、パラメータ設定等標準的な機能に対応
      ( 機能の使用には別途 Live2D Cubism SDK for Native 4-r.1 が必要です )

 サウンド機能
    サウンド再生機能
      管理方式
        識別番号による管理
      再生方式
        ノーマル(再生終了待ち)
        バックグラウンド
        ループ
      設定機能
        パン( Windows版のみ )
        ボリューム
        ループ位置設定
      再生方式その2
        ノーマル再生
        ストリーミング再生(ファイル逐次読み込み)
        ストリーミング再生(メモリからの圧縮データ逐次展開)
      対応ファイル形式
        WAV、MP3( Windows版のみ )、Ogg Vorbis、Opus

    MIDIファイルの演奏機能( Windows版のみ )
      演奏方式
        ノーマル(再生終了待ち)
        バックグラウンド
        ループ
      設定機能
        パン

 動画再生機能
    対応ファイル形式
      Ogg Theora
      AVI ( Windows版のみ )
      MPEG ( Windows版のみ )
    補足
      動画を再生しながら他の処理を行うことも可能

 入力関係
    ジョイパッド入力機能
      最大対応数:8
      最大対応ボタン数:32(方向ボタン含む)
      アナログ入力対応数:2スティック(PSパッドのスティック等)
      バイブレーション機能( Windows版のみ ):簡易的な振動機能(PSパッド等)

    マウス入力機能
      ポインタの位置取得
      ボタンの押下情報取得
      ホイールの回転数取得

    タッチパネル入力機能
      タッチ位置の取得
      タッチ位置の一つをマウス左クリックとみなす機能

    キーボード入力機能
      キーの押下状態の取得
      文字列入力支援機能

 通信関係
    TCP/IPによるデータ通信機能( Windows版のみ )

 その他
    アーカイブ機能(複数のファイルを1ファイルに纏める機能)

    1ミリ秒単位のカウンタ

    現在時刻の取得

    乱数(Mersenne Twister 法を使用)

    ウインドウモード起動( Windows版のみ )

    ソフトウエアレンダリング機能( Windows版のみ )

    画像データへの直接アクセス機能

    その他



文字コード

  プログラムのソースファイルで使用できる文字コード

    Windows版
      シフトJIS、UTF-16LE、UTF-8など

    Android版
      UTF-8( Unicode 8bitフォーマット )のみ

    iOS版
      UTF-8( Unicode 8bitフォーマット )のみ

 起動時のDXライブラリで扱う文字コード

    ( 下記は起動時のもので、プログラム中で関数 SetUseCharCodeFormat を使用することで
     使用文字コードの変更が可能です。 )

    Windows版
      シフトJIS 又は UTF-16LE( Unicode リトルエンディアン )

    Android版
      UTF-8( Unicode 8bitフォーマット )

    iOS版
      UTF-8( Unicode 8bitフォーマット )

 対応文字コード

    シフトJIS( 日本語用 )
    GB 2312( 簡体字中国語用 )
    UHC( 韓国語用 )
    Big5( 繁体字中国語用 )
    Windows-1252( 西欧言語用 )
    ISO/IEC 8859-15( 西欧言語用 )
    UTF-16LE( Unicode リトルエンディアン )
    UTF-16BE( Unicode ビッグエンディアン )
    UTF-32LE( Unicode リトルエンディアン 32bitフォーマット )
    UTF-32BE( Unicode ビッグエンディアン 32bitフォーマット )
    UTF-8( Unicode 8bitフォーマット )



ライブラリ制作にご協力していただいた方

  加藤 潔 様

   DXライブラリの元となったライブラリを制作され、色々なアドバイスをして頂き
  ました。


  木村 信行 様

   通信機能を追加するに当たって木村様の通信ライブラリプログラムを参考にさせて
  いただきました。



  《補足》
   DXライブラリは加藤様、木村様が組まれたプログラムを参考に私がリメイク、及び
  ちょっとした機能追加をしたに過ぎません。
   DXライブラリは一般公開されていない加藤様、木村様のライブラリを沢山の方々
  に利用していただくために作ったものだという事をここに記載しておきます。


  ミンガ 様

   DrawFormatString 関数 printfDx 関数 等の書式付き文字列描画関数を作成する
  ようアドバイス頂き、参考となるプログラムを提供して下さいました。



利用させていただいている自作以外のプログラム

  SYN様

   SYN様が改良された Mersenne Twister 法の疑似乱数発生プログラムを利用
  させていただきました。



著作権について

   こちらに纏めました。


戻る