よくある質問 - Polaris Engine Wiki

Wikiトップ   編集   新規作成   複製   名称変更   凍結   アップロード   添付ファイル一覧   バックアップ  

 

目次

他のゲームエンジンとの比較

他のエンジンからSuika2に移行したいです

  • PCやWebで公開したいだけの場合は、なるべくメジャーなエンジンをおすすめしています
  • iPhone, Android, 家庭用ゲーム機をターゲットにしたい場合はぜひSuika2をご利用ください
  • 2024年4月中にUnity+Suika2を公開しますのでMITライセンスのまま家庭用ゲーム機に対応可能になります

他のエンジンではできる○○という機能がないので実装してくれますか?

  • Suika2の機能不足であれば、ほぼ例外なくご要望の機能を実装しております
  • 一方で、スマートフォンはPCの1/100くらいの性能しかないため、移植を考えてあえて実装しない場合もあります(たとえば福笑い方式や衣装差分など)
  • 提案者を尊重していないということは一切なく、既存エンジンの手法がスマホでは利用できないだけです

ゲーム制作関連

複数のキャラクタをまとめて表示できますか?

  • 17系列以降では Ciel というYU-RIS風の演出システムがあり、これの活用をご検討ください
  • それより前からある機能ですと、
    • @all というコマンドがあります
    • キャラクタと背景のうち、好きなものを変更したり、消去したり(none)、そのままにしたり(stay)できます

キャラクタ変更中にメッセージボックスを表示したままにするには?

  • conf/config.txt ファイルの最後の方にある、下記の箇所を書き換えて、=0 を =1 に変更してください
    msgbox.show.on.ch=1

メッセージボックスの横にキャラクタの顔を表示したいです

  • キャラクタ画像として特殊な位置(face)に表示します
    @ch face ファイル名.png
  • face の位置に表示する画像は、フェードイン・フェードアウトの時間指定が無視されます

メッセージボックスにセーブなどのボタンを配置できますか?

  • サンプルゲームでは、画面の小さなスマホでの操作を考慮して、右上のシステムメニューを使っています
  • 一方、Windows向けゲームでよくある、メッセージボックスにボタンを作るスタイルも可能です
    • この場合、右上のシステムメニューは無効にすることができます
    • こちらのサンプル をご覧ください
    • Webブラウザでの実行は こちら
  • スマホ対応を考えると積極的におすすめはしませんが、一応機能としてはあるということです

表情の差分を顔のパーツだけで実現したいです

  • 個人的な考えでは、この機能は他のエンジンの「負の遺産」だと思います
  • たしかに制作が楽になる面はあるのですが、読み込み時間、メモリ使用量、合成時間を考えると、スマホには荷が重いと考えます
  • よって、技術的な詳細は省きますがSuika2では実装しないことに決めました

フォントが変更できません

  • セーブデータにフォントファイル名が記録されていることで、フォントを変更できない、指定していないはずのフォントファイルが開けないと言われる、といった問題が発生します
  • Suika2を終了した状態で、セーブデータのフォルダ sav を削除し、Suika2を再度起動することで解決します

タイトル画面の作り方がわかりません

主人公の名前を入力できますか?

  • 最大26個の名前を入力できます(aからzまで)
  • この機能の開発にあたってはDiscordサーバー上のみなさまに助けていただきました。ありがとうございます!

目パチ画像の作り方を教えてください

日付や好感度を表示したいです

  • テキストレイヤと @pencil コマンドをお使いください
  • 現状では簡易的な表現しかできず、もっと複雑なシステムを構築したい方には、素直にUnityを使っていただくことをおすすめしています

画面全体にフィルターをかけたいです

  • エフェクトレイヤーを使います 背景に色味をつける
  • 一番廉価な水準のAndroidスマートフォンだと描画性能的にギリギリになるため、積極的にはおすすめしていません
  • できるだけフィルター適用済みの画像を作成して対処をお願いします

マクロ機能はありますか?

  • あります。@gosub@return が利用できます
  • マクロを外部ファイルにまとめるには、using 文を使います
  • サンプルとしては こちら に用意してあります
  • マクロ呼び出しは &マクロ名 と省略して記述できます
  • マクロの引数は &1 のように引数番号で記述できます
  • 呼出元のファイルとマクロファイルでラベル名が重複したときに問題が発生するため、 マクロ内で分岐するには拡張ifブロックを使うと、ラベル名を不要にできます。
