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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0425
シスターhsp3dish.ini が適用されません…24未解決


シスター

リンク

2022/4/25(Mon) 21:30:07|NO.96125

プログラミングマニュアルを参考にhspフォルダにhsp3dish.iniというファイル名で下記のソースを置いているのですが、
適用されません。これはどの様な条件で適用されるのでしょうか。


; hsp3dish settings wx=320 wy=48

ご教示の程よろしくお願いいたします。



この記事に返信する


しまくろねこ

リンク

2022/4/25(Mon) 22:59:36|NO.96127

「HSP3Dish android(NDK)版プログラミングガイド」から一部抜粋

> 12.hsp3dish.ini設定ファイルについて
>
> プロジェクトフォルダ内にある「hsp」フォルダ(HSPスクリプトを設置するフォルダ)に設定ファイル「hsp3dish.ini」がある場合は、その設定がビルド時に反映されます。
> 「hsp3dish.ini」は、Windows上で実行する際に画面サイズなどの設定を参照するためのファイルです。詳しくは、HSP3Dishプログラミングマニュアルを参照してください。「パラメーター名=設定値」のように記述することで、androidのビルド時に設定が反映されます。

以上ですが、もしAndroid上で適用されていないならば「autoscale」を設定していないからではないでしょうか?

パラメーター名 設定内容 ---------------------------------------- wx 画面のX(横)サイズ wy 画面のY(縦)サイズ autoscale 自動スケーリング値 画面のスケーリングを自動的に調整したい場合は、「autoscale=0」のように、自動スケーリング値を設定してください。 描画した画面サイズを適切に拡大縮小し、現在のスクリーンに表示させることができます。 自動スケーリング値の詳細は以下の通りです。 0 : 画面全体に収まる最適な大きさ(縦横比は維持) 1 : X方向のサイズを基準に拡大縮小(縦横比は維持) 2 : Y方向のサイズを基準に拡大縮小(縦横比は維持) 3 : 縦横比は無視して画面全体に表示
私は「hsp3dish.ini」はWindows上で使うようにし、Android上ではマニュアル設定で「Dish P Helper」を使って設定しています。
理由は、

> された画面サイズによって、portrait(縦画面)、landscape(横画面)の向きが自動的に設定されます。
> 「hsp3dish.ini」が存在しない場合や、設定が書かれていない場合は、特に変更は行なわれません。「hsp3dish.ini」ファイルを使用せずに、マニュアルで設定を行なう場合は、「マニュアル設定項目について」の項目をお読み下さい。

のように、自動で画面の向きが設定されてしまうと、自分の意図した向きにならないからです。



シスター

リンク

2022/4/26(Tue) 00:24:29|NO.96129

> Windows上で実行する際に画面サイズなどの設定を参照するためのファイルです。
とあるので、基本的にはwindows上で設定が反映される物と思っておりますが、
Androidにも反映する方法があるという事でしょうか?
生憎、Androidは実機を持っていないのでエミュレータで確認してみたところ、やはり適用されていない状況でした。

autoscale=0

を入力しても同じ状況です。
> androidのビルド時に設定が反映されます。
と記載があるので、hspファイルからF5で実行して反映後の物を起動できるのか、というのも怪訝に思っています。

加えて言うと
.iniファイルは画面サイズ等の設定を行う為のファイルだと思ってますが、
> Windows上で実行する際に画面サイズなどの設定を参照するためのファイルです。
根本的に私が勘違いしている様であればご指摘くださると助かります。



しまくろねこ

リンク

2022/4/26(Tue) 17:04:28|NO.96135

言葉足らずだったので書き直します。

まず先に謝っておきます。
エミュレータについては使ったことがないのでわかりません。(なぜかAVDマネージャーが起動しません)


> .iniファイルは画面サイズ等の設定を行う為のファイルだと思ってますが、
> > Windows上で実行する際に画面サイズなどの設定を参照するためのファイルです。
> 根本的に私が勘違いしている様であればご指摘くださると助かります。

シスターさんの仰ってることは間違ってないです。

ちょっとわかりにくいかもしれませんが、本来はプロジェクトフォルダ内の「AndroidManifest.xml」と「main.cpp」の2つのファイルを手修正という名のマニュアル設定を行うのですが、「hsp3dish.ini」は、それを簡単にしたものです。

「hsp3dish.ini」は、HSP3Dishを利用したWindows上で動作するアプリの起動時のウィンドウサイズを「wx」「wy」で使用します。
Windows上では「autoscale」は無視されます。

