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


HSPTV!掲示板


未解決 解決 停止 削除要請

2022
0202
テクノけいさつhsp3dishのcelputで、表示倍率マイナス指定時に1ドットずれる7解決


テクノけいさつ

リンク

2022/2/2(Wed) 23:02:06|NO.95295

初めて投稿します。

celputのzoomx,zoomyパラメータにマイナスを指定すると画像が反転すると思いますが、
hsp3dishの場合のみ、上と左に1ドットの表示ずれが発生するように思います。
(celdivで分割した上、左の画像が1ドット表示される)

※hgimg4や、通常のhsp3では発生しないようです。
※現象はhsp3.6、hsp3.7betaで確認しました。
※標準エディタ上での実行でも、実行ファイル作成後のexe実行でも発生します。

celput使用時の作法などがありますでしょうか?
もしくは既知の仕様?でしょうか。

例えば下記サンプルをそのまま(dish)実行すると現象が発生します。
1行目のコメントを外し、2行目をコメントして(hgimg4)実行すると、正常に表示されます。


;#include "hgimg4.as" #include "hsp3dish.as" screen 0,320,320,0 buffer 1,512,512,0 celload dir_exe+"\\sample\\hsptv\\hsptv_img.png",1,0 celdiv 1,64,64,0,0 gsel 0 redraw 0 color 0,0,0:boxf pos 196,196 celput 1,22,-1,-1,0 //zoomx,zoomyにマイナス指定 redraw 1

ご教授いただけると幸いです。



この記事に返信する


zrs90(5さい)

リンク

2022/2/3(Thu) 03:32:00|NO.95299

スマホ投稿者です。

Windows7 pro32ビット HSP3.6でも
動作確認しましたが、同じでした。

osの拡大鏡を使って、画像を見ましたが
ご指摘の通り、倍率パラメータに
マイナス指定した場合
画像がずれて表示されました。

サンプルの最終行に追加して
タイトルバーに、ginfo_cx、ginfo_cy
を表示させた所、dish、hgimg4 とも
同じ位置が表示されました。


celput 命令の倍率パラメータに
マイナス指定で、画像反転出来る
仕様がある事も、知りませんでした。
マニュアル等には、記載がなかったので
最初、この方法自体を疑ってました。

(※↑この件は、celput 命令を使ったサンプルで
倍率パラメータにマイナス指定している物が
あった為、使用出来る事が、分かりました。)

私の個人的な意見ですが (※間違いならすみません)
Android 、iOS 上では、分かりませんが
恐らく、Windows版 Dish の不具合では
ないかと思われます。

他の方のご意見も、聞いてみたいので
情報提供をお願いします。


●追記
偶然か、この celput 命令 Twitter(※メルクーフさん投稿)
でも別件で話が出ていて、回転角度が90、180°でも
ロスレス回転が出来ないらしい。
(※こちらは、ただの仕様かも)



zrs90(5さい)

リンク

2022/2/3(Thu) 04:10:45|NO.95300

少し関係がありそうな感じの、投稿を過去板で
見つけたので貼って置きます。

回転と同じような処理を画像反転も、
行っているなら、今回の件と
何らかの関係があるのではないかと...

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



zezenana

リンク

2022/2/3(Thu) 08:44:58|NO.95301

> テクノけいさつ さん

>hsp3dishの場合のみ、上と左に1ドットの表示ずれが発生するように思います。

上記について、私も最近調査していたのでコメントさせて頂きます。

これは、zrs90(5さい) さんの記載した過去URLにもあるように
8年前から存在する Win版 Dishの celput命令未サポート項目(不具合)です。

当時の回答には、付属ドキュメントに書かれた「仕様なので・・」とありますが、
明らかに本来取得するセルデータの画像座標が(-1,-1)しています。

結果、HSP3Dish(win)自体を修正してもらうのを待つしかないのが現状です。
まあ既に8年も経過しているので正式に報告する必要がありそうですが。。

検証としてサンプルを少し改良しました(セルNoも変更)


;#include "hgimg4.as" #include "hsp3dish.as" screen 0,320,320,0 buffer 1,512,512,0 celload dir_exe+"\\sample\\hsptv\\hsptv_img.png",1,0 celdiv 1,64,64,0,0 gsel 0:gmode 2 redraw 0 color 255,0,255:boxf:color 255,255 pos 40,10:mes "x-1.00",4 pos 120,10:mes "x1.50",4 cno=21:cx=(cno\8)*64:cy=(cno/8)*64 pos 100,100:celput 1,cno,-1.00,-1.00,0 pos 100-64,102:gzoom -64,-64,1,cx,cy,64,64,0 pos 120,40:celput 1,cno,1.50,1.50,0 pos 120,42+96:gzoom 96,96,1,cx,cy,64,64,0 redraw 1

マイナス(x-1.00)では反転画像の取得座標が(-1,-1)ズレています。
左のドット色は海マップの青色と同じ、上のドット色は透過と帽子の茶色で
PNGと一致しているようです。

