HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2024
1119
へびぃスマホ向けゲームの適切な解像度について9解決


へびぃ

リンク

2024/11/19(Tue) 17:38:06|NO.102558

スマホ向けゲームを開発の方々に質問させていただきます。

横持ちでのスマホ向け(android、iPhone共用)のゲームを作る場合、最適な解像度はいくらとなりますでしょうか?
たとえば1280×720など、このくらいで作っておけばどんな環境(スマホ)でもまぁまぁ見難いとかないよ、とかあればぜひご教授いただきたいのです。

また、win11環境で開発する場合、自分のスマホ以外の環境で動作確認するのは難しいとは思うのですが、それについて何かいい方法はございますでしょうか?


当方、スマホ向けの開発は初めてでして、HSP3に関しても、たいした技能も持たない弱者で申し訳ございませんが、よろしくお願いいたします。



この記事に返信する


きせん

リンク

2024/11/19(Tue) 18:17:31|NO.102559

わたしはAndroidの主流がどのバージョンか調べ、よく使われている解像度を目安にしています。
細長い(22:9くらい)のが主流ぽいですが、個人的には6:4くらいのもので作り、
周りを黒い方が良いのではないかと思って作ってます。

hsp3dish.iniでautoscale設定でも調整できます。
admobで広告を入れようとした場合、スマホ横向きだと細長い画面が多いので、広告が邪魔になりがちです。



きせん

リンク

2024/11/19(Tue) 18:43:35|NO.102560

以下 しまくろねこ(本物)さんに教えて頂いたモジュールです。
PC上でテストをする時にすごく良いです。
以下転載です。

2022/12/25(Sun) 21:17:22 NO.97611
スクリーン自動縮小を今モジュール化していますが、viewcalc命令が適用されると、boxfの値省略が効かないみたいなんですね。
下記で確認できると思います。