Androidのアプリをビルド時に画面サイズも「wx」「wy」で使用します。
そして「autoscale」が適用されます。
ただし、「hsp3dish.ini」を利用してのAndroidの画面サイズ/スケーリングの設定が有効なのは、「プロジェクトフォルダのHSPフォルダ内」のみです。
プロジェクトフォルダ外の場所に「hsp3dish.ini」があってもそれはWindows上で動作するアプリのウィンドウサイズの「wx」「wy」のみが有効です。


ちなみにテストとして

wx=800 wy=480 autoscale=0
の「hsp3dish.ini」をプロジェクトフォルダのHSPフォルダにソーススクリプトと一緒に置きビルドしました。

Android実機上だと、800x480で「画面全体に収まる最適な大きさ(縦横比は維持)」で起動しました。
Windows上だと800x480のウィンドウで起動しました。



//-------------------------------------------------------------------------------------------------------
ここから下は私のAndroidアプリを作る環境ですが、
ソーススクリプトは、プロジェクトフォルダのHSPフォルダではないところに置いています。
そして「hsp3dish.ini」もソーススクリプトと同じフォルダに置いています。

これだとAndroidのビルド時の画面サイズが「hsp3dish.ini」で変更できないので、マニュアル設定で画面サイズとスケーリングの設定をします。
HSP3.7β1(2?)から「Dish P Helper」というツールを一緒に入れさせて頂きました。(HSPフォルダ内に「dish_p_helper.exe」という名前であります)
このツールで画面の向き、サイズ、スケーリングの種類を変更することができます。

もしHSPフォルダに「dish_p_helper.exe」が無い場合は、下記のURLからダウンロードできます。
https://sites.google.com/site/simakuroneko/home/product/hsp3dish/dish_p_helper



窓月らら

リンク

2022/4/26(Tue) 17:58:45|NO.96136

横からですが、hsp3dish.ini の個人的な運用方法はWindows上で開発するときの画面サイズの設定のみですね。
ソースファイル(.hsp)と同じフォルダに置いてHSPスクリプトエディタで実行。

エミュレータはうちの環境もまともに動作しないので、実機でテストを行います。
エミュはあくまでエミュなんで、実機での動作はそれでは保証できないと考えます。
中古端末であれば4000円で十分実用的なスマホ本体が買えますよ。



きせん

リンク

2022/4/26(Tue) 20:15:53|NO.96138

>シスターさん

ベータ版であればHSPフォルダにasと同じ場所におけばビルドした時に反映されます。
最近?は画面が細長いスマホが多いようですので、
autoscale=2 にして縦を基準にするとよいような気がします。



しまくろねこ

リンク

2022/4/26(Tue) 20:38:26|NO.96139

>きせんさん

> ベータ版であればHSPフォルダにasと同じ場所におけばビルドした時に反映されます。

私も知りたいのでもう少し詳しく教えてください。



しまくろねこ

リンク

2022/4/27(Wed) 07:20:43|NO.96140

>きせんさん

HSP3.7β1で、プロジェクトフォルダのHSPフォルダではない場所に、スクリプトファイル(.hsp)と同じフォルダにhsp3dish.iniを置きましたが、Android実機では反映されませんでした。

> ベータ版であればHSPフォルダにasと同じ場所におけば
「HSPフォルダ」というのはHSPインストールフォルダということでしょうか?
それともプロジェクトフォルダ内のHSPフォルダのことでしょうか?



シスター

リンク

2022/5/1(Sun) 02:50:57|NO.96201

しまくろねこさん

いえいえ!私の勉強不足ゆえの事かと思いますので、どうかお気になさらず…

参照する為のファイル、という表現だったのはそういう事だったのですね!納得しました!

>「hsp3dish.ini」を利用してのAndroidの画面サイズ/スケーリングの設定が有効なのは、「プロジェクトフォルダのHSPフォルダ内」のみです。
> プロジェクトフォルダ外の場所に「hsp3dish.ini」があってもそれはWindows上で動作するアプリのウィンドウサイズの「wx」「wy」のみが有効です。

私は今プロジェクトフォルダ内のHSPフォルダに「hsp3dish.ini」を置いていますが、
windows上で適用されないのはプロジェクトフォルダ外の場所に置く必要がある、という事でしょうか。

今はAndroidの実機がないのでお示し頂いたテストは実機を入手したら試してみたと思います。
エミュレータでの動作は期待出来ない、という事が分かっただけでも良かったです。



窓月らら

リンク

2022/5/1(Sun) 09:55:21|NO.96204