ちなみに拡大(x1.50)では拡大画像の取得座標が(-1,-1)ズレており、
左のドット色は拡大でアンチエイリアス処理されていますが、
城マップの地面色と同じで上のドット色も海マップの青色なので
PNGと一致しています。倍率を変えてもズレ量は(-1,-1)固定のようです。

-----
>celput使用時の作法などがありますでしょうか?
>もしくは既知の仕様?でしょうか。

既知の仕様ではないです。ドキュメントにも記載はありません。
Dishは Win版含めプラットフォームごとの利用者が少ないためか、本件含め問題や不具合が
取り扱われにくい気がします(まあ、私が検索下手なだけかもですが。。)

celput命令は正等倍で使う分には問題が無いですが、それだと意味ないですね。。

セルの外周に1ドットの間隔を設けてグラフィック制作する方法もありますが、
celdivに余白の設定は無いですし、キャラなど背景透明なものには良いですが、
マップデザインのような全面カラードットで埋まるものに対応できません。

今回のマイナス値に限った対応ですが、影響しない程度の少数を付けることで(-0.99や-1.01など)
取得位置がズレて直る?ようです。ただこれは不具合を利用した対策です。
ちなみにこの対策は拡大には対応できません。

他にはサンプルのように、gzoom命令で回避ができますが、回転は対応していません。
セルナンバーの管理や中心座標は別に組まないといけません。
命令変更による処理速度の低下?があるかは未検証です。

色々と書かせて頂きましたが、参考になりますでしょうか?



usagi

リンク

2022/2/3(Thu) 16:55:22|NO.95304

私もセルやスプライトの反転機能はすごく欲しいなぁと思ってまして。

おそらく、反転コピーとマイナス拡大は考え方が違っている事が起因なのかと考えてます。
テクスチャを使った表示で同じ問題にあたった事があって、
まずテクスチャが座標uが以下の並びだとして
0, 1, 2, 3

反転に対応していればこのような逆順になりますから
イメージした感じかと思います。
3, 2, 1, 0

マイナス拡大は-1を掛ける訳ですから以下の参照になり。
0,-1,-2,-3

テクスチャがリピートしていると考えると
0(-4), 1(-3), 2(-2), 3(-1), 0, 1, 2, 3
ですから、参照されるのは1ズレた形になります。
0, 3, 2, 1


その時はテクスチャの参照座標ではなく2Dだけと3Dとして表示して
ポリゴン座標を反転(y軸180度)裏面も描画などで回避してました。

ソース見ないと正しい事は分かりませんが、dishとhgimg4の違いも
その様な事なのかなぁ。。。と考えてます。

現状、反転したい場合は、1ドット周辺を透明色か、hgimg4を使うで回避してますが、
反転オプションに対応してもらえるといいなぁと思ってます。



テクノけいさつ

リンク

2022/2/4(Fri) 00:11:30|NO.95305

zrs90(5さい) さん
zezenana さん
usagi さん

ご教授ありがとうございます。
過去のドキュメントには記載があり、今は記載ないのだとすると、修正漏れ?なのかもしれませんね。
3.7betaのスレッドがありますので、念のため、そちらの方に一報入れさせていただく事にします。

今回の件、私はcelputでのアニメーションツールを作成中で、そこで画像の回転、反転等をしている中で気が付きました。
zrs90(5さい)さんの仰るtwitterの件は存じませんでしたが、dishで画像回転をさせると、時々hgimd4に比べて画像が荒くなるポイントがあるような気はしていました。

ご意見参考にさせていただきます。ありがとうございます。



zrs90(5さい)

リンク

2022/2/4(Fri) 01:23:13|NO.95308

私は、ただのヤジウマ的な者で、本来は
zezenana さん、usagi さん、メルクーフ さん
のように、実力、動作検証等が出来る方々が
発言する所へ、図々しく勝手に入っている
だけです。

後、拡大縮小の処理については、掲示板下の
検索から、celput で検索すると
代わりの方法が、載っています。
(※2019〜2020辺りの投稿だったと思います。)


zezenana さん、usagi さん、メルクーフ さん
、テクノけいさつ さん
(※ 皆様のおかげで、celput 命令の反転等の
的確なアドバイスや、色々な事を、勉強させて
頂きました。ありがとうございました。)



zrs90(5さい)

リンク

2022/2/4(Fri) 02:44:30|NO.95309

補足。

●上で書いた、拡大縮小は、回転処理も入ってます。
忘れてました。


●Twitterについては、hsp.tv トップページ 右上
hsp公式Twitter から調べると、hsp3以外の
他(多言語)、3DCG等の制作ツール等
を習得しておられる方や
dish上での Android、iosアプリ、hsp3dish.js
hgimg4 での開発等に成功しているとか
hspプログラムコンテスト常連者の
方々の つぶやき を見られます。

hsp掲示板と、時間のある時は、
両方見ておくと良いと思います。

(※私は、SNS系は、誤爆が怖いので
見るだけですが。)



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