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


HSPTV!掲示板


未解決 解決 停止 削除要請

2020
0717
おにたま(管理人)HSP3.6β3テストのお願い120解決


おにたま(管理人)

リンク

2020/7/17(Fri) 22:07:59|NO.91014

いつもHSPをお使い頂きありがとうございます。
新しいバージョンのβテスト版となる、HSP3.6β3を公開致しました。

HSP3.6β3版ダウンロード
http://www.onionsoft.net/wp/archives/3233

上のURLから、HSP3.6β3版をダウンロードできますので、互換性の問題や不具合など
ありましたら掲示板の方でお知らせ頂けると助かります。
公開に向けて多くのご報告、ご提案を頂きありがとうございました。
対応できる部分について手を入れていますが、引き続きアップデートを行っていきたいと思います。

HSP3.6β版のパッケージは差分アップデートではなく、フルセット版となっています。
既存のフォルダに上書きではなく別途インストールを行なってください。
HSP3.6βの新機能ハイライトをこちらでご覧いただけます。
https://www.onionsoft.net/hsp/v36/doclib/update36.htm

HSP3.6β版のドキュメントはオンラインでもご覧いただけます。
https://www.onionsoft.net/hsp/v36/

β版は、新規の機能や修正を検証するためのテストバージョンです。
思わぬ不具合の可能性もあることをご了承下さい。不具合が起こる場合や、
動作が安定しない時は、以前のバージョンに戻して使用することを推奨します。



この記事に返信する


ふにくら

リンク

2020/7/17(Fri) 23:55:37|NO.91017

β3の開発・公開お疲れ様です。HGIMG4もかなり使い勝手が向上してきたと感じます。

1点報告というか要望なのですが、gpusershader命令で指定するシェーダーファイルをパックファイルから呼び出せるようにして頂くことはできないでしょうか?

シェーダーもある種のリソースであり、かつユーザーに触らせたくないこともありますので……。



しまくろねこ

リンク

2020/7/18(Sat) 11:50:45|NO.91023

HSP Docs Libraryで、es_adir命令の解説文に無いはずのP4が記載されています。
実際にP4に値を入れると「パラメータが多すぎます」とエラーが発生します。


es_adir p1,p2,p3 p1=スプライトNo. p2=移動する方向(0〜) p3=移動スピード(%) 解説 スプライトを自動的に移動させるための設定をします。 p1でスプライトNo.、p2で方向を指定します。 方向は、es_iniで指定した数値 までで指定します。0が真下となり、反時計回りに増加していきます。 p3で移動スピードを%で指定します。 p3を省略するか、100(%)を指定した場合 には、指定した方向に1フレームにつき1ドットの距離を移動します。 p4で移動スピードを%で指定します。p4を省略するか、100を指定した場合は、 100%のスピードとなり、1フレームに1ドットの速度で移動し続けます。



とあるプログラマ

リンク

2020/7/18(Sat) 12:39:06|NO.91024

おにたまさん、開発・公開お疲れ様です。

さて今回からコールバックルーチンで特定の命令が使用不可となりlogmesも使用不可でありますが、logmesは使用可能な命令に変更できないでしょうか。

プログラミング・マニュアルを参照すると「コールバックルーチンは、通常のサブルーチンと同様に記述することができますが、時間待ちや停止をさせることができません。」とありますが、logmesでは時間待ちや停止といったことは起きにくいと思われます。
(むしろdialog命令が使用可能になっているのは問題ないのでしょうか。)

もしプログラムに支障をきたさないということであればlogmesのコールバックルーチン内での使用を可能にしていただければと思います。



とあるプログラマ

リンク

2020/7/18(Sat) 13:13:11|NO.91025

それと個人的な要望ですが、hsp36b3以降でも構いませんので以下の機能について検討していただければ幸いです。


・strrep, instr等で使えるワイルドカード
 \*のような形でstrrepやinstr等で任意の1文字(1バイト文字または全角を含む1文字、正規表現でいう「.」)以上に該当するワイルドカードの機能を実装していただきたいです。
正規表現(mod_regexp)のほうが高性能ではありますが処理速度がHSP命令よりかなり遅くHSPのstrrep等は重宝しているため、HSP側でのワイルドカードサポートは望ましいです。


・ginfo用のnoteunselのような命令
 現状では命令・関数に制御を移しgselで複数あるウィンドウのうちの1つを選択する際、gselよりも前にginfo_selを別の変数に確保しておきreturn前にgselで変数に確保していたIDを再選択するという方法でありますが、
もしnoteunselのgsel版があれば処理が短くなるほかコードの可視性も向上するため是非この機能の実装をお願いしたいです。


・hsvcolorの色相を359または360段階にする
 どういうわけかHSPのhsvcolor命令の色相(Hue)は0〜191の範囲なので、0〜359または0〜360の範囲に修正していただきたいです。


・任意にHSPのエラーメッセージを呼び出す機能
 新規命令としてHSPのエラーメッセージを呼び出すデバッグ用の命令の実装していただきたいです。
ユーザー定義命令・関数内で文法的には間違っていないものの想定外の結果(例えば、int引数が設計上では0以上でなければならないのに負の値が渡された場合。など) が発生した場合、現状ではreturn -1のように沈黙的なスルーを行うか自身でdialog命令等でエラーを勧告する方法が一般的かと思われます。
しかしreturn -1のような沈黙的なスルーは例外に気づきにくいという問題点があり、dialog命令等による勧告はコードの多重化や余計なバグ(リリース時に不要なdialogが発生してしまう等)を生みかねません。
そこでHSPの標準命令としてHSPのエラーメッセージを呼び出す命令が追加されたらと思います。


随分と身勝手で数の多い要望ですが、1つでも検討し実装していただければ幸いです。
よろしくお願いします。



しまくろねこ

リンク

2020/7/18(Sat) 19:56:26|NO.91030

es_setrot命令で横の表示倍率を100%以外の値にすると画像の隣のピクセルが左側に表示されてしまいます。
これは仕様でしょうか?

画像ファイル(me.png)
https://sites.google.com/site/simakuroneko/home/all_up_files/me.png?attredirects=0&d=1

#include "hsp3dish.as" screen 0,640,480 sprite_buff_id = 1 celload "me.png", sprite_buff_id f = 4 es_ini es_size 16, 16 es_pat 0, 0, 0, f, sprite_buff_id es_pat 1, 16, 0, f, sprite_buff_id es_pat 2, 32, 0, f, sprite_buff_id es_pat 3, 48, 0, f, sprite_buff_id es_pat 4, 32, 0, f, sprite_buff_id es_pat 5, 16, 0, f, sprite_buff_id es_pat 6, 0, 0, f, sprite_buff_id es_pat 7, 64, 0, f, sprite_buff_id es_pat 8, 80, 0, f, sprite_buff_id es_pat 9, 96, 0, f, sprite_buff_id es_pat 10, 80, 0, f, sprite_buff_id es_pat 11, 64, 0, f, sprite_buff_id es_link 11, 0 gsel 0 bairitsu = 400 es_set 0, 100, 100, 0 es_setrot 0, 0, bairitsu, bairitsu *main redraw 0 color 0, 0, 0 : boxf es_draw redraw 1 await 16 goto *main



さか

リンク

2020/7/18(Sat) 21:48:43|NO.91032

hsed_gettextについて、その後報告します。
結論から言うと、自分のPC固有のようでした。

hsed_getactfootyidでfootyIdを取得しても同様でしたが、サブノートや
OS再インストールしてみたところ落ちたり取得できなくなることはなく
なりました。
お手数おかけしました。



ふにくら

リンク

2020/7/19(Sun) 02:50:24|NO.91033

gpmatprmt 命令でシェーダー内のsampler2D型パラメーターに画像を渡す際、PACKFILEまたはDPMファイル内の画像を指定すると何も渡されないようです。
gpusershaderの要望と合わせてですが、よろしければこちらもご検討をお願いします。



リンク

2020/7/19(Sun) 08:22:14|NO.91034

まだβ版でしたね。早とちりの失言お詫びします。



法貴優雅

リンク

2020/7/19(Sun) 12:22:14|NO.91035

開発お疲れ様です。
もう10年以上放置されているので、修正はないと思いますが報告だけ。

HGIMG3でHSP3.X対応のDLLと併用できずにエラーになる。
(HSP2.X時代のDLLは併用できる)

以上、よろしくお願いいたします。



法貴優雅

リンク

2020/7/19(Sun) 13:07:30|NO.91037

あと、ふにくらさんからも、要望出ていますが
私も、HGIMG4のリソース関係(モデル、テクスチャ、シェーダ、その他)の
パックファイル対応をぜひお願いいたします。



しまくろねこ

リンク

2020/7/19(Sun) 14:19:59|NO.91038

開発お疲れ様です。

HSP Docs Libraryで

「HSP3Dish プログラミングマニュアル・基本仕様ガイド」の
「標準スプライトプログラミングガイド」のリンク先が一か所

doclib/sprite.htm

になっているのですが、doclib に入っているのは、sprite.html のため見れませんでしたので、修正していただけるとありがたいです。



Y_repeat

リンク

2020/7/24(Fri) 17:22:15|NO.91065

前回、報告したちょっとしたバグもう一回起きました
サブとして使用してるwinタブレットで
HSPエディタでCtrl-vでコピペ出来なくなりました
落ち着いて終了してまた起動したらコピペ出来ました
今回はまだctrlキーは壊れていないです
ではー



リンク

2020/7/24(Fri) 19:53:21|NO.91066

win版でmesの負荷が劇的に改善されてていい感じです、android版では効果の程が計りづらい
ですけども。
ところで25kByteのソースと512x512のテクスチャ1枚程度のアプリで
3.5時にはapk容量が360kByteくらいだったものが3.6では1400kByteを超えています。
ビルド時間も体感で3倍くらいに増えていますが、これは正常でしょうか?



法貴優雅

リンク

2020/7/24(Fri) 21:55:22|NO.91070

HDLのes_iniの解説に「HSPDXFIX.DLLシステムの初期化を行ないます。」
とありますが、コピペの誤植でしょうか?



法貴優雅

リンク

2020/7/25(Sat) 20:22:51|NO.91072

gpbconv.exeに関してはβ2から変更なしということでよろしいでしょうか?
とりあえずβ2のスレッドで報告があった
「ファイルパスに日本語が含まれると変換に失敗する」
「変換するFBXのバージョンが古いとテクスチャーが張られない」
という現象がβ3でも再現します。



法貴優雅

リンク

2020/7/25(Sat) 23:19:40|NO.91073

かなり前に要望を出した気がするのですがHGIMG4で半透明及び透過のある
板ポリ同士のZソートの実装をお願いします。
以前、自前でZソートしてくださいと言われたような気がしますが
現状のシステムで、自前でZソートって実装できますか?
いまいち実装方法がわかりません。



こいる

リンク

2020/7/26(Sun) 14:43:18|NO.91074

hsed_gettextをするごとに、エディタの使用メモリが増えてしまいす。
前からある不具合ですが、修正の検討お願いします。



さか

リンク

2020/7/28(Tue) 22:18:27|NO.91092

こいるさん、本当ですね。自分はあまり認識ありませんでした。
自分の環境ではwait 20くらいだとわかりませんがwait 0にすると
増えるのが見ていてわかります。
これは改善してもらいたいですね。



waitman

リンク

2020/8/6(Thu) 10:24:59|NO.91133

スリープさせながら長時間稼働しているノートPC(Win10)と、
最近OSの更新で再起動したデスクトップPC(Win10)とで、
wait命令の挙動が異なる問題にぶつかって困っていましたが、
HSP3.51の代わりにHSP3.6beta3を使うと上記環境双方で
同じ挙動(期待した動き)となることが確認できました。

500時間以上起動したPC上でwait,await命令の待ち時間が正しく反映されなくなる不具合を修正




おにたま(管理人)

リンク

2020/8/6(Thu) 22:49:26|NO.91138

多くのご報告とご意見ありがとうございます。
修正できるものから優先的に今後のバージョンで反映させていきたいと思います。

>ふにくら さん

シェーダーファイルをパックファイルから呼びだすようには、したいと考えています。
現在のパックファイルのシステムが古いため、その仕組みごと新しいものに置き換えることを予定しています。

>しまくろねこ さん

多くの検証とドキュメントのご指摘ありがとうございます。
次のバージョンでは修正したいと思います。
es_setrot命令については、Windowsとandroid,iOSなどで挙動が違う可能性もあるので調査してみたいと思います。

>とあるプログラマ さん

logmes命令は確かに割り込み中にこそ使われる命令ですね。
挙動も含めて対応したいと思います。
他の要望も大変参考になりました。
互換性の問題はありますが、検討していきたいと思います。

>法貴優雅 さん

HGIMG3についてのご報告ありがとうございます。
対応できる部分については、修正していきたいと考えています。
gpbconv.exeに関してはβ2と変わっていません。
日本語ファイル名にはできるだけ対応したいところですが、外部のライブラリを使用
していることもあり、英文字に統一するのが最も安全と思われます。
古いFBXのバージョンというのは、いつ頃のものでしょうか。
FBX SDKというライブラリがサポートしていないバージョンの可能性があります。
板ポリ同士のZソートというのは、gpplateで生成したポリゴンということでしょうか。
現状で、オブジェクトのZ座標でソートして表示するのは確かに難しいですね、申し訳ありません。
gpdrawを行う際にソートを行うオプションを検討したいと思います。

>撃 さん

android版のサイズが3.5よりも増加しているのは、1つのapkでx86など複数のプラットフォームに対応したためです。
古いandroid、TV、intel版のandroidなど多くのプラットフォームをサポートするためのデータとお考えください。
このためビルド時間、サイズとも今までよりも増加しています。

>こいる さん

hsed_gettextによって使用メモリが増えてしまう件、ご報告ありがとうございます。
こちらも今後のバージョンで調査して修正したいと思います。



しまくろねこ

リンク

2020/8/7(Fri) 16:28:51|NO.91139

開発お疲れ様です。
 Windows上だとes_setrot命令で横/縦の表示倍率を100%以外の値にすると画像の横/縦のピクセルが左/上に表示されてしまいます。
 Android上だと縦の表示倍率を100%以外の値にすると画像の上にあるピクセルが上に表示されてしまいます。

画像ファイル(me.png)
https://sites.google.com/site/simakuroneko/home/all_up_files/me.png?attredirects=0&d=1