Windows上で適用する場合は

>ソースファイル(.hsp)と同じフォルダに置いてHSPスクリプトエディタで実行。

です。



シスター

リンク

2022/5/1(Sun) 10:14:43|NO.96205

窓月らら さん

元々私もその認識でしたので、hspフォルダにhsp3dish.iniを置いていますが、
それでも適用されないので解消方法についてご教授頂きたく質問させて頂いた次第でございます。。

block3.hsp をhspスクリプトエディタでF5を押して実行していますが、320*480のスクリーンになってしまい
前述の数値はもちろん640*480等で指定しても変わりません。

ファイルのパスは下記の様になっています。
C:\Users\●●(ユーザー名)\Documents\HSP\hsp37beta\android\projects\myblock\hsp\block3.hsp
C:\Users\●●(ユーザー名)\Documents\HSP\hsp37beta\android\projects\myblock\hsp\hsp3dish.ini

言葉が足りなかった様で申し訳ありませんでした。



窓月らら

リンク

2022/5/1(Sun) 10:20:43|NO.96206

元々そのフォルダにはhsp3dish.iniがあったと思いますが、変ですね。。
別の場所にフォルダを作ってそこから開いても同じでしょうか?

ちなみに・・・Windows上のexeの場合はこれを使います。

#packopt xsize 320 #packopt ysize 480



窓月らら

リンク

2022/5/1(Sun) 10:22:49|NO.96207

>元々そのフォルダにはhsp3dish.iniがあったと思いますが、変ですね。。

すみません、これは勘違い。
HSPのサンプルフォルダだと思い込んでました。
パス名を短くしたらどうなるかな?



しまくろねこ

リンク

2022/5/1(Sun) 10:27:08|NO.96208

気になったので私もプロジェクトフォルダのHSPフォルダにソースファイルとhsp3dish.iniを置いて、HSPスクリプトエディタからF5で実行してみましたが、ちゃんとhsp3dish.iniで指定した大きさでウィンドウが表示されています。
シスターさんの環境では反映されないというのは謎ですね。



しまくろねこ

リンク

2022/5/1(Sun) 11:08:19|NO.96209

> C:\Users\●●(ユーザー名)\Documents\HSP\hsp37beta\android\projects\myblock\hsp\block3.hsp
> C:\Users\●●(ユーザー名)\Documents\HSP\hsp37beta\android\projects\myblock\hsp\hsp3dish.ini

まったく同じフォルダ構成にして、hsp3dish.iniの中を変更してF5で実行してみましたが、やはりちゃんとウィンドウの大きさは反映されてます。



TOMATO

リンク

2022/5/1(Sun) 12:08:04|NO.96210

◆ hsp3dish.iniが読み込まれない想定ケース

・デバッグ実行でない場合(F5起動時のみ有効)
・hsp3dish.iniの読み込まれ方は現在のカレントディレクトリ基準なので、
何らかの原因でカレントが移動してしまっている場合
https://github.com/onitama/OpenHSP/blob/2aab6abfaf20cb61f726815183c2e132f460c479/src/hsp3dish/win32/hsp3dish.cpp#L1036

・hsp3dish.iniは存在しているが、iniファイルが他アプリから開かれている場合(排他制御)
・hsp3dish.iniの文字コードが Shift_JIS または UTF-8 以外の場合
・hsp3dish.iniの改行コードが LF の場合

・hsp3dish.iniのフルパスにUnicode文字が存在している場合
(↑HSPスクリプトエディタではなく、VSCodeを使っている場合のみにあり得るケース)



しまくろねこ

リンク

2022/5/1(Sun) 12:46:19|NO.96211

> ・hsp3dish.iniの文字コードが Shift_JIS または UTF-8 以外の場合
> ・hsp3dish.iniの改行コードが LF の場合

2つを試してみましたが、UTF-8の場合はhsp3dish.iniはASCIIコードの文字しか扱ってないので問題なかったです。
改行コードが LF の場合は、hsp3dish.iniの内容が反映されない現象が起きました。

> シスターさん

一度hsp3dish.iniを改行コードをCR+LFで保存できるテキストエディター等で上書き保存してみてはいかがでしょうか?
もしできればバイナリエディターの類のツールでhsp3dish.iniの改行コードがどうなっているか確認してみたほしいところです。



TOMATO

リンク

2022/5/1(Sun) 12:51:48|NO.96212

