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


HSPTV!掲示板


未解決 解決 停止 削除要請

2019
0908
もろhspswを導入するとjoyGetPosExが機能しない15解決


もろ

リンク

2019/9/8(Sun) 18:30:16|NO.88376

hspswを導入してSteamの実績まわりの実装をしようとしたのですが、steaminitを入れるとjoyGetPosExを利用したジョイコン対応コードが動かなくなります。
調べたところ、どうもWindowsAPIのjoyGetPosExが機能しなくなっているようで、だましだまし動かしているレベルの知識だと対策がよく分かりません。
どうしたらよいかわかる方、いらっしゃるでしょうか?

なお、
https://wiki.hsp.moe/%E5%B0%8F%E3%83%AF%E3%82%B6%EF%BC%8F%E3%82%B8%E3%83%A7%E3%82%A4%E3%82%B9%E3%83%86%E3%82%A3%E3%83%83%E3%82%AF.html#
このページのジョイスティック入力モジュールを使っています。



この記事に返信する


もろ

リンク

2019/9/9(Mon) 14:56:01|NO.88382

追伸

・いちおうパッドの存在を認識しているが、キー入力を検出していない。
・hmmのパッド検出命令だと検出してくれるが、こっちはPOVを検出できないので使うわけにもいかない。仕組みもDLLのため覗けない。

hmmの命令以外は、そもそも同じコードを母体にしているのか色々そっくりで、steaminitを記述することで軒並み動かなくなりました。



法貴優雅

リンク

2019/9/9(Mon) 19:15:48|NO.88383

私の環境(Win10Pro64bit)では、joyGetPosExが機能しなくなるという現象は起きてないです。
ただ使用しているモジュールがmod_joystick.asですが内部的にはjoyGetPosExを使用しています。

下記の単純なスクリプトでstatは何を返しますか?
またパッドのボタンを押したとき、nの値は変わりますか?

あとPADIDが0でなければ、ご自分の環境の番号にしてください。


#include "hspsw.as" #include "mod_joystick.as" PADID = 0 steaminit : res=stat if res : dialog "STEAM環境がありません。終了します。("+stat+")" : end *main redraw 0 color 255,255,255 : boxf : color 0,0,0 jstick n, PADID pos 0,0 : mes "stat:" + stat + " n:" + n redraw 1 await (1000 / 60) goto *main



もろ

リンク

2019/9/9(Mon) 19:46:49|NO.88385

返信ありがとうございます。

statは0、ですが、nが操作を反映せず何をしても0のままでした。
steaminitをコメントアウトするとnが操作を反映するようになりました。

他の方は再現していないというのも貴重な情報で、ほんとありがとうございます。
とり急ぎご連絡まで。



もろ

リンク

2019/9/9(Mon) 19:54:32|NO.88386

なお自分はWindows10homeの64bit、特殊なところといえばプロセッサがAMDなとこでしょうか。



法貴優雅

リンク

2019/9/9(Mon) 21:57:25|NO.88388

ジョイコンってBluetooth接続でしたっけ?
ちょっと環境がないので、テストできないです。

USBのコントローラーなら、うまく動くという前提で
よいのでしょうか?

必要ないかもしれませんがパッドIDをチェックするコードを書いておきます。
statが0なら使用できるパッドIDです。


#uselib "winmm.dll" #func _joyGetPosEx "joyGetPosEx" int, var jdata.15 = 0 jdata = 52, 255 repeat 30 _joyGetPosEx cnt, jdata mes "No." + cnt + " stat:" + stat loop



法貴優雅

リンク

2019/9/9(Mon) 22:47:34|NO.88389

ジョイコンではないですが、Bluetooth接続のゲームパッドがあったので
試してみましたが、コントロールができなくなることはありませんでした。

あと、こちらの環境はIntelのCPUとGeForceのGPUです。

そういえばSteamクライアントを起動して、左上の「表示」から一番下の「設定」をクリックして
表示された設定ウィンドウの項目の「コントローラ」で、コントローラの設定がありますが
その辺りは、どうでしょうか?



もろ

リンク

2019/9/9(Mon) 23:55:03|NO.88390

引き続き応答ありがとうございます。