<<<
# 呼び出し側 (happyは引数)
&マクロ名 happy.png
# 呼び出される側
:マクロ名
if $1 == 0 {
    # 引数で指定されたファイルを表示する
    @ch c &1
}-
else {
    @ch c normal.png
}
>>>

CG鑑賞モードを作れますか?

  • @gui コマンドを利用して作成可能です
  • ダウンロードページにある こちらのサンプル を改造してお使いください

分岐チャートを作れますか?

  • @gui コマンドを利用して作成可能です
  • ダウンロードページにある こちらのサンプル を改造してお使いください

全画面スタイルのノベルゲームを作れますか?

  • Suika2 Pro Desktop でゲームを作成するときに、全画面のテンプレートを選択してください
  • 縦書きも選択できます

ルビの中央寄せはできますか?

  • 現状(Polaris Engine1.0.14)では不可能で、半角スペースで手動調整していただくことになります。対応については、Unity・スマホ対応が優先のため、そちらが落ち着くまでお待ちください。

多言語対応していますか?

WMS の使い方はどこに書いてありますか?

キーボード操作を教えてください

音声ファイルのビットレートはどうすればいいですか?

  • PC向けのゲームでは下記が目安です
    • BGM ... ステレオ128kbps
    • SE ... ステレオ128kbps
    • ボイス ... モノラル64kbps(日本語サンプル) か ステレオ128kbps(英語サンプル)
  • スマートフォンではスピーカーが1つの機種が大半ですので、モノラル48kbpsが目安です

フラグ管理が大変です

  • フラグに名前をつけられるようになりました
    • フラグ名はコンフィグファイルに記述して管理できます
    • 作品を長期にわたって保守して行く上で、よい設計資料になると考えています
  • スクリプトには # でコメントを入れられるので、 @set や @if を使うときには何のフラグを操作しているのかわかりやすく書いておくことが大切だと考えます
  • コメントを書くのは重要です
    • 1年後のあなたにも読めばすぐわかるようにコメントを書くのが望ましいと考えます

旧式のSuika2制作ゲームを最新のインストール版Suika2で編集するにはどうすればいいですか?

ゲーム配布関連

ゲームの配布はどうすればいいですか

  • Suika2からWindows向けにエクスポートして、フォルダごとZIP圧縮して配布します

suika.exe のファイル名を変更できますか?

  • 自由に変更できます
  • 文字コードの問題があるため、Windows/Mac両対応にする場合は、ファイル名をアルファベットにすることをおすすめします

suika.exe のアイコンを変えられますか?

  • Resource Hackerというソフトでsuika.exeのアイコンを差し替えてください

suika-signed.exe は何のためのファイルですか?

  • デフォルトのアイコンでもよい場合は、suika.exeではなくsuika-signed.exeを使っていただければ、署名がついているので起動時に警告画面が表示されないというメリットがあります

Mac版のアイコンを変えられますか?

  • もちろんです、ソースコードからビルドしてください
  • 難しい場合はアイコンファイルをktabataに送っていただければと思います

Androidのアプリの作り方を教えてください

  • ビルド手順
    • Android Studio をインストールします
    • Suika2 Pro Desktop から Android ソースコードをエクスポートします
    • エクスポートしたソースコードを Android Studio で開いてください
    • File -> Sync Project with Gradle Files
    • Build -> Make Project
    • Run -> Debug app
  • ストア申請手順
    • Android Studio で署名済みのapp bundleを作成してください (Build -> Generate Signed Bundle / APK...)
    • Google Play Consoleで初回数千円の登録料を払ってアプリを申請してください

iOSのアプリの作り方を教えてください

  • まず個人か法人で Apple Developer Program に加入します
    • 登録料として年額13,000円程度のサブスク加入が必要です
    • 個人なら免許証の名前、法人ならDUNS登録名がストア表示名になり、個人事業主の屋号や、法人でないサークル名は一切認められません
    • MacでXcodeをインストールします
    • Suika2 Pro Desktop から iOS ソースコードをエクスポートします
    • エクスポートしたソースコードを Mac 上で Xcode で開いてビルドしてください
    • Apple に対してアプリのIDを登録してください (例: jp.luxion.suika2)
    • App Store Connect でアプリの詳細を登録してください
    • Xcode で "Archive" を行い、App Store Connect にアップロードを行います
    • App Store Connect で、アップロード済みのバンドルを選択して、リリース申請を行ってください

Suika2関連

実績を教えてください

  • 利用作品紹介をご覧ください
  • 把握している限りでは下記の通りです (2023年11月2日現在)