#include "hsp3dish.as" screen 0,640,480 sprite_buff_id = 1 celload "me.png", sprite_buff_id f = 4 es_ini es_size 16, 16 es_pat 0, 0, 0, f, sprite_buff_id es_pat 1, 16, 0, f, sprite_buff_id es_pat 2, 32, 0, f, sprite_buff_id es_pat 3, 48, 0, f, sprite_buff_id es_pat 4, 32, 0, f, sprite_buff_id es_pat 5, 16, 0, f, sprite_buff_id es_pat 6, 0, 0, f, sprite_buff_id es_pat 7, 64, 0, f, sprite_buff_id es_pat 8, 80, 0, f, sprite_buff_id es_pat 9, 96, 0, f, sprite_buff_id es_pat 10, 80, 0, f, sprite_buff_id es_pat 11, 64, 0, f, sprite_buff_id es_link 11, 0 es_pat 12, 0, 16, f, sprite_buff_id es_pat 13, 16, 16, f, sprite_buff_id es_pat 14, 32, 16, f, sprite_buff_id es_pat 15, 48, 16, f, sprite_buff_id es_pat 16, 32, 16, f, sprite_buff_id es_pat 17, 16, 16, f, sprite_buff_id es_pat 18, 0, 16, f, sprite_buff_id es_pat 19, 64, 16, f, sprite_buff_id es_pat 20, 80, 16, f, sprite_buff_id es_pat 21, 96, 16, f, sprite_buff_id es_pat 22, 80, 16, f, sprite_buff_id es_pat 23, 64, 16, f, sprite_buff_id es_link 23, 12 gsel 0 bairitsu = 100 es_set 0, 10, 10, 0 es_setrot 0, 0, bairitsu, bairitsu bairitsu = 400 es_set 1, 100, 100, 12 es_setrot 1, 0, bairitsu, bairitsu *main redraw 0 color 0, 0, 0 : boxf es_draw redraw 1 await 16 goto *main



法貴優雅

リンク

2020/8/8(Sat) 20:27:54|NO.91141

HSP3DISHを使用したWindowsの実行ファイルを自動作成する際
#packopt icon "icon.ico"
で、アイコンを埋め込むようにしているのですが

[ERROR] No.20
「DPMX」文字列が見つかりません
Enterキーを押してください

というエラーが発生して、アイコンを埋め込むことができません。
HSP3DISHを使用しない場合は、エラーもなくアイコンが埋め込まれるようです。



法貴優雅

リンク

2020/8/8(Sat) 20:33:44|NO.91142

先程の内容に追記で
#packopt version "version.txt"
も、同じようにエラーになります。



hashikemu

リンク

2020/8/9(Sun) 23:12:51|NO.91146

HGIMG4のmesで表示する内容が変化するたび(たとえば経過時間の表示など)に
タスクマネージャ上で使用メモリが1MB/s程度で増えていく現象を見つけました.
表示内容が変化しない間は増えないようです.

サンプルのtest1.hspにcounterという変数を追加し,mesで表示させて確認しました.



砂時 計

リンク

2020/8/10(Mon) 14:30:09|NO.91149

HSP3Dish および hgimg4 の celload で 64バイトぐらいを超えるファイル名を指定すると
ファイル名が途中で切られてしまい、ロードエラーが出ます。

深めのフォルダで hsptv フォルダを指定したときに64バイトを超えてエラーとなります。


#include "hgimg4.as" dir = dirinfo(5) fp = dir + "hsptv_img.png" celload fp


Texture not found.(C:\Users\xxxxx\Downloads\yyyyy\hsp36b3\hsp36beta\hsptv\hsptv_im□式□w)



GENKI

リンク

2020/8/14(Fri) 16:11:47|NO.91164

「プログラミング・マニュアル 3.9 配列変数」に連想配列が実装されているかのような記述があります。

実装していないのであれば、記述は消しておいたほうがいいのではないでしょうか。
つい期待して情報を探してしまいます。



綾にゃん♪

リンク

2020/8/15(Sat) 05:17:29|NO.91168

CELLから標準スプライトに移行したいのですが、上手く使えないので
"珠音のジャンプアップ♪"(標準スプライト版)
のソースリストを公開していただけないでしょうか?

これからWEB版ゲームをメインに作りたいのですが
CELLと標準スプライトのどちらを使った方が良いのでしょうか?
データのPACK方法や不具合等が不明なので(-_-;)



ふにくら

リンク

2020/8/15(Sat) 23:58:38|NO.91177

HGIMG4にてmemfile命令で画像ファイルを使用するとエラーで落ちます。
HSP3Dishでは動くようですが・・・。
HGIMG4のマニュアルに「HSP3Dishランタイムの上位互換として動作します」といった旨書かれていたかと思いますが、本不具合に限らず
「HGIMG4でエラーになり、おかしいなと思ってDishで試したら動く」というのが結構多いです。
動作は揃えて頂くか、差異があるのでしたら相違点をどこかに書いていただけると助かります。

サンプルコード:

;#include "hsp3dish.as" #include "hgimg4.as" : gpreset : setcls CLSMODE_NONE screen 0 buffer 1, 64,64 filename = "hoge.png" exist filename filesize = strsize sdim filebuf, filesize bload filename, filebuf, filesize, 0 memfile filebuf, 0, filesize picload "MEM:a.png" ;celloadとpicloadのどちらでもエラー13 ;celload "MEM:a.png", 1 stop



とあるプログラマ

リンク

2020/8/17(Mon) 14:04:45|NO.91190

機能要望になりますが、すでに定義済みのモジュール名を#moduleで指定した場合、コンパイルエラーになるのではなく既存の同名のモジュールの追加として解釈されるような仕組みにすることは可能でしょうか。

例えば

// ====================== // ファイル:mod_hoge.hsp // ====================== #module hoge #deffunc piyo str string mes "piyo: " + string return #global // ====================== // 上とは別ファイル // ====================== #include "mod_hoge.hsp" #module hoge // <- ここでコンパイルエラーにするのではなく、追加分として解釈される。 #deffunc fuga str string mes "fuga: " + string return #global // %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% // ====================== // 上2つの出力は下に同じとなる // ====================== #module hoge #deffunc piyo str string mes "piyo: " + string return #deffunc fuga str string mes "fuga: " + string return #global
このような感じです。

commonフォルダにある共通のヘッダファイルに加えて、プロジェクトごとに独自の関数をプロジェクトのローカルファイルとして追加分を記述したいことが多々あるので、可能であれば実装をお願い致します。
(多言語のクラス継承の簡易版のような)


すでに#def(c)func・#define・#constがされている場合で同名のそれを定義しようとした場合は、今まで通りコンパイルエラーで問題ないと思います。
あくまで「追記」という形での機能と想像しています。



exe

リンク

2020/8/20(Thu) 12:29:34|NO.91209

開発お疲れ様でした。

旧メタセコLEにてxモデル出力→BlanderVer2.82.7にてfbx変換
出力されたfbx→gpbConvにて変換
ログで変換成功と出るだけでまったく生成されない状態です。

※Win10 64bitOSのゲーミングPC環境で実行時です。

もしかしたら何かプラグインのようなDLLをダウンロードが必要なのか、
32BitOS用が必要なのか?といったところです。
HSP3.5の同梱gpbConvでもまったく同じ現象でした。



しまくろねこ

リンク

2020/8/21(Fri) 17:46:24|NO.91229

開発お疲れ様です。

HSP3Dish.jsで変換時の不具合を見つけました。
[data]フォルダに239個以上ファイルを入れて変換すると、生成された.htmlファイルが</html>まで行かずに途中で終わってしまっています。



法貴優雅

リンク

2020/8/21(Fri) 23:26:48|NO.91239

完全に検証ができていませんが
#include "hgimg4dx.as"(HGIMG4のDirectX版にて)
起動時に「OpenGL initialize failed.」と出て起動に失敗することがあります。
その後、再度起動するとエラーもなく起動できたり、再度同じエラーが発生したりします。
発生する条件は、わかりません。



kou

リンク

2020/8/23(Sun) 16:15:43|NO.91244

es_test6.hspのサンプルで、割り込み時のiparamが0になっています。
ヘルプからは個々のスプライトNo.が取れるのかと思ったのですが、
これは描画開始スプライトNo.になるのが仕様でしょうか?

スプライト描画を以下に置き換えるとiparamの値が変わるようになりました。
repeat 30 : es_draw cnt,1 : loop



kou

リンク

2020/8/23(Sun) 22:41:19|NO.91251

もう1点、es_drawのソートですが、ESDRAW_NOSORT フラグを立てないとソートされません。
マニュアルの記載と逆な気がします。



あんすこえむ

リンク

2020/8/24(Mon) 14:39:00|NO.91255

Y_repeatさん、
>HSPエディタでCtrl-vでコピペ出来なくなりました

この現象が出た時、「script editor message」の小さいメッセージウィンドウが表示されたまま裏に隠れたりしていないか、確認してみてください。
エディタ内の検索機能で「終わりまで検索しました」と表示された後が要注意です。
閉じないでメインの画面操作に戻れますが、コピー&ペーストに対するハンドリングは「script editor message」が掴んだままになっています。



Y_repeat

リンク

2020/8/25(Tue) 20:45:26|NO.91259

あんすこえむ様

解答ありがとうございます
似たようなかんじの現象になりました
今後そのような状態になったら
小さいウィンドウが出てないか探してみます



アキアキノヒロロ

リンク

2020/8/26(Wed) 17:58:50|NO.91263

NO.91072 で、法貴優雅さんが言う、「gpbconv.exe」で
「変換するFBXのバージョンが古いとテクスチャーが張られない」
というのは、「Blender2.82」でFBXインポートさせると、バージョン「6100」と出て、サポートされないもののことでしょう。
「fbx」フォルダに収録されている「high_school_girl.fbx」「high_school_girlSD.fbx」がそうです。
「FBXConverter」でバージョンを上げてから、「Blender2.82」にFBXインポートし、「Shading」のタブで、各オブジェクトに画像テクスチャを対応させてから、
FBXエクスポートしてみて下さい。こうして出来たFBXファイルなら、「gpbconv.exe」で正常に変換できます。

蛇足の宣伝ですが、「high_school_girl.fbx」「high_school_girlSD.fbx」を「Blender2.82」で扱えるようにした「.blend」ファイルを、コンテストに応募した
「=Hgimg4=Test_Sample_ver1_02」に収めております。



GENKI

リンク

2020/8/31(Mon) 00:32:33|NO.91300

HDLのginfoについて解説に修正が必要です。
256〜261のについて、単位の記述がありません。(多分m/s^2とrad/s)
また「-1.0〜+1.0の範囲」ではなく「実数」が正しい記述ではないでしょうか。
使用した方の話によると±1.0を超えた値も出てきているそうです。

HSP3本体の問題ではありませんが、そのうち修正していただければと思います。



Noname

リンク

2020/9/2(Wed) 21:00:50|NO.91306


#include "hsp3dish.as" screen 0,320,240 mmload "XXXXX.mp3",0,1 mmplay 0 stop

上記のままだとmp3のループ再生が途切れてしまいます。
screen命令の行を消すとループ再生されます。
これは仕様でしょうか?
自分の環境だけ?



法貴優雅

リンク

2020/9/3(Thu) 20:22:02|NO.91307

hsp3dishやHGIMG4にて、MCI命令を使用すると
「サポートされない機能を選択しました」
となります。

Windowsの場合、他のAPI関係は利用できるので
WindowsならばMCIも利用できるように、お願いできませんでしょうか?



おにたま(管理人)

リンク

2020/9/5(Sat) 00:20:19|NO.91320

多くのご報告とご意見ありがとうございます。
修正できるものについて、β4版としていくつか修正させて頂きました。
まだ途中ですが、OneDriveのページから最新のhsp36betaフォルダをダウンロードできます。

HSP3.6β版(OneDrive)のページ
https://onedrive.live.com/embed?cid=EC425522ED849DA7&resid=EC425522ED849DA7%211229&authkey=AB-pNztAqBp6BcU

2020/09/04 3.6 beta4

UTF8のソースが引数付きマクロの展開に失敗することがある不具合を修正
アイコン埋め込み(iconins.exe)がhsp3dishの書き換えに失敗する不具合を修正
コールバックルーチンのエラーチェックからlogmes命令を除外
[HSP3Dish][Windows] MCI命令をサポート(Windowsプラットフォームのみ)
[HSP3Dish][Windows] screen命令での画面サイズ変更時に.mp3などのループ再生ができなくなる不具合を修正
[HSP3Dish][Windows] celload,picload命令で64文字以上のパス名がエラーになる不具合を修正
[HSP3Dish] 標準スプライトのESDRAW_NOSORTオプションが正しく動作していない不具合を修正
[HSP3Dish] β3版の標準スプライトでスプライト描画後の割り込み時のiparamが正しく設定されなかった不具合を修正
[HGIMG4][Windows] packfileからの読み込み及びdpmファイルに仮対応(Windowsプラットフォームのみ)

まだ調査中、修正中のものも含めて落ち着いた時点でバグフィックス版としてβ4をリリースできればと考えています。
引き続きよろしくお願いいたします。

>しまくろねこ さん

ご指摘ありがとうございます。
画像のピクセルがはみ出てしまう問題は、フィルタの設定などによって起こるため、Windows(DirectX)とOpenGL(android)の共通化に苦戦しています。
できるだけ同じ表示になるよう改善していきたいと思います。
HSP3Dish.jsで変換時の不具合も今後修正させて頂きます。

>ふにくら さん

HGIMG4でのpackfile及びdpmファイルのサポートは要望も多いと思いますので
やるべく早い段階でサポートできるよう進めていきたいと考えています。
そもそも現在のpackfileの仕様では、ファイル名や拡張子の長さに制約があるため
そこから見直す必要があり少し時間がかかっています。

>法貴優雅 さん

HSP3DISHでアイコン書き換えができない不具合、及びHGIMG4でのMCIの使用などは
β4版で修正されます。ご意見ありがとうございます。

>HGIMG3でHSP3.X対応のDLLと併用できずにエラーになる。
>(HSP2.X時代のDLLは併用できる)

こちらの件について、具体的にどのプラグインか、あるいはサンプルなどあるでしょうか。
こちらで実験した限りではhspmucomプラグインは動作していたので、
HSP3.X対応であることが理由ではないかと思います。

>hashikemu さん

HGIMG4やHSP3Dishで新しいメッセージを表示した場合、テクスチャが生成されるため
使用するメモリが増えることになります。
これらのテクスチャはキャッシュされて一定以上には増えないはずなのですが、
もう少し調査してみたいと思います。

