■2020-10-10 (土) Unityを使ったウディタのSwitch移植!▼
このたび、私のゲーム『片道勇者プラス』がSwitchに移植されました!
ので、今回はウディタ移植に関する情報をこの記事にまとめさせていただきます。
まずこれは前にもご紹介しましたが、
移植に関するエスカドラ様へのインタビュー記事が出ました(↓)ので、
特にウディタユーザの方で気になる方はぜひご覧ください!
具体的にどうやってウディタ作品をNintendo Switch上で動かしているのかが説明されています。
【「家庭用ゲーム機へ移植不可能」とされた
『片道勇者』がNintendo Switchデビュー。
難しすぎる移植はいかにして実現されたのか?】
https://automaton-media.com/devlog/interview/20200617-127872/
(見られない場合のアーカイブページ)
リンク先記事のざっくりとした内容としては、
●ウディタの基本プログラムをUnityのネイティブプラグインにしてUnity上で動かした。
自分をWindowsのゲームだと思い込んでいるソースコードが
Nintendo SwitchのUnity内でそうとは知らずに走っている。
(このやり方でちゃんとなめらかに動かせてるのが一番ヤバい!
将来的に考えれば効率的な方法ではあるものの、
普通こういうやり方をしたら動作がものすごく遅くなって、
結局「その作品1本だけの」移植をした方が楽という話になりやすいので、
「ウディタまるごと移植」はむしろスーパー技術者にしかできないシンプルな力業です)
●移植の話は技術的に困難で、私(SmokingWOLF)では
なかなか実現の見込みがありませんでした。
また、実は外部からの移植案件も来ていて、ご協力させていただいたのもあるのですが、
うまくいったという連絡も今のところありませんでした。
つまりその中で初めて成功させたエスカドラ様はすごいってことです!
●エスカドラ様によると、『今後はウディタ作品の移植は短い時間で可能』とのこと!
様々なチューンや審査が必要なので一瞬で完了するということはないけど、
ウディタ作品からコンソールゲームがリリースされるのを惜しみなく協力していきます!
だそうです!
(そして記事の最後に株式会社エスカドラ様のお問い合わせページへのリンクが貼ってある。
カモーンウディタリアーン!)
という感じでした。
【ウディタのSwitch移植の技術的な話題】
そして『片道勇者プラス』を移植してくださった株式会社エスカドラ様が、
ウディタのSwitch移植に関する技術講演をしてくださいました!
動画はこちらからご覧いただけます!(Unity Japan公式の動画なので安心!)
↓
『もはやWOLF RPGエディター製ゲームがコンソール機にも出せる!
- Unityネイティブプラグインと化したウディタ -』
全部見るの大変! とかウディタユーザの人に重要なのはどこ?
というのが分からないと思いますので、今回はこの講演の内容について
ざっくりポイントになりそうなところをピックアップさせていただきます。
(※万が一、中の人に怒られたりしたらこの記事は消滅します)
【ウディタ作品の移植について】
◆『片道勇者』が他プラットフォームへの移植ができなかったので、
エスカドラ様がUnityネイティブプラグインを開発!
◆今後の取り組みは?
- いま現在、代表的なウディタ作品の移植を行っている
- 代表タイトルの移植を進めることでUnityプラグインの精度を高めているところ
◆今後のプランとしては以下の2つを考えているとのこと。
①ウディタ製ゲームの移植開発を共同で行う。
(売り上げからロイヤリティを分ける形)
②エスカドラ様が受諾開発として移植開発を行う。
(まとまったお金を払って移植してもらう形)
究極的には、
『誰でも使えるウディタ製ゲームUnityプラグインの汎用化を目指したい』
だそうです! すごい!
もちろん、労力に対してどれだけお金が生みだせるかによるでしょうけれどね。
◆【宣伝】株式会社エスカドラはNintendo Switchを始め
マルチプラットフォーム展開ができる!
→ なのでエスカドラさんまでご相談ください! とのことです。
【技術的な部分の話】
ウディタユーザーの人にも、というか
私に分かった範囲の点だけピックアップします。
◆移植したのはWOLF RPGの【Game.exe】だけ。エディターは移植してない。
◆移植方法の候補は3つあったが、
今回はUnityを使ってウディタのC++コードを
そのままネイティブプラグインにした。
(中には「Switch版DXライブラリ」を使う案もあった)
→ それぞれのやり方の細かいメリット・デメリットが講演内で語られています!
Switch版DXライブラリなどを使う案もあったそうです。
◆ウディタプラグインで処理して、Unity側に命令をためておいて
実行する形を取ったよ。
→ 高速化においてはUnityやC#のこれこれこういう機能を使って高速にしたよ!
というのが細かく紹介されています。
◆音声ファイルについてはMIDIファイルが再生できなかったので
原作者自身がMIDIをそのままWAVファイル化したのを使ったよ。
→ 講演では出てませんが、実は私が130曲中の1曲だけやらかして
Switch版で山賊戦のBGMを間違えました。ごめんなさい。今は戻っています。
→ BGMはROM容量の75%ほどを占めた。まあ元が80MBのゲームでしたから
300MB近く増えるとそうなりますよね……。
◆セーブデータにおいては仮想ファイルシステムを用意したよ。
【作ってみて起きた問題】
◆一部処理で期待したほどの速度が出なかった!
が他の手段を試してうまくいった。
→ インスタンシングがどうとか。知らない言葉ですね……。
◆環境によるC++の挙動の違いがあった。
→ C++のchar型の挙動が環境によって違う意味になる。
→ 他にも、私がウディタ内でC++のすごい危険な使い方をして
高速化している場所があり、それがコンパイラの差で
違う動作になってしまっていました。
という感じでした!
私に分からなかった部分はピックアップしていませんので、
気になる部分があればぜひ、講演の動画を直接ご覧ください!
今回の講演で一番大きい情報は、やはり
「最終的にはUnityプラグインを汎用化したい(みんなが使えるようにしたい)」
というところではないでしょうか。
そうでなくとも、お金を積めば個別に移植作業をやってくださるっぽいので、
「このゲームならXXXX万円は儲かるだろうから
XXX万円くらい出して移植してもらうぜー!」
という自信があればエスカドラ様にご相談されてもいいと思います!
でも私でも3桁万円出すと猛烈に赤字になりそう。
なお、PLAYISM Game Show で挙げてくださっていましたが、
この技術を使って、今は『マッドファーザー』というゲームの
Nintendo Switch展開のプロジェクトが進んでいるようです。
『マッドファーザー』もウディタ製の元フリーゲームで、
私も翻訳関連やSteam展開などで
今もこっそり技術サポートさせていただいております。
そんなわけで、ウディタ作品の家庭用ゲーム進出はまだまだ広がっていきます!
気になる方は今後もぜひ注目してください。
2020-10-10 (土)
カテゴリ: ウディタ





