よくある質問 のバックアップの現在との差分(No.24) - Polaris Engine Wiki

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

 

  • 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2024-04-16T08:43:26+09:00","default:discord","discord")
#author("2024-05-13T18:06:13+09:00","default:discord","discord")
目次
#contents

~

* 他のゲームエンジンとの比較 [#o75fb25e]

** 他のエンジンからSuika2に移行したいです [#ne5d11a4]
- PCやWebで公開したいだけの場合は、なるべくメジャーなエンジンをおすすめしています
- iPhone, Android, 家庭用ゲーム機をターゲットにしたい場合はぜひSuika2をご利用ください
- 2024年4月中にUnity+Suika2を公開しますのでMITライセンスのまま家庭用ゲーム機に対応可能になります
** Polaris Engineにはどんな特徴がありますか [#ndb413a9]
- Polaris EngineはiOSやAndroidのアプリをワンクリックで出力できる世界で唯一のノベルエンジンです
- Polaris EngineはUnityプロジェクトを出力できるので家庭用ゲーム機への移植が簡単である世界で唯一のOSSノベルエンジンです
- 免責: 2024年5月13日に著者の知る限り

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

** 公開場所はどうすればいいですか? [#u1bd6d06]
- 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用にエクスポートしたゲームをビルドしてください

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

~

* インストール関連 [#m077614b]

** Polaris Engineをダウンロードしましたが実行ができません [#n9126a0e]

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

** 自動アップデート機能がうまく動作しません [#y72cc05e]

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

~

* ゲーム制作関連 [#ue870580]

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

** キャラクタ変更中にメッセージボックスを表示したままにするには? [#h9e073cd]
- conf/config.txt ファイルの最後の方にある、下記の箇所を書き換えて、=0 を =1 に変更してください
 msgbox.show.on.ch=1

** メッセージボックスの横にキャラクタの顔を表示したいです [#pced3fba]
- キャラクタ画像として特殊な位置(face)に表示します
 @ch face ファイル名.png
- face の位置に表示する画像は、フェードイン・フェードアウトの時間指定が無視されます

** メッセージボックスにセーブなどのボタンを配置できますか? [#oe90560c]
- サンプルゲームでは、画面の小さなスマホでの操作を考慮して、右上のシステムメニューを使っています
- 一方、Windows向けゲームでよくある、メッセージボックスにボタンを作るスタイルも可能です
-- この場合、右上のシステムメニューは無効にすることができます
-- [[こちらのサンプル>https://suika2.com/dl/sample/animation.zip]] をご覧ください
-- Webブラウザでの実行は [[こちら>https://suika2.com/run/animation/]]
- この場合、右上のシステムメニューは無効にすることができます
- スマホ対応を考えると積極的におすすめはしませんが、一応機能としてはあるということです

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

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

** タイトル画面の作り方がわかりません [#of9c94af]
- [[タイトル画面の作り方]] で解説しております

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

** 目パチ画像の作り方を教えてください [#q0d1b90b]
- [[目パチの使用方法]] を参照ください

** 日付や好感度を表示したいです [#f0a3b62e]
- テキストレイヤと [[@pencil コマンド>コマンドリファレンス#db5f68f1]]をお使いください
- 現状では簡易的な表現しかできず、もっと複雑なシステムを構築したい方には、素直にUnityを使っていただくことをおすすめしています
- Polaris Engineはノベル特化であるため、あまり複雑なゲームシステムの構築を意識していません
- 気合いの入ったSLGを作りたい方は、素直にUnityを使っていただくことをおすすめしています

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

** マクロ機能はありますか? [#w010cfee]
- あります。[[@gosub>コマンドリファレンス#tdc94466]] と [[@return>コマンドリファレンス#g3c671e9]] が利用できます
- マクロを外部ファイルにまとめるには、[[using>コマンドリファレンス#r3c95140]] 文を使います
- サンプルとしては [[こちら>https://suika2.com/dl/sample/macro-demo.zip]] に用意してあります
- マクロ呼び出しは &マクロ名 と省略して記述できます
- マクロの引数は &1 のように引数番号で記述できます
- 呼出元のファイルとマクロファイルでラベル名が重複したときに問題が発生するため、 マクロ内で分岐するには拡張ifブロックを使うと、ラベル名を不要にできます。
- マクロ呼び出しは &マクロ名 と省略して記述できます (例: &my_macro)
- マクロの引数は、マクロ内では &1 のように引数番号で記述できます (例: @ch c &1 1.0)
- 呼出元のファイルとマクロファイルでラベル名が重複したときに問題が発生するのを避けるため、 マクロ内で分岐するには拡張ifブロックを使ってラベル名を不要にできます。

 <<<
 # 呼び出し側 (happyは引数)
 &マクロ名 happy.png

 ...
 # 呼び出される側
 :マクロ名
 if $1 == 0 {
     # 引数で指定されたファイルを表示する
     @ch c &1
 }-
 else {
     @ch c normal.png
 }
 >>>

** CG鑑賞モードを作れますか? [#i2913e76]
- [[@gui>コマンドリファレンス#x5321807]] コマンドを利用して作成可能です
- ダウンロードページにある [[こちらのサンプル>https://suika2.com/dl/sample/gallery-demo.zip]] を改造してお使いください
- ボタンの設定で、type: gallery;を指定して、var: $1;のように変数を指定します
- 変数の値が0であればボタンは表示されません
- 変数の値が0以外であればボタンが表示されます

** 分岐チャートを作れますか? [#ffbc32f5]
- [[@gui>コマンドリファレンス#x5321807]] コマンドを利用して作成可能です
- ダウンロードページにある [[こちらのサンプル>https://suika2.com/dl/sample/gallery-demo.zip]] を改造してお使いください
- 仕組みはCG鑑賞モードと同じです

** 全画面スタイルのノベルゲームを作れますか? [#ab8299c4]
- Suika2 Pro Desktop でゲームを作成するときに、全画面のテンプレートを選択してください
- 縦書きも選択できます
- Polaris Engineを起動後にゲームを新規作成するときに、「日本語ノベル」か「日本語縦書き」のテンプレートを選択してください

** ルビの中央寄せはできますか? [#h8497e55]
- 現状(Polaris Engine1.0.14)では不可能で、半角スペースで手動調整していただくことになります。対応については、Unity・スマホ対応が優先のため、そちらが落ち着くまでお待ちください。
- 現状では未対応で、半角スペースを使って手動調整していただいております(実際、プロの開発現場でもこんな感じです)
- 中央寄せ対応については、Unityやスマホ対応のブラッシュアップが優先のため、そちらが落ち着くまでお待ちください

** 多言語対応していますか? [#p320fef8]
- 対応しています。[[多言語化]]をご覧ください

** WMS の使い方はどこに書いてありますか? [#jd1bb536]
- [[WMSの使い方]] をご覧ください

** キーボード操作を教えてください [#i83b6262]
- [[キーボード操作]]をご覧ください

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

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

** 旧式のSuika2制作ゲームを最新のインストール版Suika2で編集するにはどうすればいいですか? [#g7287433]
** 旧式のSuika2制作ゲームを最新のインストール版Polaris Engineで編集するにはどうすればいいですか? [#g7287433]
- [[インストール版Suika2への移行]] をご覧ください(とても簡単です!)

~

* ゲーム配布関連 [#y08b62d4]

** ゲームの配布はどうすればいいですか [#h82503a8]
- Suika2からWindows向けにエクスポートして、フォルダごとZIP圧縮して配布します

** suika.exe のファイル名を変更できますか? [#sf64cae9]
** game.exe のファイル名を変更できますか? [#sf64cae9]
- 自由に変更できます
- 文字コードの問題があるため、Windows/Mac両対応にする場合は、ファイル名をアルファベットにすることをおすすめします

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

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

** Mac版のアイコンを変えられますか? [#v4742cc5]
- もちろんです、ソースコードからビルドしてください
- 難しい場合はアイコンファイルをktabataに送っていただければと思います
- Polaris Engineでは、Mac向けエクスポートはXcode用のソースコード出力です
- 出力されたソースコードをXcodeで開いて、アイコンを変更してください

** Androidのアプリの作り方を教えてください [#m1893f47]
- ビルド手順
-- 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で初回数千円の登録料を払ってアプリを申請してください
- [[Android版の作り方]]をご覧ください

** iOSのアプリの作り方を教えてください [#d15a69e7]
- まず個人か法人で 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 で、アップロード済みのバンドルを選択して、リリース申請を行ってください
- [[iOS版の作り方]]をご覧下さい

* Suika2関連 [#j41cf476]
~

* Polaris Engine / Suika2関連 [#j41cf476]

** 実績を教えてください [#kfff21df]
- [[利用作品紹介>https://suika2.com/works/]]をご覧ください
- 把握している限りでは下記の通りです (2023年11月2日現在)

|サイト名|審査|採用作品数|有料作品数|
|[[ふりーむ!>https://freem.ne.jp/]] 様 |ストアと同水準の審査あり|51作品、Windows版とブラウザ版の重複あり|-|
|[[PLiCy>https://plicy.net]] 様|NGワードによる自動チェックがあるが、Suika2のパッケージには機能しない|10作品|-|
|[[フリーゲーム夢現>https://freegame-mugen.jp]] 様|緩やかな審査あり|11作品|-|
|Google Play ストア 様|動作不良についての審査あり|5作品|1作品|
|Apple App Store 様|表現内容についての審査あり|3作品|1作品|
|Valve Steam 様|動作不良についての審査あり|1作品|1作品|
|DLsite 様|動作不良についての審査あり|3作品|3作品|
|BOOTH 様|審査なし|8作品|0作品|

~
** Suika2のiOS対応の強みについて教えてください [#df2a8be4]

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

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

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