>砂時 計 さん
>kou さん
>Noname さん

ご報告ありがとうございます。β4版で修正させて頂きました。

>とあるプログラマ さん

同名モジュールの追加は確かにあったら便利かもしれませんね。
モジュール変数を定義した場合など色々検討する必要はありますが、今後前向きに考えていきたいです。

>GENKI さん

ご指摘ありがとうございます。
連想配列について失礼しました。諸々ドキュメントを修正したいと思います。

>綾にゃん♪ さん

ご意見ありがとうございます。
珠音のジャンプアップは、まだ標準スプライトにはなっていませんが
今後色々なサンプルを公開していく予定です。
標準スプライトは、内部ではCEL(celput)を使用しているので、
どちらもWEBゲームで使用することができます。
たくさんの物体を管理するのであれば、標準スプライトを使うのが便利かと思います。

>ふにくら さん

仕様が明確でない所でお手数をおかけしてすみません。
とり急ぎ、β4版でHGIMG4はPACKFILEと.dpmファイルに仮対応しています。
画像やシェーダーなどは対応していますが、.gpbや/res/shadersなどの階層下に含まれる3Dのシェーダーはまだpackfileに含めることができません。
今後は、長いファイル名や階層構造のサポートとともに対応していきたいと考えています。



法貴優雅

リンク

2020/9/5(Sat) 08:41:08|NO.91321

おにたま様へ
各種修正対応、お疲れ様です。

>>HGIMG3でHSP3.X対応のDLLと併用できずにエラーになる。
>>(HSP2.X時代のDLLは併用できる)

>こちらの件について、具体的にどのプラグインか、あるいはサンプルなどあるでしょうか。
>こちらで実験した限りではhspmucomプラグインは動作していたので、
>HSP3.X対応であることが理由ではないかと思います。

この件につきましては、HSP3.X対応のプラグインとして配布されている
「vAudio」というプラグインが同時利用できません。

また掲示板の
http://hsp.tv/play/pforum.php?mode=pastwch&num=4907
の書き込みで、利用できない原因をおにたまさんが返信しているようです。

ちなみにhspmucomプラグインはHSP2.X対応のプラグインで作成されているようです。
#uselib "hspmucom.dll"ではなく#regcmd "hsp3cmdinit@4","vAudio.dll"の
プラグインがダメみたいです。

以上、よろしくお願いいたします。



綾にゃん♪

リンク

2020/9/5(Sat) 08:47:03|NO.91322

お忙しい中、御返事ありがとうございます。(^.^)/



法貴優雅

リンク

2020/9/5(Sat) 12:12:04|NO.91323

現在OneDriveにあるHSPを試そうとしたところ
私が利用しているアンチウィルスソフトのAviraが
「iconins.exe」に「TR/Dropper.Gen」があるとウィルス報告されます。
誤報かもしれませんが、一応報告しておきます。



MillkeyStars

リンク

2020/9/7(Mon) 00:29:22|NO.91328

512 メガバイトの文字列変数の strlen が必ずプロセス終了してしまう。

size = (1024 * 1024 * 512) + 1 sdim a,size basestr = "hoge" basevalue = lpeek(basestr,0) repeat size / 4 lpoke a,cnt * 4,basevalue loop mes "write complete" len = strlen(a)
修正可能であれば修正お願いします。



とあるプログラマ

リンク

2020/9/13(Sun) 01:11:09|NO.91350

結構前からあり続けるバグですが、HDLを起動した状態のままでWindowsをシャットダウンしようとすると、C++のランタイムエラーを吐いてシャットダウンが中断されてしまいます。

寝る前までHSPをやっていてシャットダウンを押して終了した気になっているといつまでも電源が落ちない ということもあるので、あまり優先度は高くないですがいずれは修正していただきたいです。



ヒート

リンク

2020/9/13(Sun) 13:26:31|NO.91358

HSPのソースファイルは大きいアイコンなのにhsptmp.exeファイルは小さいアイコンなのを改善してください!



ふにくら

リンク

2020/9/21(Mon) 11:13:50|NO.91413

beta4の開発お疲れ様です。memfileの動作も直して頂けたようで、大変助かりました。ありがとうございました。

HGIMG4で、picload命令のロードモード1;現在の画面の上にロードを指定しても
バッファが画像のサイズで初期化されている模様です。
dishでも発生し、通常のランタイムでは発生しませんでした。

サンプルコード:

#include "hgimg4.as" : gpreset : setcls CLSMODE_NONE screen 0 gmode 2 buffer 1, 16, 16 gmode 2, 16, 16 pos 0,0 picload "hoge.png", 1 ;16*16以上の画像を読み込み wid = ginfo(12) hgt = ginfo(13) gsel 0 redraw 0 pos 0,0 celput 1 redraw 1 stop

こちらは要望ですが、celload命令でもロードモードを指定できるようにして頂けないでしょうか?



雪月夜

リンク

2020/9/23(Wed) 08:01:34|NO.91435

hsp3_64を使うと,、二バイト文字が文字化けしてしまいます。
Windows10の64bit版OSで上記の現象が発生しました。

#runtime "hsp3_64" mes"あかさたな"
ご確認をお願い致します。



窓月らら

リンク

2020/9/23(Wed) 12:07:14|NO.91437

バグではないのですが、関連としてこちらでご報告します。
HSP3Dishですが、android:targetSdkVersion="30" としたapkを
GooglePlayでアップロードしたところ、以下のエラーとなりました。
API-29(Android 10)までは今までどおりで大丈夫です。

アップロードした APK の署名が無効です(署名の詳細)。apksigner のエラー: ERROR: MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET: Target SDK version 30 requires a minimum of signature scheme v2; the APK is not signed with this or a later signature scheme
翻訳:アップロードしたAPKの署名が無効です(署名の詳細)。apksignerのエラー:エラー:MIN_SIG_SCHEME_FOR_TARGET_SDK_NOT_MET:ターゲットSDKバージョン30には、最低でも署名スキームv2が必要です。 APKはこのまたはそれ以降の署名スキームで署名されていません

参考URL
https://source.android.google.cn/security/apksigning?hl=ja



ゆうき

リンク

2020/9/24(Thu) 04:18:09|NO.91440

ぼくも64bit版で文字化けします



おにたま(管理人)

リンク

2020/9/25(Fri) 21:27:08|NO.91446

多くのご報告とご意見ありがとうございます。
取り急ぎ修正できる部分を反映したバグフィックス版となるHSP3.6β4として公開予定てす。
修正が間に合わなかった部分は、引き続きβ5版で反映できるよう続けていきたいと思います。
引き続きよろしくお願いいたします。

フルセット版をこちらからダウンロード頂けます。
特に大きな問題がないようであれば、近日中に一般公開されます。
https://www.onionsoft.net/wp/download/81/

OneDriveのページから最新のhsp36betaフォルダをダウンロードできます。

HSP3.6β版(OneDrive)のページ
https://onedrive.live.com/embed?cid=EC425522ED849DA7&resid=EC425522ED849DA7%211229&authkey=AB-pNztAqBp6BcU

2020/09/24 3.6 beta4

strrep命令で32Kを超える文字列置き換えを行った際にバッファの内容が壊れる不具合を修正
UTF8のソースが引数付きマクロの展開に失敗することがある不具合を修正
アイコン埋め込み(iconins.exe)がhsp3dishの書き換えに失敗する不具合を修正
コールバックルーチンのエラーチェックからlogmes命令を除外
[HSP3Dish][hsp3js] 200個を超える大量のデータファイルを変換した際にhtmlの変換に失敗する不具合を修正
[HSP3Dish][hsp3js] 日本語の文字列表示でブラウザが応答しなくなる不具合を修正
[HSP3Dish][hsp3js] OBAQ機能の描画が正しく行われなかった不具合を修正
[HSP3Dish][android] リリース時のapk署名に、署名スキームV2が適用されるように修正
[HSP3Dish][Windows] MCI命令をサポート(Windowsプラットフォームのみ)
[HSP3Dish][Windows] screen命令での画面サイズ変更時に.mp3などのループ再生ができなくなる不具合を修正
[HSP3Dish][Windows] celload,picload命令で64文字以上のパス名がエラーになる不具合を修正
[HSP3Dish] 標準スプライトのESDRAW_NOSORTオプションが正しく動作していない不具合を修正
[HSP3Dish] β3版の標準スプライトでスプライト描画後の割り込み時のiparamが正しく設定されなかった不具合を修正
[HGIMG3] HSP3のtype拡張プラグインを指定した場合に正しく動作しないことがある不具合を修正
[HGIMG4] フォントの生成時にメモリリークが起こる不具合を修正
[HGIMG4][Windows] packfileからの読み込み及びdpmファイルに仮対応(Windowsプラットフォームのみ)



おにたま(管理人)

リンク

2020/9/25(Fri) 21:27:44|NO.91447

>法貴優雅 さん

HGIMG3について詳細のご指摘ありがとうございます。
vAudioのプラグインについては動作するようβ4版で修正致しました。
まだ他のランタイムで問題が起こる可能性があるため引き続き調査したいと考えています。
アンチウィルスソフトの反応については、誤検知と思われますが、あまりにも多くのソフトで
誤検知されるようであれば、対応を検討したいと思います。

>MillkeyStars さん

512MBのバッファについて、ご指摘ありがとうございます。
こちらでも検証していますが、動作する時としない時があるようで、まだ完全な調査はできていません。
こちらは引き続き調査したいと思います。

>とあるプログラマ さん

ご指摘ありがとうございます。
おそらくhdlのランタイムが古いために起こっていると思われますので、今後修正していきたいと思います。

>ヒート さん
>ゆうき さん

ご意見ありがとうございます。
hsptmp.exeファイルは標準ではファイルサイズを抑えるために、小さいアイコンしか設定されていません。
もし大きなアイコンが必要な場合は、#packopt iconで独自のアイコンを指定するようお願いします。

>雪月夜 さん

ご報告ありがとうございます。
64bitランタイムを使用する場合は、「#runtime」を使用せず、#include "hsp3_64.as"をご指定ください。
HSP3.6以前では文字コードがUTF-8でなかったため問題なかったのですが、HSP3.6以降では修正して頂ければと思います。

>窓月らら さん

ご報告ありがとうございます。
とり急ぎHSP3.6β4版では、V1とV2の署名を行うように修正しました。
こちらでまだ問題が起こるようであればお知らせ頂けると助かります。



法貴優雅

リンク

2020/9/26(Sat) 11:02:26|NO.91452

おにたま様、開発お疲れ様です。

フルセット版で各種検証したところ、iconins.exeのウィルスの検出はありませんでした。
またvAudioとHGIMG3の同時使用可能なことも確認しましたのでご報告いたします。
(ただしhgimg3を先にincludeしないとエラーになりました)

各種対応ありがとうございます。



youdai

リンク

2020/9/26(Sat) 15:56:37|NO.91454

Windows 2000 SP4でHSP3.6Bate3のスクリプトエディタが起動しませんでした。
HSP3.51では使えたhsed3f1.exeをHSP3.32からコピペして使ってみても起動しませんでした。

動作環境は以下の通りです。

●動作環境
OS Windows 2000 SP4
CPU Pentium III 1 Ghz
メモリ 512 MB
グラボ オンボード

●起動するか試してみたスクリプトエディタ
HSP3.6Bate3で起動するか試してみたスクリプトエディタは以下のものです。
・hsed3.exe(HSP3.6Bate3同梱版)
・hsed3le.exe(HSP3.6Bate3同梱版)
・hsed3f1.exe(HSP3.32同梱版)
これらは全て起動しませんでした。

スクリプトエディタ以外でも以下のものを試してみましたが、起動しませんでした。
・hspcmp.exe(HSP3.6Bate3同梱版)

●エラーメッセージの詳細
スクリプトエディタをHSP3.6Bate3で起動させようとすると、以下のエラーメッセージが出て起動しませんでした。

hsed3f1.exe(HSP3.32同梱版)の場合

hsed3f1.exe - エントリポイントが見つかりません
プロージャエントリポイントDecodePointerがダイナミックリンクライブラリKERNEL32.dllから見つかりませんでした。

hsed3.exe(HSP3.6Bate3同梱版)とhsed3le.exe(HSP3.6Bate3同梱版)の場合

有効な32ビットアプリケーションではありません

●HSP3の他のバージョンの場合
Windows 2000 SP4でHSP3の他のバージョンでエディタが起動するか試してみました。
HSP3.4上の場合、hsed3f1.exe(HSP3.32同梱版)やhsed3le.exe(HSP3.4同梱版)が使えました。実行ファイルも作成できました。
HSP3.5上の場合、hsed3.exe(HSP3.5同梱版)は使えませんでしたが、hsed3f1.exe(HSP3.32同梱版)とhsed3le.exe(HSP3.5同梱版)が使えました。実行ファイルも作成できました。

Windows 2000 SP4で使えないのは、HSP3.6Bate3上のスクリプトエディタだけでした。
今まではバージョンが違ってもhsed3f1.exe(HSP3.32同梱版)や、同梱されているhsed3le.exeが使えたのですが、今回のHSP3.6Bate3ではダメでした。
hspcmp.exe(HSP3.6Bate3同梱版)も使えなかったので、Windows 2000 SP4ではHSP3.6Bate3で実行ファイルを作成する方法がありません。
ぜひ、改善をお願いいたします。



watamario

リンク

2020/9/26(Sat) 23:39:23|NO.91460

初めて書き込みさせていただきます。HSPの開発ありがとうございます。中学の頃初めて触れたプログラミング言語がHSPて、今は主にC++を使用していますが、手軽さから今でもちょっとしたツールを作るときなどに利用させていただいています。

本題ですが、HSP3.6β3及び今OneDriveに上がっているβ4にて、HSP3Dish使用時に文字の位置が指定位置からずれる問題があります。
場面によって度合いがかなり変わるのですが、ほぼ想定通りの位置に表示されるものもあれば、すぐ上の全く同じx座標に指定した画像より大きく右にずれた位置に表示されたり、上端付近に表示されるはずの文字列がど真ん中に表示されたりするものも存在しなかなかカオスな状況になっております。
これはWindows上でもAndroid上でも発生します。なお、3.6β2及びそれ以前では正常に表示されます。
Windows上で見たとき、β3,4では文字のアンチエイリアスがかからなくなっていたり、アニメーションさせると文字サイズが変わったりといろいろと違いは見られますので、おそらく文字表示周辺に大きな変更を加えたのだと思われますが、可能であれば修正いただけると有難いです。