#include "hsp3dish.as" ;----------------------------------------------------- ; ; HSP3.x Dish用スクリーンモジュール「mod_screen.as」 ; ; Windows版のDishで有効です ; ; ディスプレイの解像度よりも、指定したウィンドウサイズのほうが大きい場合、ウィンドウサイズを自動調整する ; ディスプレイの解像度よりも、指定したウィンドウサイズのほうが小さい場合、ウィンドウサイズはそのまま ; ; Ver 0.1 (※注意:事前に「hsp3dish.as」をインクルードしてください) ; ; By. しまくろねこ ; ; https://sites.google.com/site/simakuroneko/ ; http://simakuroneko.bbs.fc2.com/ ; simakuroneko@gmail.com ; ;----------------------------------------------------- #ifndef __MOD_SCREEN__ #define __MOD_SCREEN__ #module mod_screen ;----------------------------------------------------- ; zoomxy(元の横大きさ, 元の縦大きさ, 変更したい横大きさ) ;----------------------------------------------------- #defcfunc local zoomxy int moto_x, int moto_y, int henkou_x return (henkou_x * 1000 / moto_x) * moto_y / 1000 ;----------------------------------------------------- ; zoomyx(元の横大きさ, 元の縦大きさ, 変更したい縦大きさ) ;----------------------------------------------------- #defcfunc local zoomyx int moto_x, int moto_y, int henkou_y return (henkou_y * 1000 / moto_y) * moto_x / 1000 ;----------------------------------------------------- ; screen_resize ウィンドウの横サイズ, ウィンドウの縦サイズ, ウィンドウサイズを自動縮小された場合に横にマイナスする値, ウィンドウサイズを自動縮小された場合に縦にマイナスする値 ;----------------------------------------------------- #deffunc screen_resize int screen_width_size, int screen_height_size, int screen_width_minus, int screen_height_minus plat_form = PLATFORM_WINDOWS getreq plat_form, SYSREQ_PLATFORM if plat_form == PLATFORM_WINDOWS { if (ginfo_dispx < screen_width_size) || (ginfo_dispy < screen_height_size) { ; ディスプレイの解像度よりも、指定したウィンドウサイズのほうが大きい場合、ウィンドウサイズを自動縮小する window_size_change_width = ginfo_dispx - screen_width_minus window_size_change_height = ginfo_dispy - screen_height_minus window_size_y = zoomxy@mod_screen(screen_width_size, screen_height_size, window_size_change_width) window_size_x = zoomyx@mod_screen(screen_width_size, screen_height_size, window_size_change_height) if window_size_x > ginfo_dispx { window_size_change_width = ginfo_dispx - screen_width_minus window_size_y = zoomxy@mod_screen(screen_width_size, screen_height_size, window_size_change_width) window_size_x = zoomyx@mod_screen(screen_width_size, screen_height_size, window_size_y) } if window_size_y > ginfo_dispy { window_size_change_height = ginfo_dispy - screen_height_minus window_size_x = zoomyx@mod_screen(screen_width_size, screen_height_size, window_size_change_height) window_size_y = zoomxy@mod_screen(screen_width_size, screen_height_size, window_size_x) } screen 0, window_size_x, window_size_y, 0, (ginfo_dispx - window_size_x) / 2, (ginfo_dispy - window_size_y) / 2 scale_x = double(window_size_x) / double(screen_width_size) scale_y = double(window_size_y) / double(screen_height_size) ; 描画時の座標変換を設定 viewcalc vptype_2d, scale_x, scale_y } else { ; ディスプレイの解像度よりも、指定したウィンドウサイズのほうが小さい場合、ウィンドウサイズはそのまま screen 0, screen_width_size, screen_height_size, 0, (ginfo_dispx / 2) - (screen_width_size / 2), (ginfo_dispy / 2) - (screen_height_size / 2) } } return #global ; 横幅:1080 ; 縦幅:2340 ; ディスプレイ解像度の横幅よりも指定した横幅(1080)が大きい場合にリサイズされたときに横幅をマイナスする値 ; ディスプレイ解像度の縦幅よりも指定した縦幅(2340)が大きい場合にリサイズされたときに縦幅をマイナスする値 screen_resize 1080, 2340, 0, 150 redraw 0 color 0, 0, 255 : boxf color 255, 0, 0 : circle 0, 0, 1079, 2339 redraw 1 stop



へびぃ

リンク

2024/11/19(Tue) 19:57:46|NO.102561

>きせんさん
早々のご返答、ありがとうございます。
クライアント様の要望としては、4:3のゲーム画面(ざっくり言うとFC風の横スクのレトロゲー風味)なのですが、まんま作っちゃうと横長になっちゃうなーと思いまして。
広告が入ることまで気が回っていませんでした。
とても参考になります、ありがとうございます。

なるほど、しまくろねこ(本物)さんのモジュールは有難く使わせていただきたいと思います。


動作確認には、皆さんエミュを使ってらっしゃるんでしょうか?
その辺り、個人で開発されてらっしゃる方の情報も頂けるなら有り難いと思うのですが、企業秘密ですかね?(笑)



窓月らら

リンク

2024/11/19(Tue) 20:56:47|NO.102562

質問の趣向と違い水をさすようで申し訳ないのですが、
どこかのクライアントに依頼されて製作されるのでしょうか?
また、例えばAndroidアプリであれば通常GooglePlayで配信するしかないのですが、
個人の配信ハードルがかなり高くなっている件については把握されていますでしょうか?
製品版(公開版)をリリースするには事前にクローズドテストを20人以上で実施して
クリアしなければならなくなっています。まずこのハードルがかなり大変かと思われます。

野良であればどうでもいいのですが、
野良アプリを積極的にインストールする人はおそらくほとんどいません。

解像度について。
内部解像度と実際の表示解像度は別に存在するってことを把握しておいてください。
これは私がそう呼んでいるだけなのですが
プログラム側で意識してるのは内部解像度であって、
実際の表示は「画像素材の解像度」に依存します。(HSP3Dish)



へびぃ

