よくある質問 - Polaris Engine Wiki

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

 

目次


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

Polaris Engineにはどんな特徴がありますか

  • Polaris EngineはiOSやAndroidのアプリをワンクリックで出力できる世界で唯一のノベルエンジンです
  • Polaris EngineはUnityプロジェクトを出力できるので家庭用ゲーム機への移植が簡単である世界で唯一のOSSノベルエンジンです
  • 免責: 2024年5月13日に著者の知る限り

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

  • 他のエンジンからPolaris Engineへ移行するのは、iPhone, iPad, Android, 家庭用ゲーム機で公開する可能性がある場合にしていただければと思います
  • PCやWebでの公開しか考えない場合、無理に学習コストをかけて移行していただかなくてもよいと思います
  • 新たにノベルへ参入される方はウェルカムです

公開場所はどうすればいいですか?

  • Windows / Webブラウザ
    • まずは「ふりーむ!」様での公開を目標とされることをおすすめします
    • 公開場所へのリスペクトがあれば審査をクリアできると信じています
  • iPhone / iPad / Vision Pro
    • まず、ご自身のApple IDのデバイスにアプリをインストールするのは自由に行えます (Apple Developmentと呼ばれるインストール)
    • 次に、あらかじめデバイスIDを登録しておけば、100台までならAirDropでアプリをインストールできます(Ad Hocと呼ばれるインストール)
    • 最後に、App Storeでの公開にはアプリの内容を元にAppleによる総合的な審査を受ける必要があります (App Store Connectと呼ばれるインストール)
  • Android
    • Google Driveなどの適当な場所にAPKファイルをアップロードして、野良アプリという形でゲーム公開することが可能です
    • Google Playストアでの個人公開の場合、アプリのテスターを20人集める必要があり、法人公開ならまだこの制限はないようです
  • 家庭用ゲーム機
    • 各社のWebサイトで開発者登録を行います
    • 作品の申請を行います
    • 申請にあたっては「ミドルウェア」や「ゲームエンジン」の欄に「Polaris Engine(Unityバックエンド)」と記述してください
      • 「Polaris Engineとは何か」と聞かれた場合には、ただのUnityだと答えればOKです
    • ゲーム機専用のUnityを入手したら、Polaris EngineからUnity用にエクスポートしたゲームをビルドしてください

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

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


インストール関連

Polaris Engineをダウンロードしましたが実行ができません

  • 実行ファイルがウイルス対策ソフトによってウイルスと誤判定されている可能性があります
  • 対策として、
    • Windowsアップデートを行う
    • ウィルス定義ファイルを最新にする
    • リアルタイムスキャンを一時的に無効にする
    • ウィルス対策ソフトの設定で隔離済みファイルを確認し、ウィルスではないとマークする
    • ゲームのフォルダを変えてみる
    • Polaris Engineのインストール先を変えてみる
  • 難しい場合は Discord やXでお気軽にお尋ねください

自動アップデート機能がうまく動作しません

  • ウィルス対策ソフトがブロックしている可能性があります
  • ダウンロード後に実行できない場合と同じ手順で解決できる可能性があります


ゲーム制作関連

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • テキストレイヤと @pencil コマンドをお使いください
  • Polaris Engineはノベル特化であるため、あまり複雑なゲームシステムの構築を意識していません
  • 気合いの入ったSLGを作りたい方は、素直にUnityを使っていただくことをおすすめしています

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

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

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

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

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

  • @gui コマンドを利用して作成可能です
  • ボタンの設定で、type: gallery;を指定して、var: $1;のように変数を指定します
  • 変数の値が0であればボタンは表示されません
  • 変数の値が0以外であればボタンが表示されます

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

  • @gui コマンドを利用して作成可能です
  • 仕組みはCG鑑賞モードと同じです

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

  • Polaris Engineを起動後にゲームを新規作成するときに、「日本語ノベル」か「日本語縦書き」のテンプレートを選択してください

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

  • 現状では未対応で、半角スペースを使って手動調整していただいております(実際、プロの開発現場でもこんな感じです)
  • 中央寄せ対応については、Unityやスマホ対応のブラッシュアップが優先のため、そちらが落ち着くまでお待ちください

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

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

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

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

  • PC向けのゲーム
    • BGM ... ステレオ 128kbps
    • SE ... ステレオ 128kbps
    • ボイス ... モノラル 64kbps (日本語サンプル)、場合によってはステレオ128kbps (英語サンプル)
  • スマートフォン
    • すべて モノラル 48kbps
      • スピーカーが1つのことが多いのでモノラルです
      • スマホ本体の小さなスピーカーであれば、高音がカットされてもプレイ感に影響が出にくいため、アプリサイズ削減を考えて低ビットレートにしています
      • イヤホンでプレイされるようであれば、プレイ感に影響が出ないように、PC向けと同じ設定をおすすめします

フラグ管理が大変です

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

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