あああ

リンク

2020/9/28(Mon) 10:31:07|NO.91467

エディタがすぐに落ちます
文字を入力したらランダムにすぐに落ちます
開発ができません



窓月らら

リンク

2020/10/4(Sun) 18:43:09|NO.91537

またAvastなのですが、
hsp36b4.zip をダウンロード中に以下のメッセージが出て強制切断されてしまいました。
誤判定とは思いますが、割とよく引っかかります。

脅威をブロックしました
www.onionsoft.net は Win32:Evo-gen [Susp] に感染していたため、接続を中止して安全を維持しました。



窓月らら

リンク

2020/10/4(Sun) 19:12:37|NO.91538

改めて試したところ、zipをダウンロードしながら検査してるようで
またしても hsp3cl.exe が感染の疑いをかけられているようです。

上記、AvastでURLを除外に設定した上でzipをダウンロードし、
解凍してスキャンしたところ検出されませんでした。
ダウンロード中にだけ言われるという不具合みたいです・・・。



窓月らら

リンク

2020/10/4(Sun) 19:31:51|NO.91539

…と思ったら、OS再起動して再スキャンしてみたところ
hsp3cl.exe と hsp3cl.hrt が感染していると言われてしまいました。
こちら、誤検出としてAvastの分析に送ってみました。



おにたま(管理人)

リンク

2020/10/9(Fri) 20:51:40|NO.91572

報告が遅くなりましたが、HSP3.6 beta4版を一般向けに公開させて頂きました。
https://www.onionsoft.net/wp/archives/3274

取り急ぎ修正できる部分を反映したバグフィックス版となります。
引き続きβ5版に向けて修正を続けていきたいと考えています。ご報告とご意見ありがとうございます。

>youdai さん

ご報告ありがとうございます。
Windows2000で起動できないのは、おそらくhspcmp.dll(hspcmp.exeも)が新しいVisualStudioで生成されているためだと思われます。
Microsoftの開発環境では、最低限のOSとしてWindowsXPがオプションとして設定されていますが推奨はされていません。
実行の効率や、メモリの使用サイズを考えるとWindows2000での実行はだんだん難しくなると思われますが、できる範囲で幅広い環境にも対応していきたいと思います。

>watamario さん

HSP3Dishについてのご報告ありがとうございます。
β3版から文字の表示方法が大幅に変更されているため、アンチエイリアスのかかり方などが異なっています。
全体に標準のHSP3ランタイムと同様に修正されていますが、文字の表示位置がおかしくなるスクリプトの例などあれば、ご提示頂ければ調査させて頂きます。

>あああ さん

スクリプトエディタについてのご報告ありがとうございます。
他に同様の報告を頂いていないので、ちょっと原因がわからないのですが、
以前のバージョン(HSP3.6β3など)では正常に動作するでしょうか。
簡易エディタ(hsed3le.exe)が動作するようならば、エディタの設定(レジストリなど)がおかしくなっている可能性があるかと思います。

>窓月らら さん

Avastの検出についてご報告ありがとうございます。
分析データの送付もありがとうございます。



watamario

リンク

2020/10/11(Sun) 16:38:04|NO.91589

>おにたま(管理人) さん
ご回答ありがとうございます。該当スクリプトの一部を抜き出したものになります。

本体ソース :

#include "hsp3dish.as" objsize 128,512 pos 128,104 : button "",*temp repeat redraw 0 color 200,208,208 : boxf color 0,0,0 : font "",96,1 pos 400,8 : mes "Results" redraw 1 await 1000/60 loop *temp stop

hsp3dish.ini :

; hsp3dish settings wx=1280 wy=720 autoscale=0

「Results」という文字を(400,8)の位置を指定して表示しているのにもかかわらず、指定位置よりはるか下に表示されます。
色々いじって試した結果、objsize命令やbutton命令を削除すると正常に表示されたため、どうやらこの問題はobjsize命令を使用してボタンを表示している画面で起こるようです。



窓月らら

リンク

2020/10/11(Sun) 17:18:37|NO.91591

お疲れさまです。
hsp36b4.zip の hsp3cl.exe と hsp3cl.hrt がAvastで誤検出される件ですが
分析に送って濡れ衣が晴れたのか、検出されなくなりました。
以上ご報告まで。



こいる

リンク

2020/10/12(Mon) 16:55:45|NO.91596

エディタのバグ報告です。
以前からあるものですが。


・分割画面で、右クリックメニューが開かない

・分割画面で、オートインデントが働かない


・「ユーザー定義命令・関数を色分けする」が正常に動作しない

// test関数を定義し、teまでしか入力していないのに、色分けがされてしまう など #deffunc test te

・{""}を使うと、「ラベル・関数一覧」の認識位置がずれる

// ラベルは5行目にあるのに、3行目と認識されてしまう {" hoge "} *hoge

・検索で「終わりまで検索しました」のダイアログが出た際、それを閉じなくてもエディタの操作ができてしまい、
 ショートカットキーが効かなくなってしまう


・メニューバーにマウスオーバーしたときに、ステータスバーに表示される説明文が旧エディタのまま

・起動後、無題を開いた状態で、メニューバーの「ウィンドウ」の「無題」を選択したときの
 ステータスバーに表示される説明文が、「ウィンドウを縦横に四分割する」になってしまっている


検討お願いします。



youdai

リンク

2020/10/12(Mon) 23:35:20|NO.91597

hsp3.6bate4の不具合について報告します。

●hgimg3のライトのZ軸回転が全く機能していませんでした
hgimg3のライトのZ軸回転が全く機能していませんでした。
具体的にはライトオブジェクトに対するsetangとsetangrのZ軸回転が全く機能していませんでした。

例えば、

repeat
setangr HGOBJ_LIGHT,0,0,rz
rz++
if rz>255:rz=0
hgdraw
hgsync 16
loop

とやれば本来はシェーディングモード1やモード2のオブジェクトに対しては
針時計を正面から見た時のようにライトの光源が時計回りに回らなければいけないはずですが、
光源は何も変化しませんでした。
ちなみにX軸とY軸の回転であれば反映されました。
Z軸回転が反映されるように修正した方がいいと思います。

●hgimg3のライトオブジェクトに対するsetscaleのマニュアルの記述と実際の挙動の違いについて
hgimg3のライトオブジェクトに対するsetscaleについてもマニュアルでは0〜255の範囲が適用されると書いてありましたが、
実際は0〜511程度までの範囲が適用されました。
例えば0,0,0から徐々に値を上げていくと255,255,255を超えてもまだライトの光源は上がり続け、
511,511,511付近にまで明るさは上昇し続けました。
0〜511の範囲のsetscaleが適用されるシェーディングモードは0と2だけでした。1では変化はありませんでした。
setdirでも0〜511の設定は可能でした。
ちなみにこのsetscaleとsetdirの値の範囲はこのままの方が範囲が広くて都合がいいので、修正しない方がいいと思います。
もしくは可能であれば、オブジェクトが白飛びするくらい明るく光源を設定できれば尚良いと思います。

PC動作環境
OS Windows 10 Pro 64bit版
メモリ 8GB
グラボ Geforce GT740



MillkeyStars

リンク

2020/10/14(Wed) 10:26:51|NO.91616

hspext.as の fxcopy にメモリアクセスエラーが発生しプロセスが落ちる。
http://hsp.tv/play/pforum.php?mode=all&num=91599



猫・子猫

リンク

2020/10/23(Fri) 09:03:01|NO.91674

HSP3Dishエラーチェック
(1)「コンパイラ+実行」→エラー修正、動作チェックを繰り返し

(2)「実行ファイル自動作成」→「実行ファイルを作成しました」
(3)exeファイル実行→「ERROR=21 LINE=-1」

(1)の段階でエラーが出力されないと
HSPの手軽さが失われるのですが、対処方法は?



sin

リンク

2020/10/23(Fri) 11:00:58|NO.91675

hsp3.6bate4で音が鳴らないです。

#include "hsp3dish.as"
mmload "1.wav", 1
mmplay 1

確か前のバージョンではこれで音が鳴っていたと思うのですが、hsp3.6bate4では音が鳴らないです。



youdai

リンク

2020/10/24(Sat) 13:13:30|NO.91680

●HGIMG4のgpload命令のモデルと.materialファイルの分離の提案

現在のHGIMG4のgploadで読み込まれるモデルは、
GPBモデルと.materialファイルが1対1の関係にありますが、これは不便だと思います。

例えば、背景オブジェクトなどの「形だけ異なるが質感(マテリアル)は同じ」10個のモデルに対し、
必要とされる.materialファイルは1つだけで十分という場合もあります。

また、.materialファイルは用途ごとにグループで統一したものを使っていた方が調整に便利です。
例えば、背景オブジェクトの壁用のマテリアルの.materialファイルが1つ、木用の.materialファイルが1つ、
GPBモデルはその限られた統一された.materialから選択するだけ、という具合にです。
この方がマテリアルの管理に便利だと思います。
今現在は個別に1つ1つ.materialファイルを調整するしか、その調整手段がないため、非効率だと思います。

これに対していくつか改善の提案があります。

●改善案その1.モデルと.materialファイルを分離したgpload2命令を新規に作成する

gpload命令は初心者向けにそのまま残しておいて、
GPBモデルと.materialが分離した命令を新規作成してはどうでしょうか。

例えば、

gpload2 id_model,"モデルファイル名.gpb","マテリアル名.material"

といった具合にです。
また、GPBモデルの.materialファイルを動的に変更できる命令も新規作成してはどうでしょうか。

例えば、

cnggpbmaterial id_model,"マテリアル名.material"

といった具合にです。

●改善案その2. .materialに#include命令をつける

.materialファイルそのものには、HSP3でもよく使われている#include命令をつけたらどうでしょうか。
よく使うマテリアルは共通用のものを別ファイルで複数作っておいて、それを#includeで呼び出して繋げて、
そのモデル独自のマテリアルの部分だけ記述するだけで済むようになれば便利だと思います。



おにたま(管理人)

リンク

2020/10/26(Mon) 22:57:38|NO.91694

>watamario さん

ご報告ありがとうございます。確かにおかしいですね。
取り急ぎ修正したバージョンを作成しました。
HSP3.6β版(OneDrive)のページからダウンロードできます。
https://onedrive.live.com/embed?cid=EC425522ED849DA7&resid=EC425522ED849DA7%211229&authkey=AB-pNztAqBp6BcU

今後のバージョンでも修正を反映させていきたいと思います。

>こいる さん

スクリプトエディタについてのご報告ありがとうございます。
今後の修正作業で参考にさせて頂きます。

>youdai さん

HGIMG3についてのご報告ありがとうございます。
まずライトのZ軸回転ですが、初期状態ではHGIMG3ではZ→Y→Xの順序で回転されるため
Z軸回転では向いている方向が変化しません。
modelorderなどで回転順序が変更された場合は、Z軸回転も反映されるかと思います。
ライトに対するスケールは確かにシェーディングモードによって変化します。
マニュアルの範囲を超えて設定できるのも仕様となっています。

HGIMG4についてのご提案もありがとうございます。
.materialファイルは確かに共通の設定やグループ化などができた方が良いですね。
大きな3Dデータなどの場合は、テキストを直接書き換えることは困難なため
最終的にはまだ未完成ですがGPB converter(HGIMG4ツール)上で、プレビューをしながらGUIで編集できる形にしたいと考えています。

>MillkeyStars さん

ご報告ありがとうございます。
hspextについては、かなり昔に作られたこともあり、色々と古くなっていますね。
該当の機能も見直してみたいと思います。

>猫・子猫 さん

ご不便をおかけしてすみません。
exeファイルの実行時にエラー21(サポートされない機能を選択しました)が出るということですが、
こちらでは原因がわかりませんので、エラーが発生するソーススクリプトをサポート( hsp@onionsoft.net )まで送って頂ければ調査させて頂きます。

>sin さん

HSP3Dishについてのご報告ありがとうございます。
以下のようなスクリプトでも再生されないでしょうか?
再生されるようであれば、スクリプトと同じフォルダに.wavファイルがあるか、正常なファイルかなどご確認ください。

#include "hsp3dish.as" mmload "se_tyuiin.wav",1 button gosub "OK",*ok button gosub "END",*bye *main redraw 0 redraw 1 await 1000/30 goto *main *ok mmplay 1 return *bye end



sin

リンク

2020/10/27(Tue) 09:52:04|NO.91697

すみません。
今やったら音が鳴りました。



watamario

リンク

2020/10/29(Thu) 20:56:17|NO.91712

>おにたま(管理人) さん
対応ありがとうございます。自分のプログラムで起こっていた問題は改善しました!
ただ、1つ細かい点なのですが、PC上で動作させたとき、半角句読点を含む一部の記号に続く半角スペースが、1ドットの点で表示される問題があります。PC上でのみ起こることと、1ドットなのでさして目立たないという点からそれほど重要な問題ではありませんが、一応確認いただけると有難いです。

再現コード:

#include "hsp3dish.as" repeat redraw 0 font "",48,1 pos 16,8 mes ". R; e s, u: l[ t] s" redraw 1 await 1000/60 loop

hsp3dish.ini:

; hsp3dish settings wx=640 wy=480 autoscale=0



youdai

リンク

2020/10/30(Fri) 08:59:43|NO.91714

不具合を報告します。
HGIMG4DXでプロ生ちゃんだけが表示されない不具合が発生しました。

PCの動作環境
OS:Windows 10 Pro 64bit版
CPU:i7 S860 2.53GHz
メモリ:8GB(DDR3)
グラボ:Geforce GT740(DDR3 2GB版)

HSP3のバージョン
HSP3.6bate4

●HGIMG4DXでプロ生ちゃんだけが表示されない
サンプルのpronama_box.hsp、pronama2〜5.hspをHGIMG4DXで実行してみたところ、
プロ生ちゃんのモデルだけが表示されず、他の部分だけが表示されるという不具合が発生しました。
ちなみに通常版のhgimg4.asの方では同不具合は発生しませんでした。

サンプルソースは#includeの対象をhgimg4dx.asに変更しただけですので、ソースの問題ではないと思います。
resフォルダの中身及び位置も変更ありません。dx版に関係する.dll等も同フォルダにコピペしてあります。
実行ファイル化しても結果は変わりませんでした。

サンプルのタマネのモデルや、自分で作成したモデルについてはこの問題は発生しませんでしたが、
これは偶然実行できただけかもしれません。