> UTF-8の場合はhsp3dish.iniはASCIIコードの文字しか扱ってないので問題なかったです。
日本語が分かりにくかったかも。
SJIS と UTF-8 以外なので、例えば UTF-16 だと、読み込まれないですね



しまくろねこ

リンク

2022/5/1(Sun) 12:59:33|NO.96213

> SJIS と UTF-8 以外なので、例えば UTF-16 だと、読み込まれないですね

ああ、すいません。
読み間違えていました。



TOMATO

リンク

2022/5/1(Sun) 13:02:31|NO.96214

あとは、UTF-8(BOM付)で1行目のコメントがない場合とか
(BOMの3byteが付与されるの原因で、1行目のwx=を認識できなくなる。2行目以降は影響がない。)


wx=800 wy=480 autoscale=0



きせん

リンク

2022/5/2(Mon) 19:16:58|NO.96235

>しまくろねこ さん

おそくなってすみません。

app
L src
L main
L assets
hsp
(ここ↑)
   かえってわかりにくいかもしれませんが(笑)

一回クリーンしてからやってみる。
コピーしておいて名前を変更し、あらたにプロジェクトを作成してみる。
(assetsとresのみの上書きがのぞましい)
これでやってみてどうでしょうか。



きせん

リンク

2022/5/2(Mon) 19:30:31|NO.96236

スレちがいかもしれませんが、
windowsのテキストファイルをそのままアセットにいれ
文字コードがANSIだと実機では文字化けします。

UTF-8に変換しないといけません。
知らん間に文字コード変わってるのが怖いので、
Notepad++ってのを私は使っています。



きせん

リンク

2022/5/2(Mon) 19:41:33|NO.96238

こちらでは プロジェクトファイル中
hsp3dish.ini の 差し替え(上書き)のみの変更で
app-debugを実機におくってテストしてみたところ、
しっかり変更されています。



しまくろねこ

リンク

2022/5/2(Mon) 20:26:41|NO.96239

> きせんさん

> app
> L src
> L main
> L assets
> hsp
> (ここ↑)
>    かえってわかりにくいかもしれませんが(笑)
>
> 一回クリーンしてからやってみる。
> コピーしておいて名前を変更し、あらたにプロジェクトを作成してみる。
> (assetsとresのみの上書きがのぞましい)
> これでやってみてどうでしょうか。

すいません。よく分かりませんでした・・・。

> windowsのテキストファイルをそのままアセットにいれ
> 文字コードがANSIだと実機では文字化けします。
>
> UTF-8に変換しないといけません。

Dish Helperでソーススクリプトをビルドすると文字列に関してはUTF-8に変換されます。
一方、Assetsフォルダの中のファイルに関しては特に変換されません。
なので、テキストファイルをWindows上ではS-JISで利用し、Android上ではUTF-8で利用するために「mod_dstr.as」というのを使っています。
https://sites.google.com/site/simakuroneko/home/product/hsp3dish/mod_dstr

#include "hsp3dish.as" #include "mod_dstr.as" dstr_init a = "" bload "text.txt", a b = dstr_utf8(a) dialog b end
text.txtの中身はANSI(S-JIS)で、Windows上だとANSI(S-JIS)で文字列が返ってき、Android/iOS/その他上だとUTF-8の文字列が返ってきます。

スレちがいなのでここまでにしておきます。

シスターさんにこれまでのレスでどうなったのかを聞きたいのですが、応答がないです。



zezenana

リンク

2022/5/6(Fri) 09:48:41|NO.96279

>シスター さん

Win版 HSP3Dish のみの動作について基本的なことだけ確認させてください。
(スレ内容が Android版と混在していて現状を理解できていないので・・)

先月にHSP3.5の環境とHSP3.7betaを導入・併用しているとのことでしたが、

・HSP3.7betaのインストール先はPC内蔵ドライブ直下ですか?(C:\HSP37betaなど)

・編集・実行に利用している HSPエディタのバージョンは3.7ですか?

・HSP3.7β付属サンプル(hsp37beta\sample\hsp3dish\block3.hsp)を直接実行しても
 ウィンドウサイズは小さい(320x480)でしょうか?

・上記サンプル内 #cmpopt varname 1の後に(8行目)screen 0,480,800を追加・実行しても
 ウィンドウサイズは小さいでしょうか?

・マイドキュメント上のプロジェクト以外のフォルダでblock3.hsp、hsp3dish.iniを
 設置・実行してもウィンドウサイズは小さいでしょうか?

問題がなければ、サンプルの実行はすべて 480x800のサイズで表示されるはずです。

すみませんが、ご確認おねがいします。



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