Skip to content

アプリケーションの公開

Reputeless edited this page Mar 14, 2017 · 8 revisions

Siv3D で開発したアプリケーションを公開する際のガイドラインです。

コンピューターのスペック

Siv3D で開発したアプリケーションを実行するには、次の環境が必要です。

配布に必要なファイル

配布するフォルダ内に以下のデータを配置します。

  • アプリケーションの実行ファイル (.exe)
    • Release ビルドでは最小で 15MB 程度になります。(プログラムや埋め込んだファイルの量に応じて増加します)
    • 実行ファイルのターゲット (x86 または x64) は ソリューションプラットフォーム で設定します
    • x86 は 32bit / 64bit 両方の OS で動作し、x64 は 64bit OS でのみ動作します
    • ビルド時に生成される .exe 以外のファイル (.pdb, .exp, .lib ファイルなど) は不要です
  • dll 以外を削除した Engine フォルダ
    • dll(x86) / dll(x64) フォルダ以外のファイル (Assets, Fonts, Shaders, Splash.png 等) は自動的に .exe に埋め込まれます
    • ターゲットが x86 (32bit) の場合 dll(x64) は不要です
    • ターゲットが x64 (64bit) の場合 dll(x86) は不要です
    • Config.ini は開発者向けのファイルのため、配布しません

  • アプリケーションが使う画像やサウンドなどのファイル(.exe に埋め込んでいなければ)
  • (必要であれば)ユーザーに読んでもらうマニュアルや README などのドキュメント

以下のような配置になります。


Web 上で公開する場合は、これらの親フォルダを zip 圧縮しましょう。

ヒント

Release ビルドにする

配布するアプリケーションは Visual Studio のソリューション構成を「Debug」ではなく「Release」にしてビルドしましょう。Release ビルドと Debug ビルドの違いは次の通りです。

  • exe ファイルにデバッグ情報が埋め込まれないので、サイズが小さくなる
  • 最適化された機械語が生成されるので実行速度が速くなる
  • ソースコード中の assert が無視される
  • ログに最小限の情報しか出力されなくなる

アイコンを変える

アプリケーションのアイコンを変更するには、プロジェクトフォルダの icon.ico を新しい ico に置き換えて、プロジェクトをビルドします。icon.ico は .exe に埋め込まれるため、配布する際に添付する必要はありません

スプラッシュ画像を変える

オリジナルのロゴ画像を起動時に表示するには、Engine フォルダの Splash.png を新しい画像に置き換えてプロジェクトをビルドします。新しい Splash.png も .exe に埋め込まれるため、配布する際に添付する必要はありません

アプリケーション名

.exe ファイルの名前や、実行時にタスクマネージャーに表示されるアプリケーション名を変更するには、Visual Studio のソリューションエクスプローラーのプロジェクト名を変更します。

ウィンドウのタイトル

ウィンドウに表示されるアプリケーションのタイトルは Window::SetTitle(L"タイトル") で設定します。

配布するファイルの数とサイズを極限まで削るには

いくつかの制約のもと、最小で 9 MB 程度(zip 圧縮すると 5 MB 程度)の .exe ファイル単体でアプリケーションの実行が可能です。

dll の機能を使わない

dll が提供する機能をプログラムで使わない場合、該当する dll や Engine フォルダを添付する必要はありません。

DLL 添付しない場合の制約
D3D シェーダファイル (.hlsl) のコンパイルができません。Shader::Compile() でコンパイル済みのシェーダを使うことは可能です。
libmpg123 MP3 ファイルのロード速度が低下します。また、MP3 のデコード結果が若干異なる場合があります。
libqrencode QR::MinimumVersion() 及び QR::Encode() が使用できません。QR コードの読み取りは可能です。
SoundTouch WaveStretcher クラス、Sound::changePitch(), Sound::changeTempo() が使用できません。
TobiiEyeX TobiiEyeX:: 名前空間の関数が使用できません。

埋め込みファイルを削る

Resource.rc で設定されている、Engine 関連の埋め込みファイルのうち // Optional 以下に記述されているものについては、該当ファイルを使わない場合、// でコメントアウトすると埋め込みをキャンセルできます。

ファイル 埋め込まない場合の制約
Engine/Objdetect/facePhoto.zip Imageing::DetectFaces() で、CascadeType::Photo が使用できません。
Engine/Objdetect/faceAnime.zip Imageing::DetectFaces() で、CascadeType::Anime が使用できません。
Engine/Fonts/mplus-1p-thin.zip Typeface::Thin が使用できません。
Engine/Fonts/mplus-1p-light.zip Typeface::Light が使用できません。
Engine/Fonts/mplus-1p-regular.zip Typeface::Regular が使用できません。
Engine/Fonts/mplus-1p-bold.zip Typeface::Bold が使用できません。
Engine/Fonts/mplus-1p-black.zip Typeface::Black が使用できません。
Icon.ico アプリケーションのアイコンが設定されません。
Engine/Splash.png スプラッシュ画像が表示されません。

以上の制約のもと、9 MB 程度(zip 圧縮すると 5 MB 程度)の .exe ファイル単体でアプリケーションの実行が可能です。

← 前の章へ戻る | - 目次 - | 次の章へ進む →

Siv3D について

  1. Siv3D の基本
  2. 図形を描く
  3. テクスチャを描く
  4. テキストを描く
  5. 文字列と数値の変換
  6. キーボード入力
  7. マウス入力
  8. サウンドの再生
  9. MIDI の再生
  10. ウィンドウと背景
  11. 図形のあたり判定
  12. 乱数
  13. ダイアログ
  14. ドラッグ & ドロップ
  15. アプリの状態
  16. テキストファイル
  17. INI, CSV, JSON
  18. バイナリファイル
  19. GUI
  20. アセット管理
  21. 画像編集
  22. Web カメラ
  23. マイク入力
  24. 経過時間の測定
  25. HSV カラー
  26. ファイルダウンロード
  27. 3D 描画
  28. 2D のレンダーステート
  29. 3D のレンダーステート
  30. パーティクル
  31. スクリーンショット
  32. アプリケーションの公開
  33. さらに学ぶには

表現テクニック集

入出力デバイス

開発のヒント

Clone this wiki locally