これは単なる予想で確証はなにもないのですが、
プロ生ちゃんは.materialのJOINTのCOUNT数がタマネや自分で作成したモデルに比べて大きいので
もしかしたらそれが関係しているのかもしれません。
ただ、自分はJOINTが何を意味する命令なのか分からないのでこれ以上の検証はできませんでした。

hgimg4では使えて、hgimg4dxでは使えないモデルの形状や、マテリアルなどがあるということでしょうか?



砂時 計

リンク

2020/10/31(Sat) 17:46:58|NO.91718

私のオンボードグラフィックス環境の Intel UHD Graphics でも
↑同様に hgimg4dx でだけ
プロ生ちゃんだけが表示されない現象が再現されました。

pronamachan_l.material で
渡すジョイント行列数を
SKINNING_JOINT_COUNT 187 から
SKINNING_JOINT_COUNT 80 へ減らすと
前半のボーンの影響を受けるメッシュの表示は
されるようになりました。
81以降のボーンの計算ができなくなるため
後半のボーンの影響成分はすべて潰れてしまい
こわい見た目になりますが;;

おそらく uniform で渡せるデータ量の限界に
ひっかかってしまっているのではないかと推測しています。


JOINT はざっくりいうと関節に相当し
スキニングを実現するために
モデルの関節の数ぐらい必要になります。
このジョイントの数だけ
メッシュを計算するための情報が
シェーダーに送られ描画されます。



youdai

リンク

2020/11/6(Fri) 15:04:21|NO.91750

HGIMG4についての要望を報告します。

●HGIMG4のZバッファを画像情報としてバッファに読み込める命令が欲しい
HGIMG4のZバッファの情報をグレースケール等の画像情報としてバッファに読み込める命令が欲しいです。
それがあれば、そのグレースケールを係数として使って、ポストモダンで色々なことができると思います。
例えば遠くの方をボカすための係数として使えば簡易的な焦点距離画面効果として使えますし、
明度係数として使えば簡易的な「近い部分が明るくて、遠い部分が暗い」画面効果として使えると思います。

●コリジョンをsetscale等で変更できるようにして欲しい
HGIMG4では現在、コリジョンがsetscaleに対応していませんが、これを対応できるようにして欲しいと思います。
これで自由な形でコリジョンが形成できるようになれば、当たり判定作成がずっと楽になると思います。

こういうような命令があればいいと思います。

・コリジョンを仮に再設定する命令colsetscale
・コリジョンを実際に再設定して反映する命令colupdate

colsetscaleで個々にコリジョンを仮再設定して、
それをcolupdateで、そのタイミングでまとめて反映させるという形です。

一番良いのは、GPBモデルのポリゴンがコリジョンとして使えるのが良いと思います。
例えば、見た目用にモデルを1つ登録しておいて、その当たり判定用に単純な形のコリジョン用のモデルを登録するという風にです。
これができるようになれば、例えば、マップの見た目用モデルを1つ作って、
コリジョン用モデルを1つ作って配置するだけで簡単にマップが作成可能になります。
もちろん、このコリジョン用GPBモデルもsetscaleでコリジョンを再設定できると、なお良いと思います。

もっと踏み込んで言えば、見た目とコリジョンを最初からシステムとして完全に分離してしまった方が、扱いやすいと思います。
2Dでは見た目とコリジョンが同じ方が感覚的に分かりやすいかと思うのですが、3Dではそれだと処理が重くなりすぎて使いにくいからです。

●砂時 計さんへの返信
砂時計さん返信ありがとうございます。
自分も同様にJOINT関連の設定を当てずっぽうで試してみて、同様のことが起こっていました。
JOINTの解説ありがとうございます。



youdai

リンク

2020/11/11(Wed) 17:28:57|NO.91781

●gameplay-encoder.exe Encode version: 3.1.0 hspgpの不具合について
hsp3.6bate4に同梱されるgameplay-encoder.exe(Encode version: 3.1.0 hspgp)が
Blender2.79〜2.90.1から出力されるFBXファイルをGPBファイルに変換しません。
正確には、ノードを読み込まず、全て1KBのGPBに変換してしまいます。

PCの動作環境は以下の通りです。

OS:Windows 10 Pro 64bit版
CPU:i7 S860 2.53GHz
メモリ:8GB
グラボ:Geforce GT 740

変換に使用したモデルは、メッシュの猿のSuzanneです。
マテリアルはBlender2.79では標準マテリアル、Blender2.80〜2.90ではプリンシブルBSDFを使いました。

以下、試したFBXのバージョンシリーズです。

●試したFBXバージョンシリーズ
・Blender 2.79 FBX 6.1 ASCII
・Blender 2.79 FBX 7.4 バイナリ

・Blender 2.83.8 FBX
・Blender 2.90.1 FBX
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2013バイナリでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2012バイナリでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2011バイナリでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2010バイナリでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2009バイナリでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2006バイナリでコンバートしたもの

・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2013 ASCIIでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2012 ASCIIでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2011 ASCIIでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2010 ASCIIでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2009 ASCIIでコンバートしたもの
・Blender 2.90.1 FBXをFBX Converter 2013.3 FBX 2006 ASCIIでコンバートしたもの
・Blender 2.90.1 FBX Addon Unity FBX version1.3.1

●過去のgameplay-encoder.exeとの比較結果

hsp3.51に同梱されるgameplay-encoder.exe Encode version: 3.0.0 hspgp

・上記のFBXバージョンシリーズ全てエンコード可能。
・gameplay-encoder.exe 3.0.0でエンコードしたGPBファイルは一応、hsp3.4bate4のHGIMG4でも使用可能だが一部表示に不具合あり?(自分で確認した限りでは一部スペキュラー部分に乱れる角度あり)
・バージョンによって出力されるモデルの大きさとファイルサイズに違いあり

hsp3.6bate4に同梱されるgameplay-encoder.exe Encode version: 3.1.0 hspgp

・上記のFBXバージョンシリーズ全てエンコード不可能。
・ノードを読み込まず。
・唯一読み込んだFBXはhsp3.6bate4に同梱されるhigh_school_girl.fbxのみ。
・hsp3.6bate4に同梱されるhigh_school_girlSD.fbxの方はノードを読み込まず、エンコード不可能。

つまり、Blender2.79〜2.90.1から出力されるFBXファイルは
gameplay-encoder.exe Encode version: 3.0.0 hspgpではGPBに変換可能で、
gameplay-encoder.exe Encode version: 3.1.0 hspgpでは変換不可能となっているようです。
high_school_girl.fbxとhigh_school_girlSD.fbxが何のツールで出力されたFBXかは不明です。

今まで自分はhsp3.51に同梱されるgameplay-encoder.exe 3.0.0で変換したものを、
hsp3.6bate4で騙し騙し使ってきたのですが、
hsp3.6bate4のHGIMG4では表示が一部乱れる場合もあるようです。
ただし、それがgameplay-encoder.exeのバージョン違いで起きるバグなのかは不明です。

gameplay-encoder.exeの出力の仕方ですがコマンドプロンプトから直接呼び出す形にしました。
オプションは指定していません。
ツールのGPB conberter ver.0.6を通しても、いくつかのFBXバージョンで試しましたが結果は同じでした。

今回の実験ではGPBファイルが誤作動で1KBで出力されているか、もしくはそれ以上の大きさで(1KB以上で出力された場合は正常とみなしました)出力されているか
どうかを確かめただけで、モデルが正常に出力されているかどうかの細かいチェックはしていません。
また、.materialについてはどういう.materialが仕様通りの出力なのか不明なので実験でも出力しませんでした。
(ちなみに普段は.materialは試行錯誤しながら自分で書いてます)

今回の不具合が、Blender側の設定の問題なのか、
gameplay-encoder.exe 3.1.0側の問題なのかは分かりませんでした。
少なくとも、同じファイルがgameplay-encoder.exe 3.0.0ではGPBに変換できたので、
gameplay-encoder.exe 3.1.0の問題だと自分は思いました。

今までこの非常に根本的な問題の報告をしてこなかった理由は、FBXコンバータのどれかを通せばなんとかなるだろうと思って放置していたことと
gameplay-encoder.exe3.0.0を使えばとりあえずモデル出力されるからいいやと思っていたからでした。
実際にはどのコンバータを通してもBlender2.79〜2.90.1から出力したFBXは、gameplay-encoder.exe3.1.0ではGPBへは正常に変換されませんでした。



アキアキノヒロロ

リンク

2020/11/11(Wed) 21:20:25|NO.91782

私も、HSP付属のGPBコンバーターで色々と悩んだ一人です。

以前の私のスレ、
「GPBコンバーターでの変換(3.6β2付)」
で、あれこれ、組合せを変えて試した報告をしました。

youdaiさんがおっしゃる「gameplay-encoder.exe」とは、

「HSP3.51」付属のGPBコンバーターで使っている、「gameplay-encoder.exe」[3.0.0]
「HSP3.6bate4」付属のGPBコンバーターで使っている、「gameplay-encoder.exe」[3.1.0]

ということと考えていいでしょうか?
すなわち、[3.0.0]と[3.1.0]の違いとは、「HSP3.51」付属か、それとも「HSP3.6bate4」付属のどちらのGPBコンバーターを使うかの違いということと考えていいでしょうか?

結論から申しますと、以前あれほど悩ましかったにも関わらず、何故か、どちらのGPBコンバーターを使っても、high_school_girl.fbxとhigh_school_girlSD.fbx、
どちらも正常に変換され、「HSP3.6bate4」で読込み再現されます。Blender2.79〜2.90.1から出力した自作のFBX(自分の場合[2.82])も、「HSP3.6bate4」付属GPBコンバーターで正常変換、
「HSP3.6bate4」で正常読込み再現、となっています。アニメーションも通っています。もちろん、「tga」は「png」に変換し、「material」のパスを書換えました。

ということで、今現在、あまり問題を感じなくなっているのですが。



youdai

リンク

2020/11/12(Thu) 18:26:13|NO.91789

>ということで、今現在、あまり問題を感じなくなっているのですが。
gpbconv.exeがgameplay-encoder.exe3.0.0のものに繋がっている、ということはないでしょうか?
HSP3のエディタがhsp3.6bate4のものではなく、例えばhsp3.51のものになっているとしたら、
それはgameplay-encoder.exe3.0.0に繋がっていることになります。
するとそれは結果的には正常に出力されているように見える。
でも実際には3.1.0で出力したわけではない・・・という可能性もありえます。

今回の実験でgpbconv.exeではなく、hsp3.6bate4のgameplay-encoder.exe 3.1.0をコマンドプロンプトから直接起動した理由は、
その関係による何らかの誤作動の影響も勘案したからです。

ただ、上記の自分の推測が見当違いの場合、完全に行き詰まりです。
特にアキアキノヒロロさんの方のhigh_school_girlSD.fbxが3.1.0で変換できて、自分の方ではできないのは
Blenderはもう全く関係ないのでその関係ではないというのが分かります。



ゆうき

リンク

2020/11/12(Thu) 18:28:22|NO.91790

HSPだけコード補完がないのは悲しいです
是非機能追加をお願いします!



ゆうやん

リンク

2020/11/12(Thu) 20:48:07|NO.91791

strexchangeファイル出力をUnicodeに対応してもらえないでしょうか?
HSPディレクトリーのsample/new36の中にある、
strex_test2.hspを使用して、UTF-8で記載されたソースファイルをstrexchangeで出力しようとすると、出力されたファイルが文字化けします。
Shift_Jisなら文字化けしないと思いますが、環境依存文字が使えないため不便です。
対応お願いします。



アキアキノヒロロ

リンク

2020/11/12(Thu) 20:48:22|NO.91792

youdaiさんへ

自分のパソコンには、「HSP3.51」「HSP3.6bate2」「HSP3.bate3」「HSP3.6bate4」が
全て別々にフルセットの形で入っています。
「gameplay-encoder.exe 3.1.0をコマンドプロンプトから直接起動」ということが
私にはうまく出来そうになく、これらがどこかで繋がっているかもとの懸念を私も抱いたので、
今入っている「HSP3.51」「HSP3.6bate4」それぞれに付属のGPBコンバーターで確認するとともに、
あらたにダウンロードした「HSP3.51」「HSP3.6bate4」のものでも確認した結果が、前に上げた
報告(NO.91782)でした。

以前から私も悪戦苦闘していた「GPBコンバーター」が、今現在、あまり問題を感じなくなっていて
不思議なくらいなんですが、事実です。自分の今までの様子は先に上げたスレ
「GPBコンバーターでの変換(3.6β2付)」(NO.89533〜NO.91220) の流れです。



おにたま(管理人)

リンク

2020/11/13(Fri) 20:42:55|NO.91796

>youdai さん
>アキアキノヒロロ さん

FBXファイルについてのご報告ありがとうございます。
こちらでもBlender 2.90.1を使用してデータを出力してみました。以下はテストで使用したファイルとなります。
https://www.onionsoft.net/hsp/file/hgimg4monkey.zip

youdaiさんが作成したblenderのデータ詳細はわからないのですが、有効なマテリアルのないモデルはgameplay-encoderで読み込まれないため、gpbに出力されていないのではないかと思われます。
こちらで試した限りでは、デフォルトのシーンにMonkeyを追加してスケールを0.01としたFBXを出力したデータは、.gpbに変換されているようでした。(モデル名、マテリアル名が文字化けするので英語に修正しています)
正しく出力されない原因ははっきりしませんが、参考にしてみてください。

hsp3.6β版に同梱されているgameplay-encoder 3.1.0は、HSP3.51など古いバージョンのHGIMG4で使用することは想定されていないため、データが正しく読み込まれない可能性があります。
できる限り、hsp3.6の新しいバージョンに同梱されているgameplay-encoderを使用して頂ければと思います。

GPBコンバーター(gpbconv.exe)ですが、これは同じフォルダにあるgameplay-encoder.exeを呼び出すためのGUIツールという位置付けですので、gameplay-encoder.exeとまったく動作は変わりません。
もしわからない場合は、FBXかblendファイルを共有して頂ければこちらでも調査させて頂きます。

また、HGIMG4DXでプロ生ちゃんだけが表示されない不具合につきまして、こちらでも同様の症状を確認しています。
DirectXで動作させる際にAngleというライブラリを使用しているのですが、その上で動作させる際の問題ではないかと思われます。
プロ生ちゃんは確かにボーンの数(マトリクスパレットの数)が多いので、GPU環境によってサポートされていない可能性がありますが、理論的にはOpenGLと同様に動作可能なはずなので、方法がないか調べてみたいと思います。

