2016年6月24日金曜日

iOS9対応版ONScripter for iOS ほぼ完成版

※8/5追記:今後の方針を示しました。詳しくはこちら

※7/29追記:本家が正式にiOS9をサポートしました。余白画像機能の需要があるのであれば、移植を行いますがサポートはこれで終了させていただきます。


どうも、神対応が得意な(暇人とも言う)赤西 真論です。

昨日公開しましたONScripterですが、早速最新版を公開したいと思います。ちなみにこのバージョンが一応のところ正式版となっています。まあ、RC版的な位置づけって感じですかね。

  • 前バージョンからの変更点・修正点

・画面の縦横比率とゲームの縦横比率が一致しない場合、上もしくは左右のどちらかに寄っていたが、それを中央に表示出来るようにした
・ゲームを中央表示した際に出る上下もしくは左右の余白にカスタム画像を表示出来るようになった(独自)
・比率が一致しない場合にタッチの位置がズレるのを修正
・非Retina端末でも拡大表示されるようにした
・セーブデータ等でスクリーンショットのコマンドが実行された際に、作成されるスクショのサイズが正しくなるように修正

  • 現状判明している問題点(前回分も合わせて)

・余白にカスタム画像を表示できるのは16:9もしくは4:3のゲームのみ(後述)
・余白にカスタム画像を表示する際にiPhone4sのみサイズがおかしくなる(後述、修正予定なし、次回より問題点から外します)
・テキストが微妙にずれる
・2015/08/20以降の更新に対応していない(更新内容は本家様のこちらから確認できます)

  • ダウンロード

最新バージョンのダウンロードは前回の記事にリンクを載せておきます。

  • 使用方法

今回は本体のソースコードしか配布していません。そのため、前回配っていたソースコードも必要となります。

手順に関しては前回の記事に追記していますので、そちらを参照してください。

  • 新機能:余白へのカスタム画像表示

今回のバージョンより比率が一致しない場合に出てくる黒い余白部分に画像を表示できるようになりました。

ただし、制限があり、ゲームの比率が16:9もしくは4:3の場合のみうまく表示する事が出来ます。その他の解像度の場合はうまく画像を表示する事が出来ません。これは使用する画像が上下か左右かで処理を分けていないためです。これに関しても近々使用できるようにする予定ではあります。ただ、先にAndroid版に関してやりたいことがあるため、いつになるか明確なめどは立っていません。

また、iPhone4sのみこのカスタム画像がうまく表示できません。理由はこの端末のみ3:2という比率の画面であり、上記したとおり16:9 or 4:3しか対応していないためです。これに関しては古い端末でiOS10でサポートが切れることから修正するつもりはありません。

・どのように使用するのか

使用するゲームが16:9か4:3かで用意する画像が変わってきます。

16:9のゲームの場合は4:3の端末に対応させる、つまりiPadに対応させるための処理となります。4:3の端末に16:9のゲームを表示させる場合は横幅に解像度を合わせるため、上下に画像を表示する事になります。よって、横長の画像を準備することになります。(画像参照、塗りつぶしてある位置に画像を表示させれます)

スクリーンショット 0028-06-24 10.37.26

4:3のゲームの場合は16:9の端末に対応させる、つまりiPhoneに対応させるための処理となります。16:9の端末に4:3のゲームを表示させる場合は縦幅に解像度を合わせるため、左右に画像を表示する事になります。よって、縦長の画像を準備することになります。(画像参照、塗りつぶしてある位置に画像を表示させれます)

スクリーンショット 0028-06-24 13.49.17

では、実際に準備していくのですが、まずは画像のサイズを計算します。と言っても面倒くさいと思われるため、デバッグ情報として表示することにしました。

まず、Xcodeでプロジェクトを開き、最新のソースコードを使用できる状態でゲームのデータも内蔵した状態にしておきます。(前回の記事および本家サイト参照)

次に左上のONScripter>(端末名)となっているところで16:9のゲームならiPadを、4:3のゲームならiPhone 4s以外のiPhoneを(端末名)の中から選択します。この時に出来るだけ、エミュレーターを選択したほうがいいと思います。

次にその左横にある再生ボタンを押して実行します。するとエミュレーターが起動して、自動的にゲームが開始されるはずです。

この時にXcode右下の黒背景の出力ウィンドウにこのような文字列が並んでいるはずです。

スクリーンショット 0028-06-24 19.33.20
↑iPadの場合

スクリーンショット 0028-06-24 19.34.47
↑iPhoneの場合

この文字列の中に「image size:」と書いてある行があるはずです。その後ろに書かれている数字が用意するべき画像のサイズとなっています。

表示されているサイズは次の矢印で示した範囲になります。

スクリーンショット 0028-06-24 10.37.26
↑iPadの場合

スクリーンショット 0028-06-24 13.49.17
↑iPhoneの場合

画像に1と2という数字が振ってありますが、これも後で使用する重要なものとなります。

それでは、実際に画像を準備していきます。

サイズはiPadの場合は(X,Y)=(ゲームの横幅,先ほど表示されていたimage size)となり、iPhoneの場合は(X,Y)=(先ほど表示されていたimage size,ゲームの縦幅)となります。

横幅もしくは縦幅に関しては、端末の解像度ではなく実際のゲームの解像度を使用している点に注意してください。

ファイル名は「space1.png」と「space2.png」です。名前が固定である理由は実装が楽だった、ただそれだけです。

で、このspaceの後ろについてる1と2が先ほどの画像に振ってあった数字と対応します。つまり、iPadであれば「space1.png」は上に表示され、「space2.png」は下に表示されます。また、iPhoneであれば「space1.png」は左に表示され、「space2.png」は右に表示されます。

これで画像が準備出来たはずです。最後はファイルの位置ですが、通常のゲームであればONSフォルダー内に次のようなファイルがあるはずです。

・arc.nsa等のアーカイブ
・(数字).txtもしくはnscript.dat
・default.ttf
・その他必要なフォルダー等

で、この画像なのですが直下にしか入れる事が出来ません。つまり、default.ttfと同じ位置にこの2枚の画像を配置してください。

本当はアーカイブ化等をしたほうがいいとは思うのですが、iOSですので取り出すことはほとんどありませんし、こうすることでPC版等にはこの画像を含まなくていいようになっています。半分言い訳のようなものですが......

これでエミュレーター上から一度ONScripterを消して(データをもう一度転送するため、Finderからも一応転送することは出来ます)再度実行ボタンを押してみてください。

これで正しく画像が表示されていれば大丈夫です。伸びたりしていたら、サイズが間違っている可能性があります。サイズが合っているにもかかわらず、表示が変な場合は出力ウィンドウに表示されている「ONScripter~」の行から「Audio~」を載せた上でコメントにお知らせください。

  • 最後に

まだまだバグがあるはずです。どしどしコメントに送ってください。

3 件のコメント:

  1. ONScripter for iOS 自体のダウンロードはできないのでしょうか?Nscript製のゲームをiPhoneでしたいと思い、探しているとここにたどりつきました。

    返信削除
    返信
    1. iOSデバイスは脱獄をしない限りは単体アプリを導入することは出来ませんし、ipaファイルを配るつもりもありません。
      Macをお持ちであれば、ONScripter for iOSの公式サイトに載ってる方法でビルドすれば自分のデバイスに無料で入れることは可能です。
      この方法はデベロッパー登録が必要なので、簡単とは言えませんが

      削除
    2. 返信ありがとうございます。
      やはり脱獄が必要ですか。脱獄すればもう少しいい方法も見つかるかもしれないのでいろいろ考えてみます。ありがとうございます。

      削除