サイト名審査採用作品数有料作品数
ふりーむ!ストアと同水準の審査あり51作品、Windows版とブラウザ版の重複あり-
PLiCyNGワードによる自動チェックがあるが、Suika2のパッケージには機能しない10作品-
フリーゲーム夢現緩やかな審査あり11作品-
Google Play ストア 様動作不良についての審査あり5作品1作品
Apple App Store 様表現内容についての審査あり3作品1作品
Valve Steam 様動作不良についての審査あり1作品1作品
DLsite 様動作不良についての審査あり3作品3作品
BOOTH 様審査なし8作品0作品


Suika2のiOS対応の強みについて教えてください

  • まず次のことを知ってください
    • Appleはストアにおいて、JavaScriptやPythonからiOSのAPIを呼び出すことを禁止しています(事実)
    • Appleはマーケティング上の理由で、Webではなくアプリに力を入れています(事実)
    • 日本でのiPhoneシェアは7割、つまりアプリの方が重要であり、Webゲームは主流ではないです(事実)
    • Appleは今後もWebに力をいれることはないと思います(ktabataの憶測)
  • そこで次の点を思い出してください
    • あのエンジンはJavaScript製です(禁止されている)
    • あのエンジンはPython製です(禁止されている)
    • Suika2はJavaScriptやPythonを一切使わずiOSのソースコードをエクスポートします(これはOK!)
  • 以上を踏まえると、ノベルのiOS対応ではUnityかSuika2しか選択肢がないことがわかります

サクサク動作の秘密は何ですか?

  • 私たちはOSごとにネイティブアプリを書いており、これがサクサク動作の秘密です
  • コア部分にはCだけを用いており、OSごとの外側の部分は完全に作り分けています
  • 実行速度の最適化でも職人芸を披露しています
    • GPU方面の最適化
      • Direct3DのシェーダをHLSLではなくアセンブリを使って記述して極限まで最適化しています
      • すべてのスプライトを毎フレーム描画するのではなく、合成済みの2枚の画面をフェードして軽量化/安定化/省電力化しています
      • 演出としては割り切ったものになりますが、スマートフォンへの移植性が非常に高いです
    • CPU方面の最適化
      • 描画ルーチンをSIMD命令に最適化しており、ユーザのCPUで利用できる一番速い拡張命令を使用しています
      • Intel/AMD: SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, AVX2
      • Arm: NEON

Suika2はどうしてオープンソースなんですか?

  • オープンソースが特段に高尚だと考えているわけではないです
  • 私から見たオープンソースの歴史はこんな感じです:
    • 1970年代、ソースコードは入手できるのが一般的だった
    • 1980年代、ソースコードは知的財産として非公開化が進んだ
    • 1983年、Richard M. Stallmanがソースコードを自由に利用できるOSの開発を宣言(GNU)
    • 1990年代、UNIXを巡る知的財産の訴訟でBSDというOSが一時的に利用できなくなった
    • 1990年代、Linus Torvaldsの趣味ソフトLinuxが誕生し、10年程度で成長してUNIX/BSDを置き換えた
    • 2000年代、OSS全盛期、Linuxカーネル+GNUプログラムの利用が普及、RedHatなどがサポート料で収益化
    • 2010年代、AWSなどクラウドが普及し、サポートはクラウドベンダが提供、OSS開発元がサポート料を得られなくなった
    • 2020年代、 サポート料がほしいOSS開発元によって、BSLをはじめとする非オープンソースライセンス化が進行している
  • その上で、Suika2にとっては次の点でオープンソースという形態が有利だと考えています:
    • 普及推進(無料なので敷居が低い)
    • 標準化(PCの吉里吉里やYU-RIS/ERIS、Webのティラノスクリプトから完全移行してもらい、実質的な後継ソフトウェアとしての地位を確固たるものにする。場合によってはIEEE標準化する。)
    • Unityの置き換え(Unityはこの先、利用料で一悶着あることが容易に想像でき、ビジュアルノベルの発展を阻害すると考えています)
    • 商用利用(インディーからの商業へのステップアップで、Unityへの移植を不要とし、Suika2のまま移植できる)
  • では、そこにktabataのメリットはあるのかというと:
    • 勤務先企業の知的財産にならずにすむ
    • 勤務先企業が変わっても開発を継続できる
    • 正直ノベルエンジン程度なら3日あれば書けるので、特段に権利を保護する必要を感じず、それよりも広くフィードバックをいただきたい
  • といったところです
  • MITライセンスであるため、将来的にも誰かに独占されることはないので、安心してご利用いただければと思います