その他、コリジョンやZバッファ参照についてのご意見もありがとうございます。
確かにその通りだと思います。ご提案のように活用できるよう検討していきたいと思います。



アキアキノヒロロ

リンク

2020/11/14(Sat) 04:55:32|NO.91797

私は、「コリジョン」と「物理設定/挙動」を時々混同、勘違いしてしまうクセがあります。

「物理設定」による「挙動」は、オブジェクトどうしの衝突を検出したときに、その後の
オブジェクトどうしの動きを作り出すもの、と捉えていますが、もしこの捉え方でよいならば、
youdaiさんの「コリジョン」に対する要望の検討が進められると、現状の「物理設定/挙動」における
不自然さ(3Dオブジェクトgpbモデル用のバウンディング球)の解消につながるのでは、などと
期待してしまいます。
直接、「物理設定」命令そのものの改良は叶わなくとも、youdaiさんの要望する「コリジョン」判定を
使って、衝突後のオブジェクトどうしの動きをプログラム上で作り出すことが出来そうに思えてきます。



ゆうやん

リンク

2020/11/15(Sun) 09:01:34|NO.91799

hsp3utfでmmplayが正常に動作しません。
mmloadでファイルサイズが2MB超なら問題無いと思うのですが、2MB以下のファイルを読み込んでmmplayで再生しようとしても、音がなりません。
修正お願いします。
http://hsp.tv/play/pforum.php?mode=pastwch&num=85106



youdai

リンク

2020/11/15(Sun) 17:08:28|NO.91801

返信ありがとうございます。
GPBの変換に関する検証の続きを報告します。

●HSP3.6bate4のgameplay-encoder.exe version 3.1.0の不具合仮説

Blender2.79〜2.90.1から出力したFBXが正常なGPBに変換されない不具合の
検証結果の続きを報告します。

結果だけ先に書くと、Meshオブジェクトが1つだけのFBXは、
gameplay-encoder.exe version 3.1.0でノードが0個と誤認識され、
その結果、正常にGPBに変換されないようです。
これは検証した限りでは、どのようなメッシュ形状でも同様のようです。

Meshオブジェクトが2つ以上のFBXの場合は、ノードが正常に認識され、
その場合、正常にGPBに変換されるようです。

●monkey.fbxの検証

おにたまさんから提供して頂いたhgimg4monkey.zipのmonkey.fbxですが、
こちらをHSP3.6bate4のgameplay-encoder.exe version 3.1.0で変換した所、
正常にGPBに変換されました。

●monkey.blendの検証

hgimg4monkey.zipのmonkey.blendと、自分が検証用に使っていたファイルの違いについて説明します。

まず、monkey.blendですが、


Collection Camera (カメラオブジェクト) Cube (メッシュオブジェクト/マテリアル:material適用) Light (ライトオブジェクト) Monkey (メッシュオブジェクト/マテリアル:material2適用)

という内容でした。
ここで重要なのはメッシュオブジェクトの数です。

例えばこれを、


Collection Monkey (メッシュオブジェクト/マテリアル:material2適用)

と変更して、FBXとして出力して、gameplay-encoder.exe version 3.1.0で変換すると
ノードが読み込まれず、1KBのGPBとして出力されるようです。

自分が検証用に使っていたファイルは、この後者と同様の
メッシュオブジェクトが1つだけのFBXファイルでした。

●回避方法

この不具合の回避方法も発見しました。
それは、実体のない空のメッシュオブジェクトを対象のオブジェクトとは別に1つ作成することです。

例えば、


Collection Cube (メッシュオブジェクト/頂点数0) Monkey (メッシュオブジェクト)

というように作成して、これをFBX出力すれば
メッシュオブジェクトが1つ(のように結果的に見える)のFBXでも、
gameplay-encoder.exe version 3.1.0でもGPBに変換できるようです。

●参考
検証のため、意図的に返還誤作動が起きるFBXとその元となる.blendファイルを作成しました。
seikouが変換成功する例、sippaiが変換失敗する例です。

http://youdaizone.webcrow.jp/hsp3/gpbsample.zip

●その他の不具合 gsquareのHSP3通常版、Dish版、HGIMG4版ごとの動作の違いとDish版、HGIMG4版での中央が右側に寄る不自然な歪みについて

この不具合はgsquareの検証中に気がついたものでした。
HSP3通常版、Dish版、HGIMG4版ごとの実際の動作の違いについては、
この圧縮ファイルの中にソースファイルとしてまとめてあるので
実行してみるのが一番分かりやすいと思います。

http://youdaizone.webcrow.jp/hsp3/gsquare.zip

gsquareの検証

結果だけ先に書くと、gsquareはHSP3通常版、Dish版、HGIMG4版の
それぞれで別々の動作をしているようです。

●gsquareの検証結果

HSP3.6bate4 通常版 仕様通りに動作。

HSP3.6bate4 Dish版 変形すると中央が右側にズレる不自然な歪み。

HSP3.6bate4 HGIMG4版 変形すると中央が右側にズレる不自然な歪み、なおかつ上下反転状態で表示される。HGIMG4DX版でも同様。

●gsquareの検証方法

HSP3.6bate4の通常版、Dish版、HGIMG4版を
gsquareに関係する部分が同一のソースで比較検証しました。

検証用の画像は、HSP3.6bate4に同梱されたhsp3ttl.jpgに
画像の中心位置が分かりやすいように線を描き加えた
hsp3ttl_kai.jpgを使用しています。

実際にソースを動作させる場合は、HSP3.6bate4の
スクリプトエディタを使用してください。

ソース一覧
hsp3.hsp HSP3.6bate4 通常版
hsp3dish.hsp HSP3.6bate4 Dish版
hgimg4.hsp HSP3.6bate4 HGIMG4版
hgimg4_fix.hsp HSP3.6bate4 HGIMG4版のgsquareのY軸座標を反転させたもの

動作PC環境
OS:Windows 10 Pro 64bit版
CPU:i7 S860 2.53GHz
メモリ:8GB
グラボ:Geforce GT 740

●hgimg4_fix.hspについて

hgimg4_fix.hspは、gsquareのY軸座標を反転させたものです。
こうするとHSP3通常版、Dish版と結果的に同じ動作をします。

予想なのですが、HGIMG4のgsquareのY座標は
3次元のXYZのYと同一になっているのではないでしょうか?
通常版とDish版のY座標は、+で下へ、-で上へ行く訳ですが、
三次元のHGIMG4のY座標は、+で上へ、-で下へ行きます。

このHGIMG4のgsquareの座標は、こういう仕様なのでしょうか?

●変形すると中央が右側にズレる不自然な歪みについて

DishとHGIMG4のgsquareの
変形すると中央が右側にズレる不自然な歪みについては、
値を工夫しても改善することはできませんでした。
この歪みについては、DishとHGIMG4でも通常版と同様の
変形にしてほしいと思います。



こいる

リンク

2020/11/15(Sun) 21:59:45|NO.91804

hsedsdk.asの、
hsed_getmajorver、hsed_getminorverの2つが正常に動作しません。
その影響で、hsed_cnvverstrも正常に動作しません。

// 再現用 #include "hsedsdk.as" hsed_getver hsedVer, HGV_PUBLICVER mes strf("0x%x",hsedVer) mes "メジャー: "+hsed_getmajorver(hsedVer) mes "マイナー: "+hsed_getminorver(hsedVer) hsed_cnvverstr hsedVer mes "文字列 : "+refstr

こう定義されていますが、

#define global ctype hsed_getmajorver(%1) (%1 >> 16 & 0xFFFF) // 16〜32 #define global ctype hsed_getminorver(%1) (%1 >> 8 & 0xFF) // 8〜16

hsed_getver命令で取得できる形式からして、こうではないでしょうか?

#define global ctype hsed_getmajorver(%1) (%1 >> 12 & 0xFFFFF) // 12〜32 #define global ctype hsed_getminorver(%1) (%1 >> 8 & 0xF) // 8〜12


また、ヘルプの、hsed_getver命令のHGV_PUBLICVERのところの説明が、
実際に取得できる形式と違います。

// バージョン取得 #include "hsedsdk.as" hsed_getver hsedVer, HGV_PUBLICVER mes strf("0x%x",hsedVer) </ore> 修正お願いします。



法貴優雅

リンク

2020/11/24(Tue) 22:24:43|NO.91851

hsp3dish.jsなのですが、Windowsではエラーもなく動くのに
JavaScriptに変換したものを、動かそうとすると多々エラーになります。

例えばバイナリデータからpeekでデータを1つづつ読み込んでいる際
最初は正常に読めているのに、途中で急にエラーになるということがあります。
(Windows版では問題なく動きます)
#Error 3 in line 1999 (CPZL03.as)
-->Illegal function call
のような感じです。

あとは埋め込み文字を自動でunicodeに変換しているのでしょうか?
ShiftJISが前提の自前のコードで文字化けになってしまいます。
オプションで内部の文字コードを変換しないようにできませんでしょうか?



K-s

リンク

2020/11/25(Wed) 02:26:26|NO.91853

3.6β4のhgimg4にて、日本語のないフォント?を指定してmesで複数行文字列を描画しようとすると
応答なしになりました。

#include "hgimg4.as" font "arial", 18 ;font msgothic, 18 *mainLoop redraw 0 pos 0, 0 mes "複数行かつ\nフォントに日本語がないと落ちる?" redraw 1 await 16 goto *mainLoop



猫・子猫

リンク

2020/11/25(Wed) 08:33:21|NO.91854

次Ver要望
「珠音ちゃんサンプルゲーム TamaHouki」
のWEBでの動作(コンパイルからWEBに登録するまでの一連の作業)を
解りやすいドキュメントを希望します
・データ管理
・Dish Helperについて



youdai

リンク

2020/12/3(Thu) 21:13:46|NO.91872

●fvminとfvmaxのマニュアルの誤記について
 マニュアルの誤記について報告します。
 HSP3のバージョンは、HSP3.6bate4です。

 HGIMG4のfvminはベクトル「最大値(max)」を取得する機能を持っていますが、
 hgimg4.htmlの説明には「最小値(min)まで切り詰める」とあります。
 命令の名前も本当はfvmaxでないと名前と機能が一致しないのではないでしょうか?

 同じことがfvmaxでも該当します。
 こちらはベクトル「最小値(min)」を取得する機能を持っていますが、
 hgimg4.htmlの説明には「最大値(max)まで切り詰める」とあります。
 こちらも本当はfvminでなければ名前と命令が一致しないのではないでしょうか?

 それに対して、HSPのコマンドヘルプには

fvmax ベクトル最大値
fvmin ベクトル最小値

 との記載があります。実際は上記したように、逆の機能を持っています。

 これらは命令の名前と実際の機能と説明が
 どこかで入れ替わってしまっているのだと思います。

 これらはコマンドヘルプ通りに、
 fvmaxをベクトル最大値に、fvminをベクトル最小値にした方がいいと思います。
 それともベクトルという概念は小さい方が最大で、大きい方が最小なのでしょうか?


hgimg4.htmlの記載 fvmin fv,x,y,z ベクトル最大値 fv = FV値が代入される変数名 (x,y,z) = 比較値(実数値) fvで指定された変数に格納されているFV値と、 小数値(X,Y,Z)を比較して、値の大きいものを代入します。 FV値の各要素を最小値までに切り詰める場合に使用します。 fvmax fv,x,y,z ベクトル最小値 fv = FV値が代入される変数名 (x,y,z) = 比較値(実数値) fvで指定された変数に格納されているFV値と、 小数値(X,Y,Z)を比較して、値の小さいものを代入します。 FV値の各要素を最大値までに切り詰める場合に使用します。



法貴優雅

リンク

2020/12/17(Thu) 22:42:41|NO.91944

微妙にHSPそのものとは異なるのかもしれませんが
HSP3DISHのAndroidにてAdMobの規約の変更に伴い
現状のバナー形式では、ポリシー違反となるらしく
私が公開していたアプリの広告配信が停止となりました。
(アプリ自体が配信停止になる訳ではなく、単純に広告の配信が停止されるだけです)

お手数ですがAdMobの規約違反にならないように広告配信できるよう
変更修正をお願いいたします。



あり

リンク

2020/12/20(Sun) 10:09:40|NO.91964

以下のスレッドで報告されていますがこちらには挙がっていないようなので
http://hsp.tv/play/pforum.php?mode=all&num=91898

HSP3.6の標準スプライト機能の表示がes_areaの有効エリアの右下Y座標の値に関わらず
スクリーンサイズの横幅分までしか反映されていないようです。
(スクリーンサイズの横幅以下の値なら正しく反映される)



アキアキノヒロロ

リンク

2020/12/25(Fri) 04:03:23|NO.91999

HGIMG4 のライトの設定 と コリジョン判定 が、「HGIMG4プログラミングガイド」やヘルプにある解説通りになりません。
[gpuselight] でライトの切替えができない、衝突しているのに [getcoli] でコリジョン判定で検出できないのです。
それぞれについては、NO.91929「HGIMG4のライトの設定」、NO.91998「HGIMG4 の コリジョン判定」を参照願います。



法貴優雅

リンク

2020/12/28(Mon) 22:09:11|NO.92007

HGIMG4でsetobjmodeのラベルと内容が異なっていませんか?
OBJ_HIDEを指定しても消えず、OBJ_XFRONTやOBJ_WIREを指定すると
オブジェクトが消えます。



Drip

リンク

2020/12/29(Tue) 04:11:03|NO.92008

Dripです。
法貴優雅さん、こんにちは。

私の方では仰る状況が再現できないのですが、
以下のスクリプトでもプレートの表示状態と表示されるステータスが異なるでしょうか?
プレート以外でもgpbオブジェクトでも検証しておりますが私の環境では正常に動作しているように見えるのですがいかがでしょうか。