ジョイコンはUSB接続のものを使っています。
わざわざテストしていただいてありがとうございます。
やはり、「コントローラーの設定がSteamに引っ張られるので、そっちがうまくいっていないと動かない」というセンなんですかね。
命令にコントロール系がなかったもので、てっきりそのへんは関係ないのかと…

Steamの設定をいじってみますね。



もろ

リンク

2019/9/10(Tue) 15:18:59|NO.88392

steamの設定は基本的には問題なさそうなんですが、Buffalo製の普通のパッドにも関わらずXbox oneのパッドと認識されており、Xboxのパッド用のチェックを入れて動かしている点がちょっと懸念点ですかね。
もちろん普通のパッド用のチェックも入れてますが。
いちおうキーの設定などもすべてやり直してみましたが変化ありません。

Steamでパッドが設定されていないとHSP側でエラーが返ってくるのが確認できたので、Steamのパッド設定周りで何かが起きているのは確定のようです。
ここまで分かっただけでもかなりの収穫です。ありがとうございます。

なぜパッドの認識自体はstat0で問題ないとなっているのに、操作を読み込む変数が操作によって変化しないのか、ここが問題です。
気になるのは、hspswには実在のゲームのIDをsteam_appid.txtで指定しないと正常に動かないという仕様がある点で、このIDで指定したゲームに対するパッドの設定も干渉しているのか、今調べています。
何もなさそうなんですけどね。



法貴優雅

リンク

2019/9/10(Tue) 20:03:56|NO.88393

原因がわかるといいのですが、難しそうですね。
joyGetPosExで、動かないとなるとDirectInputですかね。

CK JOYFORCE DLL
http://www1.odn.ne.jp/chokko/dr_dl.html
を入手して下記のスクリプトを動かして、反応はありますかね?


#include "hspsw.as" #include "ck_joyforce.as" PADID = 0 steaminit : res=stat if res : dialog "STEAM環境がありません。終了します。("+stat+")" : end *main ck_joystick t1, 0x7FFFFF, 0, PADID ck_joystickex t2, 8, PADID, 0 ck_joystickex t3, 3, PADID, 0 redraw 0 color 255,255,255 : boxf : color 0,0,0 pos 0, 0:mes "stat:"+stat+" t1:"+t1+" t2:"+t2+" t3:"+t3 redraw 1 await (1000/ 60) goto *main



もろ

リンク

2019/9/10(Tue) 20:54:05|NO.88396

何度もありがとうございます。

これは把握していないDLLで貴重な情報でしたが、やはりhspswで初期化すると動かなくなるという状態です。
こうまでくるとなぜhmmの命令では検知できるのかがすごく気になりますが、内部処理をどうしてるのかが分かりかねるので、なんとも言えませんね…



法貴優雅

リンク

2019/9/10(Tue) 21:26:44|NO.88398

こちらで同じ症状が出たので、試してほしいのですが
Steamのコントローラー設定で「ガイドボタンがSteamにフォーカスします」以外
のチェックを、すべて外してテストしてみてください。



もろ

リンク

2019/9/10(Tue) 21:49:57|NO.88399

う、動きました!!

感謝しかありません。
チェックを入れてると送信されるコードが特殊なものになるとかそういうアレなんでしょうか。
条件はともかく動くことが確認できたらなんとかなります。よかった。

大変お世話になりました。このゲームは10月の初週前後にSteamで800円にて販売予定ですが、その際に法貴優雅さんにプレゼントさせていただいてもいいですか?
どういうゲームがご趣味かにもよるとは思いますけども。



法貴優雅

リンク

2019/9/10(Tue) 22:13:35|NO.88400

動作できたようで、何よりです。
今回は、自分の作ったモノにも関連する内容でしたので
プレゼントに関しましては、気持ちだけ頂いておきます。

ここで唐突に宣伝!
HSPでできてる「NOYO-!」はSteamで好評発売中!
https://store.steampowered.com/app/1093300/NOYO/?l=japanese



もろ

リンク

2019/9/10(Tue) 22:23:08|NO.88401

考えてみれば十分ありえる話だったけど同業の先輩だったーっ

のちほど買わせて頂きます!
ほんとありがとうございました!



もろ

リンク

2019/9/10(Tue) 23:41:14|NO.88405

解決済み



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