ゲーム配布関連

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

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

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

  • 自由に変更できます

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

  • Resource Hackerというソフトでgame-nosign.exeのアイコンを差し替えてください
  • game-nosign.exeは署名されていないので、アイコンを変更できます(アイコン変更用)
  • game.exeは署名されているので、アイコンを変更できません(デフォルトアイコンな代わりに、起動時の警告がでにくい)

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

  • Polaris Engineでは、Mac向けエクスポートはXcode用のソースコード出力です
  • 出力されたソースコードをXcodeで開いて、アイコンを変更してください

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

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


Polaris Engine / 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作品


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

  • まず次のことを知ってください
    • Appleはストアにおいて、JavaScriptやPythonからiOSのAPIを呼び出すことを禁止しています(事実)
    • Appleはマーケティング上の理由で、Webではなくアプリに力を入れています(事実)
    • 日本でのiPhoneシェアは7割、つまりアプリの方が重要であり、Webゲームは主流ではないです(事実)
    • Safariの対応状況から察するに、Appleは今後もWebに力をいれることはないでしょう(ktabataの憶測)
    • ゲームプラットフォームとしてのWebの力は衰えていく一方だと思います(ktabataの憶測)
    • AppleはすでにアプリでOpenGLを非推奨にしており(事実)、いずれ廃止すると思います(ktabataの憶測)
  • そこで次の点を思い出してください
    • あのエンジンはJavaScript製です(禁止されている。アプリ化に難がある。)
    • あのエンジンはPython製です(禁止されている。アプリ化に難がある。)
    • あのエンジンはOpenGL製です(重すぎる。)
  • Polaris EngineはJavaScriptやPythonやOpenGLを一切使わず、iOS専用のソースコードをエクスポートします(Appleとして理想形)
  • 以上を踏まえると、ノベルのiOS対応では、Polaris Engineは第一選択という判断になってきます(ktabataの憶測)
  • Polaris EngineはUnityエクスポートも可能ですが、直接iOSエクスポートも可能であるため、あえてライセンス料の必要なUnityを利用する必要はないと考える企業・開発者が多いでしょう(ktabataの憶測)

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

  • 私たちはOSごとにネイティブアプリを作り分けており、これがサクサク動作の秘密です
    • すべてのOSで共通して利用できるコア部分には、どんなOSでも必ず利用できるという観点から、1989年バージョンのC言語だけを用いています
    • 共通して利用できない部分はOSごとの推奨言語を使って完全に作り分けています
      • 私たちはこれを「HAL: ハードウェア抽象化レイヤー」と呼んでいます
      • HALは元々、OSの移植性を高めるための設計実装手法であり、Microsoft Windows NTやNetBSDで採用されています
  • 実行速度の最適化でも職人芸を披露しています
    • GPU方面の最適化
      • Direct3DのシェーダをHLSLではなくアセンブリを使って記述して極限まで最適化しています
      • すべてのスプライトを毎フレーム描画するのではなく、合成済みの2枚の画面をフェードして軽量化/安定化/省電力化/低発熱化しています
      • 機能性で割り切った部分もありますが、スマートフォンでの動作の安定性がバツグンです
    • CPU方面の最適化
      • GPUの描画結果をCPUに書き戻せないプラットフォームもある、という観点で、現状ではCPU描画も併用しています
      • 描画ルーチンをSIMD命令に最適化しており、ユーザのCPUで利用できる一番速い拡張命令を使用しています
      • Intel/AMD: SSE, SSE2, SSE3, SSE4.1, SSE4.2, AVX, AVX2
      • Arm: NEON

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

  • オープンソースが特段に高尚だと考えているわけではないです
  • ktabataから見たオープンソースの歴史はこんな感じです:
    • 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をはじめとする非オープンソースライセンス化が進行している
  • その上で、Polaris Engineにとっては次の点でオープンソースという形態が有利だと考えています:
    • 普及推進(無料なので敷居が低く、まだ売れる前のクリエイタに使っていただける)
    • 標準化(KAG、つまりPCの吉里吉里・Webのティラノスクリプトから完全移行してもらい、実質的な後継ソフトウェアとしての地位を確固たるものにする。場合によってはIEEE標準化する。)
    • Unityの置き換え(Unityはこの先、利用料で一悶着あることが容易に想像でき、ビジュアルノベルの発展を阻害すると考えています)
    • 商用利用(インディーからの商業へのステップアップで、Unityへの移植を不要とし、Polaris Engineのまま移植できる)
  • では、そこにktabataのメリットはあるのかというと:
    • 勤務先企業の知的財産にならずにすむ
    • 出向などで勤務先企業が変わっても開発を継続できる
    • 正直、作品特化のノベルエンジンなら3日あれば書けるので、特段に権利を保護する必要が感じられず、それよりも広くフィードバックをいただきたい
  • といったところです
  • MITライセンスという一番緩いライセンスであるため、将来的にも誰かに独占されることはなく、ktabataですら独占が不能ですので、安心してご利用いただければと思います