リンク

2024/11/19(Tue) 22:06:03|NO.102563

>窓月ららさん
そういう情報が欲しかったです。


私事で申し訳ないですが、今回の依頼は、”PCとスマホ両方で遜色なく動くもの”という要望がございまして、私としては、”動けばよい”であって、その先は関係ございませんので、ご心配いただいてる部分は無視していただいて結構かと思われます。


その、”内部解像度”、おっしゃるように”「画像素材の解像度」”をどれくらいと想定すれば良いのか?? という疑問でございます。


企業秘密であればしょうがないのですが、そこが知りたいな、と思った次第でございます。



窓月らら

リンク

2024/11/19(Tue) 22:26:02|NO.102564

そこはまずはどんな画面にしたいのかによって変わってきます。
ドット絵にしたいのか解像度を活かしたものにするのかです。
解像度をある程度活かすのであれば、HD(1280x720)程度を基準にして
これ以上の場合は拡大になるわけですが、gfilter 1 で補間すればいいと思います。

ドット絵のほうがじつはちゃんと表示させようとするとコストがかかります。
歪の影響をモロに受けるのでちゃんと考えてないとBGに穴が空いたりモワレができたり
いろいろ起こります。
こちらもドットだから補間はいらないと思われるかもしれませんが
ちゃんとやろうとするとやはり gfilter 1 が必須になってきます。

これらはやってみればわかります。
そして各プラットフォームごとに同じように動作させるってのも
結構大変だったりするのがわかると思いますが
繰り返し調整していくしかありません。



へびぃ

リンク

2024/11/19(Tue) 22:45:03|NO.102565

その”繰り返し調整していくしか”の部分の情報も欲しかったんだけど、やっぱ企業秘密的なのかな。


きせんさん、窓月ららさん、ありがとうございました。

いろいろ見えましたので、解決とさせていただきます。
ありがとうございました。



きせん

リンク

2024/11/19(Tue) 23:40:04|NO.102566

ららさんのおっしゃる通り。私は表示いたい画像の1.5倍位のサイズの画像を少し縮小して使っています。
mesでのメッセージ表示は重くなる傾向があり、
環境によるでしょうが1000×600 あたりのサイズで実機テストすると、文字が粗くみえる気がします。
ららさんもしていますが、決まった文字なら画像にして表示したほうが美しく早いです。

私はアルファベットはサンプルを流用して表示しています。
画像表示やmesの文字など、簡単なものをまずつくって実機テストし、
イメージと違う!と、ならないように繰り返し調整が必要な場合もあります

半分つくってイメージと違うと修正が大変です。
広告がゲームのキモの部分にかぶったり😁



へびぃ

リンク

2024/11/20(Wed) 12:13:57|NO.102567

>きせんさん
貴重な情報ありがとうございます。
なるほど、メッセージ(mes命令)が重いと言うのは盲点ですね。

また、見え方(読み難さ)について実機での調整が必要と。

なるほどの連発です。
大変勉強になります。
ありがとうございます。



記事削除

記事NO.パスワード
(質問が解決したスレッドは他の利用者に活用してもらうため、削除しないようお願いします)

NO.102558への返信

マスコット

好きなマスコットを選んでください。

名前

e-mail
HOME
  1. 初めて利用する方は、HSP3掲示板の使い方をお読みください。
  2. 不要部分の多い長いスクリプトの投稿は ご遠慮ください。
  3. 書き込みは自動改行されません。適度に改行を入れてください。
  4. スクリプトは小文字の<pre>〜</pre>で囲むと見やすく表示できます。

削除用パスワード

解決したら質問者本人がここをチェックしてください。

エラー発生時、再送信すると二重送信になることがあります。
回答が得られたら、お礼書き込み時に[解決]チェックしてください。
SPAM防止のためURLから始まる文章は投稿できません。
SPAM防止のため英文字のみの本文を投稿することはできません。

ONION software Copyright 1997-2023(c) All rights reserved.