masaka
masaka
ありがとうございます! お手数をおかけしますがよろしくお願いいたします🙇♂ 補足を記載します。 - Xcodeのバージョン: 12.4 (12D4e) - Debugビルド・Releaseビルドの両方で発生 - 現象がTransformer2Dによるものと判断した理由: - 制作していたプロジェクトをmacOS(Rosetta環境)でビルドしたところこの現象が発生し、Transformer2Dの行をコメントアウトしたところ現象が発生しなくなった - OpenSiv3D 0.6.4デフォルトのプロジェクトは問題なく動作しており、そこへTransformer2Dの行を入れると現象が再現した([差分](https://gist.github.com/m4saka/f0283550706b4fa168649c26247eb4f2)) - ただし、Transformer2DにMat3x2:Identity()を指定した場合は現象は発生しませんでした - 現象が再現した環境での「`system_profiler SPDisplaysDataType`」の実行結果: ``` $ system_profiler SPDisplaysDataType Graphics/Displays: Apple M1: Chipset Model:...
OpenSiv3Dのバージョンは0.6.4のままで、macOSとXcodeのバージョンをアップデートしたところ現象が発生しなくなりました。 OSバージョンを上げるとXcodeもアップデートしないといけなくなったので、どちらのアップデートが効いたかは不明です。 ただ、アップデート直前に現象発生は確認できていたので、いずれかのアップデートが効いたことは確実のようです。 https://github.com/Siv3D/OpenSiv3D/assets/14288724/b0ab4a22-7776-4565-a987-a78fcef794f7 ▪️発生バージョン(OSアップデート前) OpenSiv3Dのバージョン: 0.6.4 OSバージョン: macOS Big Sur 11.2.1 Xcodeのバージョン: 12.4 (12D4e) ▪️非発生バージョン(OSアップデート後) OpenSiv3Dのバージョン: 0.6.4 OSバージョン: macOS Ventura 13.5(22G74) Xcodeのバージョン: 14.3.1 (14E300c) 現象が発生しなくなったので、Issueをクローズします。 ありがとうございました!
ご確認ありがとうございます。1〜3について承知しました! 実装に進展がありましたらお知らせいたします!
@Reputeless 下記で仮実装しました。実装内容に問題ないかご確認いただけますと幸いです! https://github.com/m4saka/OpenSiv3D/commit/da52430ef41c7aec1b624512a2f0873ee4e12602 実装にあたって気になっている点は下記2点です。 1. 目標フレームレート(`fps`引数)にゼロや負の値を指定した時に例外を投げているのは問題ないか? 2. 目標フレームレート(`fps`引数)にNaNや+inf、-infを指定した場合も例外を投げるべきか? 補足事項として、[Qiita記事](https://qiita.com/m4saka/items/5da6cd4b57bc894d35dd)での実装では`MaxDrift`(=10ミリ秒)という定数値を導入していましたが、`now < sleepUntil`の場合のみsleepを実行することで不要になったので、今回の実装には入っていません。 手元では現状Windows版のみで動作確認しているので、macOS版、Linux版、Web版でも正常動作するかどうかは今後確認予定です。 (Xcodeプロジェクトへのソースファイル追加についても現状は未対応です)
レビューコメントが記載できるように一旦Draft PRにいたしました。 https://github.com/Siv3D/OpenSiv3D/pull/1205
不具合ではなく仕様。 Retriggerは「fx-l=~;8」でwaveLengthが1/8になるなど、各ノーツ側でwaveLengthを指定するので、それに上書きされているだけです。 上書きされないように、ロングFXにエフェクトを指定せずにmix=100%にしてエフェクトをかけるようにすればこれを回避できます。 https://user-images.githubusercontent.com/14288724/147385793-9a8f307e-0f78-401a-8ffb-67ecfa79916f.mp4
追加情報: https://twitter.com/Morojenium/status/1636992738515378176 > fx:**:mix=100%を指定する形において確かに「付点8分らしき何か」は流れますが,なんらかの原因で音がズレているため実質的には使えない状態です。waveLength=(その曲の付点8分ぶんの長さ[ms]) で作ったエフェクトと聴き比べてください。 https://twitter.com/Morojenium/status/1636993374506057728 > あと元のツイートのIssueの「何も起きない」という言及は確かちょっと語弊があって(←いまケーシューを触れないので記憶でしか話せない人),これは確か付点8分ではなくて付点4分 (waveLength=0.375) のときの挙動だったと思います
別の例 https://twitter.com/qqqxxxppp/status/1386284109949915140
どこがどこに対応しているかわからないので、とりあえず手元のFAUCETWOで当てずっぽうにやってみる。 C++とかHSPだと試行錯誤しにくいので、ひとまずPythonで動かしてみる。 hidapiをpipで入れ、下記を参考にデバイスを列挙してみる。 https://qiita.com/non0/items/1b6e02e8f8b3f1d36bfb#%E5%8B%95%E4%BD%9C%E7%A2%BA%E8%AA%8D すると、以下のように4つ出てきた。ゲームパッド・マウス・キーボード・LEDの4つ。 ``` path : 省略 vendor_id : 3727 product_id : 4376 serial_number : 省略 release_number : 3 manufacturer_string : SkyStar product_string : F2 HID usage_page :...
Python上のhidapiではvendor_id/product_id/serial_numberの組が同じ別のusageのものを別々に扱うことができないらしく、usage=0のLEDに対して上手く書き込めなかった。そこで、仕方なくC++で書く。 下記のようなプログラムを書くことで、LEDのオンオフや色を切り替えることができた。値は適当に決め打ちで入れてある。 他の専用コントローラとの互換性のためにいくつかのビットは不使用の状態にしてあるらしい。 なお、reportIDは複数にわたる一連のデータを送る場合にのみ使用するものらしく、今回は単体で送信するのでIDが存在しないことを表す0を入れてある。 ``` > cl main.cpp /std:c++17 /link hidapi.lib ``` ```cpp #include #include #include "hidapi/hidapi/hidapi.h" struct Color { unsigned char r = 0; unsigned char g = 0;...