//※※resフォルダの存在するディレクトリで実行しないと真っ白かエラーになります。※※ #include "hgimg4.as" gpplate plt,40,30,$77AAFF //プレートを3枚適当な角度で生成 gpplate plt(1),30,40,$AA77FF:setang plt(1),2.0,2.0 gpplate plt(2),60,20,$FFAA77:setang plt(2),0,3.15 ang=0.0 //現在のカメラの中心からの角度 font msgothic,20,1 xfront=0 //正面属性の現在の状態 hide=0 //非表示属性の現在の状態 st="OFF","ON" //状態表示用文字列 repeat //メインループ //90・190フレームごとに正面属性のON/OFFを行い、290・390フレームごとに非表示属性のON/OFFを行う if cnt\400=90 | cnt\400=190:xfront=(xfront+1)\2:repeat 3:setobjmode plt(cnt),OBJ_XFRONT,(xfront=0):loop if cnt\400=290 | cnt\400=390:hide=(hide+1)\2:repeat 3:setobjmode plt(cnt),OBJ_HIDE,(hide=0):loop ang+=0.1 //中心から見たカメラの位置を示す角度 setang GPOBJ_CAMERA,0,ang,0 //カメラを中心に向ける setpos GPOBJ_CAMERA,sin(ang)*100,,cos(ang)*100 //カメラの座標を角度に応じて設定(ぐるぐる回す) redraw 0 //属性の状態を描画 pos ginfo_winx/2-100,100:color ,,xfront*255:mes "OBJ_XFRONT: "+st(xfront) pos ginfo_winx/2-100,130:color ,,hide*255:mes "OBJ_HIDE: "+st(hide) gpdraw redraw 1 await 16 loop



youdai

リンク

2020/12/29(Tue) 04:15:39|NO.92009

HSP3.6bate4のHGIMG4のgpcameraの誤作動について報告します。

gpcameraが平行投影の場合、アスペクト比率パラメータが全く反映されていません。

例えば、


screen 0,800,600,0 gpcamera camid, 50, 1.333333, 0.5, 200, 1

のスクリーンサイズの場合、スクリーン上は本来は4:3の画面比率で表示されていなければならないはずなのですが、実際にはアスペクト比率設定は適用されず、横方向に潰れた画面比率で表示されてしまっています。
アスペクト比率パラメータは反映されていません。


screen 0,1024,576,0 gpcamera camid, 50, 1.5, 0.5, 200, 1

この場合でも同じく横方向に潰れた画面比率で表示されてしまっています。
アスペクト比率パラメータは反映されていません。


screen 0,512,512,0 gpcamera camid, 50, 1, 0.5, 200, 1

この場合のみ正しい画面比率で表示されます。
一見するとアスペクト比率パラメータが正しく反映されていそうですが、実際にはこの場合、アスペクト比率パラメータにどんな数値を設定しても1:1の比率で表示されます。

つまり、gpcameraが平行投影モードの場合、設定したアスペクト比率に関係なく、アスペクトの比率がスクリーンに対し、強制的に1:1になってしまっているのです。
これは非常に問題で、1:1の比率のスクリーン以外は平行投影が使えないことを意味します。

gpcameraが平行投影の場合でもアスペクト比率が適用されるよう修正お願いします。



法貴優雅

リンク

2020/12/29(Tue) 08:34:38|NO.92010

Dripさん返信ありがとうございます。
私のsetobjmodeの使い方が間違っていました。
ですので、NO.92007の記事は無しでお願いいたします。
失礼いたしました。



アキアキノヒロロ

リンク

2021/1/12(Tue) 12:32:30|NO.92048

おにたまさん、ライトに関してご対応頂いているとのこと、ありがとうございます。ご苦労様です。

 「次回のβ版ではライトの設定を更新できる命令が追加される予定です。
 また、ポイントライト、スポットライトなども含めて複数のライトを反映させる機能も盛り込んでいます...」

これだけでも、非常に嬉しく思うのですが、ポイントライト、スポットライトも可能になるということは、
それ以前に、メインの平行投影モードのライトに関して、その平行光源の向き(ベクトル)の操作も出来そうに思うのですが、
そのようなご対応は予定されているのでしょうか。
もしそうであるなら、太陽の動きに合わせた陽光変化のような表現等もできるのでは、などと思うのですが。
素人考えの無理な要望であれば、素直にひっこめます。

あれこれと、あちこちで失礼なことを申し上げているようで、すいません。



雪月夜

リンク

2021/1/12(Tue) 15:25:32|NO.92049

HGIMG4を用いると、bufferの後にscreenを宣言するとgcopyの行でエラーが起きてしまいます。

#include "hgimg4.as" ;screen 0,640,480 ;正常 buffer 2,320,240,screen_offscreen color 255,255:boxf screen 0,640,480 ;エラー gsel 0 redraw 0 pos 0,0 gcopy 2,0,0,320,240 redraw 1



雪月夜

リンク

2021/1/12(Tue) 15:43:34|NO.92050

HGIMG4で複数のbufferを作成すると、描写処理が行われなくなります。
hgimg3.asをインクルードした場合は正常に動くので、こちらもバグだと思われます。

#include "hgimg4.as" screen 0,640,480 buffer 2,320,240,screen_offscreen color 255,255:boxf buffer 3,160,120,screen_offscreen color 255:boxf gsel 0 redraw 0 pos 0,0 gcopy 2,0,0,320,240 gcopy 3,0,0,160,120 redraw 1



アキアキノヒロロ

リンク

2021/1/12(Tue) 16:40:06|NO.92054

雪月夜さんへ。これでは、ダメですか。

#include "hgimg4.as" screen 0,640,480 buffer 1,320,240,screen_offscreen buffer 2,160,120,screen_offscreen ;━━ [buffer 1] ━━━━━━━━━━━━━━━━━━━━━━━━ gsel 1 redraw 0 gpdraw ; シーンの描画 color 255,255:boxf redraw 1 ;━━ [buffer 2] ━━━━━━━━━━━━━━━━━━━━━━━━ gsel 2 redraw 0 gpdraw ; シーンの描画 color 255:boxf redraw 1 ;━━ [メイン画面用] ━━━━━━━━━━━━━━━━━━━━━━━━ *mainLoop gsel 0 redraw 0 gpdraw ; シーンの描画 pos 0,0 celput 1,,1.0,1.0 celput 2,,1.0,1.0 redraw 1 await 1000/60 ; 待ち時間 goto *mainLoop



雪月夜

リンク

2021/1/12(Tue) 17:52:16|NO.92057

buffer内の描写を行った後はredrawをしないといけないのですね…

アキアキノヒロロさん、ありがとうございます!
おかげ様でHGIMG4の仕様が少しだけ理解できました。


それと追加報告ですが、
redrawのタイミングによってはちらつきが発生してしまってしまいます。

#include "hgimg4.as" screen 0,640,480 buffer 1,320,240,screen_offscreen gsel 0 ;━━ [メイン画面用] ━━━━━━━━━━━━━━━━━━━━━━━━ *mainLoop redraw 0 ;エラー gsel 1 color 255:boxf redraw 1 gsel 0 ;redraw 0 ;正常 pos 0,0 celput 1,,1.0,1.0 redraw 1 await 1000/60 ; 待ち時間 goto *mainLoop



アキアキノヒロロ

リンク

2021/1/12(Tue) 19:07:28|NO.92058

雪月夜さんへ。基本的には以下のようになると思います。

#include "hgimg4.as" screen 0,640,480 buffer 1,320,240,screen_offscreen //gsel 0 ; ここは要らない ;━━━━━━━━━━━━━━━━━━━━━━━━━━ *mainLoop // redraw 0 ; ここではなく、[gsel 1]の下に gsel 1;━━ [buffer 1 用] redraw 0 ; 描画先[gsel 1]を指定した後に、[redraw 0](= 描画開始) gpdraw ; シーンの描画(これを省略しても出来るようだが、基本としては必要?) color 255:boxf redraw 1 ; (= 描画終了) gsel 0;━━ [メイン画面用] redraw 0 ;正常 gpdraw ; シーンの描画(これを省略しても出来るようだが、基本としては必要?) pos 0,0 celput 1,,1.0,1.0 redraw 1 ; (= 描画終了) await 1000/60 ; 待ち時間 goto *mainLoop



TOMATO

リンク

2021/1/14(Thu) 05:30:23|NO.92069

UTF-8版ランタイムにて、mesboxやinputが32768文字以上の場合、
メモリ確保が想定よりも足りないためクラッシュします。
(一時的に確保・使用されるUTF-16文字列を格納する変数のメモリサイズが足りない)

http://hsp.tv/play/pforum.php?mode=all&num=92062



とっしー

リンク

2021/1/14(Thu) 19:39:22|NO.92078

とっしーです。

新しくやってみたけれど、
セキュリティーでうまく起動できず、離陸フォルダに移動されてしまいます。



アキアキノヒロロ

リンク

2021/1/22(Fri) 16:57:10|NO.92120

エディタについての要望です。

「3.6」からでしたか、エディタの分割表示が出来るようになりました。
もしかしたら、以前にも要望したかもしれませんが、分割表示したどの窓でも、編集が可能になるといいのですが。
現在の仕様では、「切り取り/コピー/貼り付け/削除」等が可能なのは、上(or左or左上)の窓でのみです。
なので、他の箇所を参照しながらプログラムすることはできますが、「コピー/貼り付け」等のやり取りが出来ません。
特に、プログラムの行数が大きくなってくると、2分割表示でいいので、これが可能になると、格段に効率がよくなるのですが、自分だけでしょうか。

エディタについては、以前一時期、よく話題に上ったように記憶していますが、最近は目にしません。
自分の使いやすい、他のエディタを探して使うなり、自作するなりしろ、と言われそうですが。
考慮して頂けると、うれしいです。



アキアキノヒロロ

リンク

2021/1/23(Sat) 12:29:26|NO.92134

やはり、「以前にも要望」していました。「HSP3.51p」からでした。失礼しました。

http://hsp.tv/play/pforum.php?mode=pastwch&num=84916



法貴優雅

リンク

2021/1/24(Sun) 23:34:00|NO.92146

HGIMG4にてOBJ_BORDERが設定されているオブジェクトに
OBJ_HIDEを設定するとsetborderの領域を無視するのは仕様でしょうか?
できることならsetborderを有効にしてほしいです。



法貴優雅

リンク

2021/2/3(Wed) 19:44:45|NO.92208

HGIMG4で、バッファーに描画したmesが拡大縮小されません。
…逆にどういう処理になってるんでしょうか?

#include "hgimg4.as" GX = 1920 GY = 1080 SX = 640 SY = 480 screen 0, SX, SY, 0 gpreset buffer 1, GX, GY, screen_offscreen + screen_usergcopy setcls CLSMODE_SOLID, $808080 setpos GPOBJ_CAMERA, 0, 2, 5 gpbox id_box, 0.5, 0xFF0000 setpos id_box, 0, 3, 0 gppbind id_box, 1, 0.5 gpfloor id_floor, 300,300, $404040 gppbind id_floor, 0 font msgothic, 64 repeat gsel 1 redraw 0 gpdraw color 255, 255, 255 objcolor 16, 16, 16 pos 8, 8:mes "12345678", mesopt_outline redraw 1 gsel 0 redraw 0 pos 0, 0:gzoom SX, SY, 1, 0, 0, GX, GY redraw 1 await 1000/60 loop



アキアキノヒロロ

リンク

2021/2/5(Fri) 21:55:35|NO.92217

法貴優雅さんへ

私は万年初心者なので、理論的なことは分かりませんが、

> setreq SYSREQ_USEGPBFONT,0//1
[0]=[font 設定可](HSP3.6β3以降の方式)
[1]=[font 設定不可](hsp3.6β2までの方式)

の命令によるもののように思えます。

最初に、「hsp3.6β3」以降のエディタ(β3/β4)の場合を見てみます。
mesの拡大縮小の縦横比の変化も分かり易いようにと、
「GX = 1920」を、「GX = 192」と言うように [buffer 1]を縦長にしてやってみました。
そして、「gsel 1」の中での [mes] 命令の前に、この命令
> setreq SYSREQ_USEGPBFONT,1
を入れてみると、法貴優雅さんの想定したものになっていて、違いが分かります。
縦長の[buffer 1]に表示した文字は、
横幅が「960/192」へと、元の「5」倍に
高さが「640/1080」へと、元の「0. 59....」倍に
というように、横長の文字になって表示されました。これでいいのでは?
この命令がない場合は、[0]=[font 設定可]の状態ということになっている訳でしょう。
この命令は [mes] 命令の前に入れることで可能で、言い換えれば、[mes] 命令とセットで使うもので、かつ、それ以前の [font] 命令を参照します。

次に、「hsp3.6β1」のエディタの場合を見てみます。
法貴優雅さんのもので、「GX = 1920」を「GX = 192」にしたものを実行してみると、うまくいきません。
「hsp3.6β1」では、主画面サイズが既定でもって「960x640」になってしまい、その中の[pos 0,0]に、[screen 0 (gsel 0)]が表示されてしまいます。
で、分かり易いように、「SX = 960 : SY = 640」に直します。
そして、「hsp3.6β1」では、「setreq SYSREQ_USEGPBFONT」は機能しないので、この命令を[1]=[font 設定不可]として記述しても変わりません。
これでもダメです。何故かと言うと、[mes] 命令で参照される [font] 命令が [gsel 1] の中にないからでしょうか。
[font] 命令は、[gsel] 命令がある場合、その[gsel] 内でのみ機能するようです。外にあると、その [gsel] 命令で無効化されて、既定の設定で[mes]が実行されてしまうんでしょうか。
このあたりはよく分かりませんが、[font] 命令を[gsel 1] 内に移動すると、法貴優雅さんの想定したものになっています。
(なお、「hsp3.6β2」のエディタでは、主画面サイズは指定できますが、やはり「setreq SYSREQ_USEGPBFONT」は機能せず、[font] 命令を[gsel 1] 内に移動しないと、ダメです。)

一方、「hsp3.6β3」以降のエディタだと
> setreq SYSREQ_USEGPBFONT,1
は、 [gsel 1] の外(メーンループの外)にあっても、結果が同じになりますが、これは、この命令がメーンループの外にあれば、メーンループ全体で機能するから、当然 [gsel 1] 内でも有効になっているからでしょう。
紛らわしいので、この命令は、「hsp3.6β3」以降では、[font] 命令、[mes] 命令とセットで使うようにしたほうがいいと思います。


ここまでのことしか言えませんが、ご参考までに。



アキアキノヒロロ

リンク

2021/2/6(Sat) 01:40:13|NO.92219

追記です。

> setreq SYSREQ_USEGPBFONT,0//1
[0]=[font 設定可](HSP3.6β3以降の方式)
[1]=[font 設定不可](hsp3.6β2までの方式)

というのは、分かりにくくて、勘違いします。

「HSP3.6β3」以降( = 「HSP3.6β3」以降のエディタによるプログラム)では、

> setreq SYSREQ_USEGPBFONT,0
= [TTFフォントのサポート可能状態](TTFフォント表示方式になる)
> setreq SYSREQ_USEGPBFONT,1
= [TTFフォントのサポート不可状態](hsp3.6β2までの文字表示方式になる)

