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


HSPTV!掲示板


未解決 解決 停止 削除要請

2023
0117
nennneko5787Joy-Con/Proコン/Dualshock/DualSense をHSP3で使う2解決


nennneko5787

リンク

2023/1/17(Tue) 19:03:05|NO.98998

荒らしによってスレッドが過去ログに行ったので(需要ありそうなので)
http://hsp.tv/play/pforum.php?mode=pastwch&num=97695



この記事に返信する


GENKI

リンク

2023/1/17(Tue) 23:18:42|NO.99000

Joy-Con/Proコン/Dualshock/DualSense をHSP3で使う事に関する話題のスレッドです。

これらのコントローラーはゲーム機用でありながら、PCとBluetooth接続できます。PCに接続すると普通のゲームコントローラとして使えます。ゲームコントローラとして認識するので、mod_joystick2.asでボタン操作を取得できます。
これまではジャイロ等の独自機能は使えなかったのですが、最近は取得出来るようになりました。しかも振動まで使えるように。

動作報告とか、こんなの作ったとか、ちょっと聞きいてみたいけど新規スレッド立てるのもなとか、…ご活用ください。


以下関連サイト

NintendoSwitch Proコントローラーのボタンが押されたか取得
http://hsp.tv/play/pforum.php?mode=all&num=97223
前スレ。話がそれてきたのでこのスレッドを立てました。

JoyShockLibrary
https://github.com/JibbSmart/JoyShockLibrary
Joy-Con/Proコン/Dualshock 4/DualSense のジャイロなどが取得できるDLL。
DS4/DS5のみ振動対応。

JoyShockLibrary-plus-HDRumble
https://github.com/MIZUSHIKI/JoyShockLibrary-plus-HDRumble
JoyShockLibraryにHD振動を追加したもの。

JoyShockLibrary-For-HSP3
https://github.com/nennneko5787/JoyShockLibrary-For-HSP3
JoyShockLibrary.DLLをHSP3で使うためのモジュール。

JoyShockLibrary for HSP3
https://mclab.uunyan.com/dl/dl58.htm
JoyShockLibrary-For-HSP3をHSP3で本格的に使うために強化したモジュール。

HSP3でジョイコンのHD振動が動いている動画
https://twitter.com/millline/status/1613504415847313409

HD振動についての文献
https://github.com/dekuNukem/Nintendo_Switch_Reverse_Engineering/blob/master/rumble_data_table.md



GENKI

リンク

2023/1/21(Sat) 21:58:12|NO.99021

クォータニオンを取得できるので、実際に利用する方法を探っているところです。
ということで、コントローラーを傾けるとタマネを操作できるサンプルを作ってみました。
ジョイコンは縦持ちしてください。

JoyShockLibraryとJoyShockLibrary for HSP3が必要です。

#include "hgimg4.as" #include "JoyShockLibrary.hsp" ; クォータニオンを計算 #module #deffunc mulq_E var v_qpx, var v_qpy, var v_qpz, var v_qpw, \ double p_qx, double p_qy, double p_qz, double p_qw, \ double p_px, double p_py, double p_pz, double p_pw v_qpx = p_qw * p_px - p_qz * p_py + p_qy * p_pz + p_qx * p_pw v_qpy = p_qz * p_px + p_qw * p_py - p_qx * p_pz + p_qy * p_pw v_qpz = -p_qy * p_px + p_qx * p_py + p_qw * p_pz + p_qz * p_pw v_qpw = -p_qx * p_px - p_qy * p_py - p_qz * p_pz + p_qw * p_pw return #define global mulq(%1, %2, %3) mulq_E %1(0), %1(1), %1(2), %1(3), %2(0), %2(1), %2(2), %2(3), %3(0), %3(1), %3(2), %3(3) #global ;------------------------------ ; コントローラー ;------------------------------ ; JslGetSimple buttonJs = 0 ddim analogJs, 6 ; JslGetMotion ddim mtQuat, 4 ddim mtAccel, 3 ddim mtGyro, 3 ; 接続されているコントローラーデバイスを接続して、接続数を取得 numConnectJoystick = JslConnectDevices() ;------------------------------ ; 環境 ;------------------------------ gpreset setcls CLSMODE_SOLID, $404040 setcolor GPOBJ_LIGHT, 1,1,1 setdir GPOBJ_LIGHT, 0.5,0.5,0.5 ;------------------------------ ; オブジェクトノード ;------------------------------ ; 床 gpfloor id_floor, 30,30, $4040F0 gpsetprm id_floor, PRMSET_ALPHA, 127 ; 3Dモデル gpload id_model,"res/tamane2" setscale id_model, 0.1,0.1,0.1 ; アニメーションクリップ gpact id_model ; クォータニオン ;Y軸 -90度回転 qlym90 = 0.0, -1.0/sqrt(2), 0.0, 1.0/sqrt(2) ddim p, 4 ddim q, 4 ;------------------------------ ; カメラ ;------------------------------ setpos GPOBJ_CAMERA, 0,35,-40 gplookat GPOBJ_CAMERA, 0,14,0 ;------------------------------ ; メインループ ;------------------------------ *main key0 = key stick key, 256|16 if key&128 : end redraw 0 ; 描画開始 ;------------------------------ ; コントローラー入力 ;------------------------------ if numConnectJoystick > 0 { deviceId = 0 ; 姿勢を取得 JslGetMotion deviceId, mtQuat, mtAccel, mtGyro ; Y軸の回転方向を反転 setquat id_model, mtQuat(0), mtQuat(1), -mtQuat(2), mtQuat(3) ; モデルの向きを調整 addang id_model, deg2rad(180), deg2rad(90), deg2rad(0) ; 全体をY軸まわりに90度回転 getquat id_model, p(0), p(1), p(2), p(3) mulq q, qlym90, p setquat id_model, q(0), q(1), q(2), q(3) ; 正面向きの再調整 ; コントローラーを正面に向けて、スペースキーを押します。 ; スペースキーを押している間、キャリブレーションが行われます。 if ((key0 & 16)=0) & ((key & 16)!0) : JslStartContinuousCalibration deviceId if ((key0 & 16)!0) & ((key & 16)=0) : JslPauseContinuousCalibration deviceId } gpdraw ; シーンの描画 ;------------------------------ pos 0,0 color 255,255,255 mes "sample" redraw 1 ; 描画終了 await 1000/60 ; 待ち時間 goto *main



記事削除

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

NO.98998への返信

マスコット

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

名前

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

削除用パスワード

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

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