#author("2024-05-03T14:09:58+09:00","default:discord","discord") #author("2024-05-03T14:51:42+09:00","default:discord","discord") 目次 #contents * 他のゲームエンジンとの比較 [#o75fb25e] ** 他のエンジンからPolaris Engineに移行したいです [#ne5d11a4] - Webで公開したいだけの場合は、発表場所の都合からティラノスクリプトやティラノビルダーをおすすめしています - Polaris Engineは、iPhone, iPad, Android, Nintendo Switch, Xbox, PlayStation 4, PlayStation 5で公開したい場合にぜひご利用ください - Polaris EngineはUnityソースコードを出力しますので、ゲーム機用のUnityを使えば移植は簡単です ** 公開場所はどうすればいいですか? [#u1bd6d06] - Windows -- 審査に通る内容であれば、まずは「ふりーむ!」様をおすすめしています -- それが難しい場合、「フリーゲーム夢現」様に投稿できる可能性があります -- 海外をターゲットにする場合、「Steam」様があります - Web -- 審査に通る内容であれば、まずは「ふりーむ!」様をおすすめしています -- それが難しい場合、「PLiCy」様に投稿できる可能性があります -- 海外をターゲットにする場合、「itch.io」様があります - iPhone / iPad / Vision Pro -- まず、ご自身のApple IDのデバイスにアプリをインストールするのは自由に行えます -- 次に、App Storeでの公開にはアプリの完成度から総合的な審査を受ける必要があります -- 参考までに、Polaris Engine開発チームを貴サークルの作品に参加させていただく場合は、Polaris Engine公式のアカウントにて作品を公開いたします - Android -- まず、Google Driveなどの適当な場所にAPKファイルをアップロードして、野良アプリという形でゲーム公開することは可能です -- 次に、Google Playでの公開はルールが変わってきており、個人公開の場合、アプリのテスターを集めて実績を作る必要があるようです -- 参考までに、Polaris Engine開発チームを貴サークルの作品に参加させていただく場合は、Polaris Engine公式のGoogle Playアカウントにて作品を公開いたします - 家庭用ゲーム機(Nintendo Switch / Xbox X|S / PlayStation 4 / PlayStation 5) -- 各社のWebサイトで開発者登録を行います -- 作品の申請を行います -- 申請にあたっては「ミドルウェア」や「ゲームエンジン」の欄に「Polaris Engine(Unityバックエンド)」と記述してください -- 申請が通ったあとで、Polaris Engine開発チームにご連絡ください -- 申請が通らない場合や、申請が通るか不安な場合は、別途ご相談ください ** 他のエンジンではできる○○という機能がないので実装してくれますか? [#z8037e20] - Polaris Engineの機能不足であれば、ほぼ例外なくご要望の機能を実装しております - 一方で、スマートフォンはPCの1/100くらいの性能しかないため、移植を考えてあえて実装しない場合もあります(たとえば福笑い方式や衣装差分など) - 提案者を尊重していないということは一切なく、既存エンジンの手法がスマホでは利用できないだけです * インストール関連 [#m077614b] ** Polaris Engineをダウンロードしましたが実行ができません [#n9126a0e] - 実行ファイルがウイルス対策ソフトによってウイルスと判定されている可能性があります。 - お使いのウイルス対策ソフトの設定をお確かめいただくか、[[Discord>https://discord.com/invite/Xh9mFwr4E8]]やXで対処方法をお気軽にお尋ねください。 * ゲーム制作関連 [#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向けゲームでよくある、メッセージボックスにボタンを作るスタイルも可能です - この場合、右上のシステムメニューは無効にすることができます - スマホ対応を考えると積極的におすすめはしませんが、一応機能としてはあるということです ** 表情の差分を顔のパーツだけで実現したいです [#z457e224] - 個人的な考えでは、この機能は他のエンジンの「負の遺産」だと思います - たしかに制作が楽になる面はあるのですが、読み込み時間、メモリ使用量、合成時間を考えると、スマホには荷が重いと考えます - よって、技術的な詳細は省きますがSuika2では実装しないことに決めました ** フォントが変更できません [#vb5a8c46] - セーブデータにフォントファイル名が記録されていることで、フォントを変更できない、指定していないはずのフォントファイルが開けないと言われる、といった問題が発生します - Polaris Engineを終了した状態で、セーブデータのフォルダ sav を削除し、Polaris Engineを再度起動することで解決します ** タイトル画面の作り方がわかりません [#of9c94af] - [[タイトル画面の作り方]] で解説しております ** 主人公の名前を入力できますか? [#o9f7d8ea] - 最大26個の名前を入力できます(aからzまで) - この機能の開発にあたってはDiscordサーバー上のみなさまに助けていただきました。ありがとうございます! ** 目パチ画像の作り方を教えてください [#q0d1b90b] - [[目パチの使用方法]] を参照ください ** 日付や好感度を表示したいです [#f0a3b62e] - テキストレイヤと [[@pencil コマンド>コマンドリファレンス#db5f68f1]]をお使いください - Polaris Engineはノベル特化であるため、あまり複雑なゲームシステムの構築を意識していません - 気合いの入ったSLGを作りたい方は、素直にUnityを使っていただくことをおすすめしています ** 画面全体にフィルターをかけたいです [#oc58358f] - エフェクトレイヤーを使います [[背景に色味をつける]] - 一番廉価な水準のAndroidスマートフォンだと描画性能的にギリギリになるため、積極的にはおすすめしていません - できるだけカラーフィルター適用済みの画像を作成して対処をお願いします ** マクロ機能はありますか? [#w010cfee] - あります。[[@gosub>コマンドリファレンス#tdc94466]] と [[@return>コマンドリファレンス#g3c671e9]] が利用できます - マクロを外部ファイルにまとめるには、[[using>コマンドリファレンス#r3c95140]] 文を使います - マクロ呼び出しは &マクロ名 と省略して記述できます (例: &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]] コマンドを利用して作成可能です - ボタンの設定で、type: gallery;を指定して、var: $1;のように変数を指定します - 変数の値が0であればボタンは表示されません - 変数の値が0以外であればボタンが表示されます ** 分岐チャートを作れますか? [#ffbc32f5] - [[@gui>コマンドリファレンス#x5321807]] コマンドを利用して作成可能です - 仕組みはCG鑑賞モードと同じです ** 全画面スタイルのノベルゲームを作れますか? [#ab8299c4] - Polaris Engineを起動後にゲームを新規作成するときに、「日本語ノベル」か「日本語縦書き」のテンプレートを選択してください ** ルビの中央寄せはできますか? [#h8497e55] - 現状では未対応で、半角スペースを使って手動調整していただいております(実際、プロの開発現場でもこんな感じです) - 中央寄せ対応については、Unityやスマホ対応のブラッシュアップが優先のため、そちらが落ち着くまでお待ちください ** 多言語対応していますか? [#p320fef8] - 対応しています。[[多言語化]]をご覧ください ** WMS の使い方はどこに書いてありますか? [#jd1bb536] - [[WMSの使い方]] をご覧ください ** キーボード操作を教えてください [#i83b6262] - [[キーボード操作]]をご覧ください ** 音声ファイルのビットレートはどうすればいいですか? [#q7d0ced6] - 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の憶測) -- AppleはすでにアプリでOpenGLを非推奨にしており(事実)、いずれ廃止すると思います(ktabataの憶測) - そこで次の点を思い出してください -- あのエンジンはJavaScript製です(禁止されている) -- あのエンジンはPython製です(禁止されている) -- Suika2はJavaScriptやPythonを一切使わずiOSのソースコードをエクスポートします(これはOK!) - 以上を踏まえると、ノベルのiOS対応ではUnityかSuika2しか選択肢がないことがわかります -- あのエンジンはOpenGL製です(そのうち廃止される上に、現状でも動作が重い) -- Polaris EngineはJavaScriptやPythonやOpenGLを一切使わず、iOS専用のソースコードをエクスポートします(AppleとしてOK) - 以上を踏まえると、ノベルのiOS対応では、Unityを使うのが一般的だけど、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枚の画面をフェードして軽量化/安定化/省電力化しています --- 演出としては割り切ったものになりますが、スマートフォンへの移植性が非常に高いです --- 演出としては割り切ったものになりますが、スマートフォンでの動作の安定性が非常に高いです -- 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ですら独占が不能ですので、安心してご利用いただければと思います