ということで、「HSP3.6β3」以降では、わざわざこの命令を記述しなくても、
[TTFフォント表示方式]となっています。
では、[0]指定でこの命令を記述するのは、どういう時かというと、
[1]指定の命令で [mes] した後、「TTFフォント表示方式」に戻して [mes] しようとする場合です。

> setreq SYSREQ_USEGPBFONT,0//1
に関しては、おにたまさんのスレッド「HSP3.6β1テストのお願い」の
「NO.89216」「NO.89252」「NO.89274」「NO.89250」
を参照願います。
[font] 命令と [gsel] 命令の関係は、
「NO.89216」における、スクリーンサイズ変更と画像バッファの関係についての解説が関わっているのか、とも思いますが、よく分かりません。



法貴優雅

リンク

2021/2/6(Sat) 13:16:52|NO.92220

アキアキノヒロロさん、検証して頂き
誠にありがとうございます、色々参考になりました。

ですが、やりたいことは独自フォントを使って描画を行いたいので
残念ながら「旧バージョン」や「setreq SYSREQ_USEGPBFONT,1」は選択肢にないです。

やりたいことはHGIMG4で独自フォントを使いバッファーの画像を
拡大縮小してスクリーンに描画したいです。

#include "hgimg4.as" #include "gdi32.as" GX = 320 GY = 180 SX = 1280 SY = 720 onexit *_exit notesel buf noteload "Makinas-4-Square.otf" AddFontMemResourceEx varptr(buf), strsize, 0, varptr(pcFonts) hFont = stat screen 0, SX, SY, 0 gpreset buffer 1, GX, GY, screen_offscreen + screen_usergcopy setcls CLSMODE_SOLID, $808080 setpos GPOBJ_CAMERA, 0, 2, 5 gpbox id_box, 0.5, 0xFF0000 setpos id_box, 0, 3, 0 gppbind id_box, 1, 0.5 gpfloor id_floor, 300,300, $404040 gppbind id_floor, 0 //setreq SYSREQ_USEGPBFONT, 1 repeat gsel 1 redraw 0 gpdraw color 255 boxf 0, 0, 64, 64 color 255, 255, 255 objcolor 16, 16, 16 font "マキナス 4 Square", 60, font_antialias pos 0, 0:mes "テスト1234567890ABC", mesopt_outline redraw 1 gsel 0 redraw 0 pos 0, 0:gzoom SX, SY, 1, 0, 0, GX, GY redraw 1 await 16 loop *_exit RemoveFontMemResourceEx hFont end



アキアキノヒロロ

リンク

2021/2/8(Mon) 18:33:03|NO.92230

法貴優雅さんご提示の問題、バッファーに描画したmesの拡大縮小についての続きになります。

おにたまさんの「HSP3.6β1テストのお願い」 NO.89250 に

> HSP3Dishと同様にフォント文字列をテクスチャに描画してキャッシュする形
> システムリクエストにより従来のfont.gpbによる表示と切り替えができる

とあるところから、考えました。

= 瓠"hgimg4.as" で [gpdraw] する必要のない、文字専用バッファ [buffer 2] を設けて、そこに文字表示しておき、すなわち「キャッシュする形」をとっておく。 [gsel 2] ( = 主画面 [screen 0] と同サイズ)

=◆瓠,気蕕法∧源以外全部専用としてのバッファ [buffer 1] を別に設け、そこに "hgimg4.as" で [gpdraw] する。[gsel 1] ( = 本来の拡大縮小の元となる画面なので、そのサイズ)

== そして主画面 [screen 0] に [buffer 1] を [gzoom] か [celput] で拡大縮小コピーし、その上から [buffer 2] を同倍率かつ透明色付きコピーモード [gmode 2] で [celput] する。

これで、"hgimg4.as"用の元画面を拡大縮小表示した主画面に、キャッシュによる文字の拡大縮小表示がされるはずです。

ただ、どうしても、透明色付きコピーモードになりません。ここで詰まりました。とりあえず、文字表示範囲のみ切り出してコピーしています。悪しからず。
また、文字専用バッファ は、[mainLoop] の前に出して [redraw] した方がいいかも知れません。

なお、私には、法貴優雅さんの「notesel buf」以下の4行がよく理解できないので、「マキナス 4 Square」をダウンロードして、コントロールパネルのフォントフォルダに入れてやっています。

#include "hgimg4.as" #include "hsp3dish.as" #include "gdi32.as" GX = 320 GY = 180 SX = 1280 SY = 720 ;………………………………………………………………… // [gzoom] でなく [celput] を使うため、横/縦方向の表示倍率(実数)を取得 zoomx = 1.0 * (SX / GX) zoomy = 1.0 * (SY / GY) ;………………………………………………………………… onexit *_exit /* ;………………………………………………………………… notesel buf noteload "Makinas-4-Square.otf" AddFontMemResourceEx varptr(buf), strsize, 0, varptr(pcFonts) hFont = stat ;………………………………………………………………… */ screen 0, SX, SY, 0 gpreset buffer 1, GX, GY, screen_offscreen + screen_usergcopy buffer 2, SX, SY, screen_offscreen + screen_usergcopy setcls CLSMODE_SOLID, $808080 setpos GPOBJ_CAMERA, 0, 2, 5 gpbox id_box, 0.5, 0xFF0000 setpos id_box, 0, 3, 0 gppbind id_box, 1, 0.5 gpfloor id_floor, 300,300, $404040 gppbind id_floor, 0 //setreq SYSREQ_USEGPBFONT, 1 ;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 *mainLoop title "Mes_W = "+Mes_W+" / Mes_H = "+Mes_H ;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ;━━文字専用バッファ [gsel 2] ━━━━━━━━━━━━━━━━━━━━━━ // [SX x SY] = [1280 x 720] [screen 0] と同じ大きさのバッファを // [gmode 2] = 透明色付きコピーモードで、[gsel 0] に [celput] するため、 // [color : boxf] 黒色で塗りつぶしておき、ここに本来の "マキナス 4 Square" かつ // 本来の大きさ [60] で、本来の位置 [pos 0, 0] に [mes] する // 文字表示のみなので、[gpdraw] なし gsel 2 redraw 0 color : boxf color 255, 255, 255 objcolor 16, 16, 16 font "マキナス 4 Square", 60, font_antialias, 6// [outline=6]として明瞭化 pos 0, 0:mes "テスト1234567890ABC", mesopt_outline ;………………………………………………………………… Mes_W = ginfo_mesx : Mes_H = ginfo_mesy // 利用を試みるも、うまく出来ない // [font "マキナス 4 Square", 60]の場合、プリントスクリーンして測ると、 // 文字表示範囲の大きさは、[540x48]ほどになるようだが、 // 取得値は、[ginfo_mesx = 540 : ginfo_mesy = 59] になっている ;………………………………………………………………… redraw 1 ;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ;━━文字以外全部専用バッファ [gsel 1] ━━━━━━━━━━━━━━━━━━ // "hgimg4.as" 用であるので、[gpdraw] 必須 gsel 1// [GX x GY] = [320 x 180] の大きさのバッファ redraw 0 gpdraw color 255 boxf 0, 0, 64, 64 redraw 1 ;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ;━━主画面 [screen 0] ━━━━━━━━━━━━━━━━━━━━━━━━━━ // コピー表示のみなので、[gpdraw] なし gsel 0 redraw 0 pos 0, 0:gzoom SX, SY, 1, 0, 0, GX, GY// [buffer 1] ;==================================================文字表示範囲[540x48] gmode 2// = 透明色付きコピーモードで、[celput] を使う pos 0, 0:gzoom 540*(SX/GX), 48*(SY/GY), 2, 0, 0, 540, 48// [buffer 2] 文字部分 // pos 0, 0:celput 2, 0, zoomx, zoomy// [buffer 2] 全体 pos 0, 450:gzoom 540*(SX/GX), 48*(SY/GY), 2, 0, 0, 540, 48// [buffer 2] 文字部分 // [pos 0, 450] のものは、透過の様子見のために、意図的にずらしたもの ;================================================== ;………………………………………………………………… // 本来の文字表示範囲確認用に、プリントスクリーンするため // [gsel 0] にそのままを直接文字表示(但し、黄色) /* color 255, 255, 0 objcolor 16, 16, 16 font "マキナス 4 Square", 60, font_antialias, 6// [outline=6]として明瞭化 pos 0, 50:mes "テスト1234567890ABC", mesopt_outline */ ;………………………………………………………………… redraw 1 ;━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ await 16 goto *mainLoop ;〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓 *_exit // RemoveFontMemResourceEx hFont end



窓月らら

リンク

2021/2/10(Wed) 12:03:29|NO.92238

Windows10環境において、
wait命令が異常動作(waitが入らない?)するケースを確認しています。
(どうやらawaitは大丈夫みたい?)

ただし原因がよくわかっておらず再現性がありません。
Windows10環境を連続でそれこそ1ヶ月とかつけっぱなしにすると
発症することがあるというのはわかっています。
これはOS側で何か不具合が起きてる可能性が高いため、
HSP側でやれることは無いかもしれませんが一応ご報告しておきます。
現時点ではawait命令に置き換えて対処しています。



アキアキノヒロロ

リンク

2021/2/12(Fri) 15:22:28|NO.92253

法貴優雅さんご提示の問題、別スレをたてても検討してみていますが、

> HSP3Dishと同様にフォント文字列をテクスチャに描画してキャッシュする形

が根本のところだと思われます。
「HSP3Dish」では、スマホ等主画面の大きさは固定されているため、指定された文字表示は、主画面と同じ大きさのバッファに、その文字設定で画像としてキャッシュされるのではないでしょうか。
しかし、パソコン等では、主画面の大きさが変えられるため、この方法だと、キャッシュ用のバッファを[screen 0] の大きさに揃えないと、本来の文字設定の大きさでの画像キャッシュが出来ません。
なので、HGIMG4で [gpdraw] したバッファを主画面に拡大縮小表示することは出来ても、その同じバッファに文字表示したものは、その時点で、すでにそのバッファの大きさに合わせて拡大縮小表示されてしまっているのでは、と思います。
これを主画面に拡大縮小表示すれば、結局、元の大きさに戻ってしまいます。[font] 命令されたと同時に、キャッシュ用として未使用のバッファが主画面と同じ大きさで作られ、キャッシュされていると考えれば、筋が通ります。
このことは、バッファにHGIMG4で [gpdraw] し、なおかつそのバッファに文字表示したものを主画面にそのままの大きさでコピーしてみると、わかります。このことを
> setreq SYSREQ_USEGPBFONT, 1
した時と、コメントアウトした時とで比べてみて下さい。コメントアウトする、または「setreq SYSREQ_USEGPBFONT, 0」すると、文字が本来の文字設定の大きさになっていません。バッファの大きさに合わせて拡大縮小表示されているとしか思えない大きさです。

ただ、
> HGIMG4で独自フォントを使いバッファーの画像を拡大縮小してスクリーンに描画
のための方法は、まだ検討中です。



法貴優雅

リンク

2021/2/12(Fri) 19:13:37|NO.92256

アキアキノヒロロさん、さらに検証して頂きありがとうございます。

代替え案としては、画像は正常に拡大縮小されるので、しまくろねこさんの
「mod_picmes.as」を使えばできると思います。

ただ、それを使わず、通常の命令で行いたかったので
バグだと思い、ここに報告しました。



アキアキノヒロロ

リンク

2021/2/14(Sun) 11:34:34|NO.92268

法貴優雅さん、
しまくろねこさんの「mod_picmes.as」を使って、オフスクリーンバッファ上のHGIMG4での独自フォントの、主画面への拡大縮小透過表示が可能であること、確認致しました。
別スレをご参照頂けると、うれしいです。



ふにくら

リンク

2021/2/14(Sun) 11:47:52|NO.92269

開発お疲れ様です。
setreq命令でSYSREQ_CLSMODE(画面クリアフラグ)を設定する際、HGIMG4では0(クリアしない)に設定できないようです。
dishでは設定できました。
以下サンプルコードです。

#include "hgimg4.as" gpreset : setcls CLSMODE_SOLID,0 : screen 0 setreq SYSREQ_CLSMODE,0 celload "hoge.png", 0 bufid = stat gmode 2 redraw 0 : gfilter 2 pos 0,0 celput bufid redraw 1 redraw 0 : gfilter 2 pos 100,100 celput bufid redraw 1



アキアキノヒロロ

リンク

2021/2/15(Mon) 07:10:47|NO.92271

たびたびのことで、恐縮です。
オフスクリーンバッファ上のHGIMG4での独自フォントの、主画面への拡大縮小透過表示、についてです。

[setcls 0] しておき、その代わりとして、「HGIMG4」描画用[buffer] では、背景用ノードで画面背景を覆い隠すように設定。
文字専用[buffer] を [color : boxf] ではなく、[cls 4] (黒)でクリアで、文字描画。
この文字専用[buffer] を、別の拡大縮小文字専用[buffer] に拡大縮小コピー。
主画面に、「HGIMG4」描画用[buffer] を拡大縮小コピー。
[gmode 2] で、拡大縮小文字専用[buffer] を黒色透過コピー。
これで、通常の命令でもって、法貴優雅さんの求めることが出来ました。

[setcls 0] がキモになります。詳しくは、別スレをご参照願います。



アキアキノヒロロ

リンク

2021/2/18(Thu) 08:40:26|NO.92285

バッファーの拡大縮小透過について、色々やっていて気付いたことです。

[gmode 4] は、指定色透過とし、他の部分を指定ブレンド率で半透明合成するコピーモードですから、ブレンド率=256 でやれば、指定色部分のみの透明化ができるはずで、[gmode 2] の黒色透過と同じものになると思うのですが。

"hgimg4.as"で実行すると、指定ブレンド率が正常に反映されず、指定色透過のはずが、この指定色部分も指定ブレンド率で合成されてしまっているように見えます。"hgimg4.as"では、[gmode 3] [gmode 4] の違いが認められず、同様の症状です。
で、ブレンド率=1 としてやってみる。( 0 指定では実行されないので)
すると、"hgimg4.as"での動きのある毎回描画では、描画が重なっていってしまいます。
どうも、透過指定色の指定ブレンド率での [setcls, 1] が実行されてしまうようにも見うけられますが、よく分かりません。



記事削除

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

NO.91014への返信

マスコット

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

名前

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

削除用パスワード

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

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