【過去ログ】質問・要望・不具合報告
コメントするにあたってのお願い
不具合の報告をする際は可能な限りで構いませんので発生した状況や設定について詳細に報告してください。
コンソールウィンドウやKeyToKeyのフォルダ内にある「Log.txt」にメッセージが記録されていましたら内容を記載してください。
コンソールウィンドウやKeyToKeyのフォルダ内にある「Log.txt」にメッセージが記録されていましたら内容を記載してください。
連絡先
KeyToKeyはゲームなどで使うことを目的として開発されたユーティリティツールです。 キーボード、マウス、コントローラーにキーやマウスのボタン、マクロを割り当てることができます。最新のゲームなどでも動作可能です。
コメント一覧 (26)
マクロの編集について、以前は編集を終えると『ESC』キーを押すことで編集モードを抜けられたのですが、現在は『ESC』キーを押しても抜けられず画面外をクリックすることで抜けています。正式にはどのキーが編集を抜けるようになっているのでしょうか。
key0x2key
が
しました
先日から使用させていただいておりますがマクロを繰り返し行った際、「 待機<ミリ秒> 」の値が正常に処理されないことがあります。
さらに、この事象が起きると「 key to key 」を再起動するまで改善しませんでした。
バージョンは最新版を使用しております。
2時間のうちに4回ほど起こったので発生率も高いものと感じましたのでご報告させていただきます。
もし対処法等ございましたらご教示いただけると幸いです。
key0x2key
が
しました
同じC#スクリプトをメニュー経由での実行した場合は正常に動作することを確認済みです。
"MacroName": null,
"Line": null,
"Method": null,
"Trigger": null,
"Message": "引数の数が足りません。",
"Data": {},
"InnerException": null,
"StackTrace": " 場所 KeyToKey.Macro.Core.MacroStorage.SetParameter() 場所 C:\\Users\\root\\Source\\Repos\\KeyToKey\\KeyToKey\\Macro\\Core\\MacroStorage.cs:行 141\r\n 場所 KeyToKey.Macro.Core.QuickLaunchMacro.Execute() 場所 C:\\Users\\root\\Source\\Repos\\KeyToKey\\KeyToKey\\Macro\\Core\\QuickLaunch.cs:行 57",
"HelpLink": null,
"Source": "KeyToKey",
"HResult": -2146233088
一点、クイックランチャーの登録画面においてC#スクリプトのアイコンが「C#」となっているのに、クイックランチャーでの実行対象選択画面ではアイコンがアクションマクロのものが表示されていることに違和感を感じております。
拡張スクリプトとアクションマクロは登録画面、実行対象選択画面ともにアイコンは同一でした。
引数の有無は不具合の本質とは関係ない可能性もありますが、確認いただけますと幸いです。
key0x2key
が
しました
端的に言えば、拡張スクリプトから呼び出した場合の挙動はKeyToKeyを起動した時の状態のままで、関数内のコードを変更しても反映されません。
メニューからの呼び出しとキーボードをトリガーとした呼び出しで、同一の挙動を示すことを確認しています。
具体的には以下のファイル構成で、csex_debug() を呼び出した場合とcall_debug.csxを呼び出した場合の挙動を確認しています。
ファイル __extension.csx
// -------------------------------------------------------------
#load "cs_debug.csx"
bool csex_debug()
{
cs_debug();
rfeturn true;
}
// -------------------------------------------------------------
ファイル cs_debug.csx(このファイルを変更してコンソールの表示内容で挙動を確認しています。)
// -------------------------------------------------------------
bool cs_debug()
{
Console.WriteLine($"Test.");
return true;
}
// -------------------------------------------------------------
ファイル call_debug.csx
// -------------------------------------------------------------
#load "cs_debug.csx"
cs_debug();
// -------------------------------------------------------------
分かりにくい内容で申し訳ありませんが、ご確認よろしくお願いします。
key0x2key
が
しました
指摘の部分を修正してみましたが、当初に述べた通り拡張スクリプト経由で既存のC#スクリプト内に記述した関数を呼び出した場合、KeyToKeyを起動した時点のままであることを確認しました。
(当然ですが、再起動かリロードをすれば拡張スクリプト経由でも反映されます。)
実際に、検証した際のキャプチャーを保存しておりますので、確認して頂ければと思います。
https://youtu.be/hWdp0GOGC2U
key0x2key
が
しました
key0x2key
が
しました
このため、コピー&ペーストでアクションを追加することができないケースが多くなってしまい、困っています。
また、アクションを追加した際のアクションの編集画面で、編集終了後に右上のチェックアイコンをクリックしてもアクションの編集画面が閉じません。このチェックアイコンを何度もクリックすると、その回数分だけアクションが追加されてしまいます。しょうがないので、アクションの編集画面以外のところをクリックすると「編集中の項目があります。閉じますか?」とのポップアップが表示され、「はい」を選択することでアクションの編集ウィンドウを閉じることができます。
Windows11(64bit、pro)です。WindowsUpdateのせいかもしれませんが、ご報告いたします。4日ぐらい前はこのような不具合はありませんでした。
key0x2key
が
しました
お騒がせいたしました。
key0x2key
が
しました
入力の可視化→マウス→横向きにする
の挙動が少しおかしいようです。
実際の表示が縦向きになっていますが、「横向き」にチェックが入っています。
初めに開いたときと、実際の表示が縦向きで閉じ→開いたときと、両方で確認されました。
1回叩けばチェックが外れ、もう1回叩けば実際の表示も横向きになる、現状でも実用上問題ありません。
key0x2key
が
しました
Controller.LeftStick.Thumb
Controller.LeftStick.ThumbAsShort
において、
物理XInputゲームパッドを使うと、Y=+32767が期待されるスティック位置で-32768が出力されます。Xに関しては期待通りです。なお、Controller.LeftStick.Angleは問題なく計算されていますし、アプリやwindowsコントロールパネルや入力の可視化→コントローラ総合PS4などの挙動は期待通りです。
物理DirectInputゲームパッドを使うと、X、Y、共に-32678が期待されるスティック位置で-32767が出力されます。(これは手元のゲームパッドの出力の癖かも知れませんし、この違いが問題になるようなマクロを書かないので、このままでも全く困りません)
key0x2key
が
しました
コメント末尾にあるマクロを使っております。このDisposing内で確率的に
VirtualXInput.SetMappingState(0,mapping,true);
が実行されず、マッピング・オフのままマクロが終了してしまう事がしばしばあります。
一度このモードに入ると、次のマクロの開始・終了後にもマッピング・オフのままが多いのですが、たまに確率的にマッピング・オンに戻ります。
このマクロの起動は、キーボードのキーやマウスのボタンを「押したとき」に割り当てていて、「トグルモード」と「トリガーを離したときに実行中のマクロを終了させる」にチェックを付けています。なお、キーボードもマウスもポーリングで使用しているため取りこぼしはあるのですが、それとは別の問題であることをコンソールへのデバグ出力「開始・終了」で確認しています。
var mapping=new[]{
MappingSources.B,
MappingSources.LeftStickX,
};
Disposing+=(sender,e)=>{
VirtualXInput.SetMappingState(0,mapping,true);
var dt = DateTime.Now;
Console.WriteLine(" 終了 "+dt.ToString("HH:mm:ss"));
};
var dt = DateTime.Now;
Console.Write("開始 "+dt.ToString("HH:mm:ss"));
const int tick=17;
while(true){
VirtualXInput.SetMappingState(0,mapping,false);
Wait(tick);
}
key0x2key
が
しました
1. 正常に動作している状態から
2. Select(Back)ボタンをトリガーとしてキー割当を行います
3. ○/B ボタンを入力して割り当てます。とくに詳細設定はしません
4. 同じトリガーにもう一つ ○/B ボタンを追加します。詳細設定なし
5. 保存して ○/Bボタンを押します。正しく動作します(入力の可視化コントローラ等で確認)
6. Select(Back)キーを押したり離したりしても、正しく動作しています
7. 以降、○/B ボタンを押しても反応しません。コンソールにはなにも出力されません
○×同時押し的なマクロを作成しようとして、「○押す×押すwait、×離す○離す」というのを設定して気づきました。
key0x2key
が
しました
【新しい不具合】
Controller.NormalizedRightStick 【Right】
に関して、物理XInputゲームパッドでは、水平垂直ともに【Left】の値を読んでしまっているようです。
なお、物理DirectInputゲームパッドでは、Right、Leftともに期待通りの値が読めました。
【過去の不具合の検証】
ツール→入力の可視化→マウス→横向きにする
に関して、一番初めに使ったときは「実表示も横、緑チェックマークもあり」と同期されています。
しかし、「実表示が縦」の状態で閉じる(またはKeyToKeyを再起動する)などすると「実表示は縦、緑チェックマークはあり」とテレコされてしまうようです。
1回叩けば同期されるのと、実表示は期待通りに保存されるようなので、実用上は問題ありません。
Controller.LeftStick.ThumbAsShort
に関して、物理XInputゲームパッドでスティック下側マックスで急に負の値-32768に飛ぶ現象が前バージョンと同じままである事を確認しました。
旧型式・非推奨という事でこれらのプロパティは使用終了します。
VirtualXInput.SetMappingState()
に関して、まだ深く検証していませんが素晴らしい仕様になったと思います。
ループ中で高頻度マッピング・オフしていたのは、今から考えるとゴリ押しすぎでした。
key0x2key
が
しました
KeyToKey 210207 + vJoy 2.1.9.1 で正常に vJoy へ出力できている環境にて
1. KeyToKey の 210211~220523 では、vJoyへのマッピング設定がおかしな動作になります。
割り当て設定(コントローラ) → 仮想DirectInputコントローラの マッピングの設定を行う を開くと、全ての項目が「使用しない」になっています(210207以前では適切な割り当てになっています)。
「使用する」などに変更してこのマッピング先の設定ダイアログを閉じすぐ開くと、やはり全て「使用しない」になります。ただし 変更して保存すると、vJoyへの出力は正常に行われています。
2. vJoy を 2.2.1.1 に変更すると vJoy への出力が動作しません。コンソールにも特にエラーは出力されません。
KeyToKey 210207~220523 で確認。
この vJoy 2.2.1.1 は 2.1.9.1 の入手先の github.com/jshafer817/vJoy から fork した
github.com/njz3/vJoy/ で入手したものです。
3. vJoy ではなく、仮想XInputコントローラの マッピングの設定を行う 内の割り当ての初期値が、220522.1 より 全て「無効」になりました。ただし 項目1のvJoyのそれとは違い、変更した設定は閉じて開いても正しく反映・動作します。不具合ではありませんが、項目1のこともあったので一応の報告です。
key0x2key
が
しました
◆バージョン
220523
◆事象
KeyToKeyを非表示にしている際に、クイックランチャーを開こうとすると
反応せずKeyToKeyが落ちることが高頻度で発生します。
以前のバージョンから発生しており、バージョン220522.1では一時的に改善されたように感じましたが
再度発生しているようです。
key0x2key
が
しました
以下の4方法の内で「新しい方法、極座標」のみ、方向が不思議な感じに離散化されてしまいました。
+135°までの範囲ではおよそ45°で離散化されますが、その先の挙動は法則がわかりませんでした。
左スティックでも右スティックでも同じ現象が起きています。
(弧度法や角度やdoubleやintが入り混じって当方のひどい勘違いかも知れません。他の3方法は上手く動いてるので、緊急度はゼロです。)
var angle=(2*Math.PI/360)*15.0; // 15°
//var rpt=0.5*(2*Math.PI*tick/1000);
{
//新しい方法、直交座標
VirtualXInput.GetController(userIndex: 0).LeftStick.SetValue(Math.Sin(angle), Math.Cos(angle));
//新しい方法、極座標 ← 角度の細かい指定ができない
VirtualXInput.GetController(userIndex: 0).LeftStick.SetValueByAngle(angle/(2*Math.PI/360));
//前の方法、直交座標
VirtualXInput.SetStickValue(0, XInputSticks.LeftStickX, (short)(32767*Math.Sin(angle)));
VirtualXInput.SetStickValue(0, XInputSticks.LeftStickY, (short)(32767*Math.Cos(angle)));
//前の方法、極座標
VirtualXInput.SetStickValue(0, isLeftStick:true, (int)(angle/(2*Math.PI/360)));
//angle=(angle+rpt)%(2*Math.PI);
}
key0x2key
が
しました