弐寺とBMSで精神崩壊してカウンセリング通いまでになった話
音ゲーとの出会い
確か始めたのは小学六年生のころ、ポップンを始めたのがきっかけだった。
小学生のころから音MADをずっと聞いていて、音ゲー曲にあこがれのようなものを持っていた。(当時はEvansとか流行ってたね)
なのでポップンを始めてもいなかったのにサントラだけ買っていたりした。初めて買ったのはサニパのサントラだったかな。(リメンバーリメンバーは名曲。中学生のころ登校前に絶対聞いていた気がする。)
弐寺との出会い
弐寺を始めたきっかけは「ポップンが開いていなかった時の暇つぶしとして」だった。
当時(SPADA)のころは消費税がまだ5%で100パセリで四曲できるってコスパいいじゃん!って思ってた。
ちなみに経歴としては
中学1年生 十段(PEN) → 中学2年生 十段(COP) → 中学3年生 十段(SINO) |
いや、中学の間ずっと饅頭*1かよ。
なおSINOの途中で受験のため半年程度できない時期があった。
悪魔の力(BMSとDAOコン)と出会う
高専に受かった記念でDAOコンを買った。これが精神崩壊へのきっかけだったのかもしれない。
BMS自体は中学生のころからやっていた。当時はノートパソコンでシコシコやっていた。
ちなみにお気に入りはfragile crystal
名曲です。
www.nicovideo.jp
高専に入学すると同時に、DAOコンを手に入れた私はそれは文字通り猿のようにBMSをしていた。
多分高専1年生のころが一番やっていたと思う。
起床→身支度→BMS→学校→帰宅→夕食、入浴→BMS→就寝 |
といった感じであった。
ともあれBMS猿になっていたため、着実に鍵盤力はついていった。
それで中伝も取り、あとは皆伝を目指すのみ、というところまではすんなりいった。
皿ができない悪夢、灼熱で落とされる毎日
察しの良い方は気づいているかもしれないが、皆伝には一人問題児(僕からして)がいた。
そう、灼熱である。
着実に鍵盤力はついているのに皿力が崩壊していたため、皆伝は灼熱で落とされる一方であった。
BMSも発狂八段まで取得、本家も当時のハード地力Sが全部埋まっていたレベルであった。
穴冥はBP70程度だし、卑弥呼はノマゲもついている。なのに灼熱一曲のために受からなかった。
ここらへんで精神的にやられてきた。
灼熱で落ちるたびに自分の髪を引きちぎったり、顔をビンタしていた。いわゆる自傷行為に近いことをしていた。
今思えばゲーセンでこんなことしてるのやばいでしょ。もし見ていて不快になった方がいたら大変申し訳ない。
当時のゲーセンには弐寺が二階に設置されていたので、灼熱で落ちるたびに飛び降りようかと思った。
とにかく自分を追い込んでいた。
皆伝取得、だが終わらない苦しみ
高専2年生のころ、CBのころやっと皆伝をとることができた。
だがこのゲームは皆伝をとってからが本番、皆伝まではチュートリアル、と呼ばれるほどの修羅の道である。
いわゆる全白を目指して地力を上げていった。BMSもずっとやっていた。
ただ、成長に限界を感じていたころ、また自分を追い込み始めた。
エアゴ*2が少しでもうまく押せなかったら台パン、顔を殴る、髪を引き抜く。
あまりにもイライラしすぎてモニターを割ってしまった。
毎日泣きながらBMSをやっていた。
少しでもうまく押せなかったらだめ。なぜ昨日できたことが今日はできないんだ。
そんな考えでずっと鍵盤を叩いていた。
毎日やらないと地力が落ちるかもしれない。地力を落としたら取り返すのに時間がかかる。
そんな強迫的な考えでプレイしていた。
当時は楽しくなかったと思う。いいリザルトが出ても次の日にはできなくなっているのではないか、そういう恐怖に襲われていた。
親から何度もやめろと言われた。でもやめたら地力が下がるからやめられなかった。
あまりのおかしさにカウンセリング行に
毎日奇声を発しながらBMSをやっていたため、さすがに親が心配してカウンセリングに連れていかれた。
毎日机の下で泣きながら髪をむしってるようなことしてたらそうなるわ。
ただ、正直カウンセリングを受けて得られたものはそんなになかったと思う。
記憶にあるのは担当の先生に
「うーん、自閉症じゃない?(笑)」
みたいに言われたことだけだ。
そういわれたらなんなあほくさくなって通うのをやめた。
後ついでにこのころ弐寺もBMSも離れるようになった。
現在
今はもう弐寺もBMSもあまりやらなくなった。
せいぜい弐寺を月に二回ぐらいするだけになった。
今はAPEXしてVRゲーやってプログラム書くようになった。
もし弐寺、BMS、それに限らず音ゲーで苦しい思いをしている人がいたら言いたいのは
何かほかに夢中になれるものを作ったほうがいい
ということである。ありきたりすぎるが。音ゲーがうまくなることだけが人生じゃない。
苦しい思いをしてまで音ゲーをやるのは、音ゲー以外に自信のあるものがないということだと思う。
だからいろいろなものに手を出してみたほうがいい。
何か一つのものだけを心のよりどころにすると、それが崩れた時苦しむことになる。
音ゲーから完全に離れられなくても、そこから派生して何かを始めるといい。
僕は弐寺のリザルトを自動で管理しようと思って、Pythonと画像認識で遊んでいたりしていた。
そこからプログラミング面白いなーってなったりした。
とにかく、プレイすることだけにとらわれてはいけないと思う。
やめたくても地力が落ちるのが怖くてやめられない、という考えは絶対にやめたほうがいい。
僕はそれで精神をかなりすり減らしてしまった。
ちなみに自傷行為に走るようであったら完全にアウトだと思う。
早急にカウンセリングとか誰かに相談したほうがいい。
音ゲーは楽しいけど、うまく付き合おうという話。
追記(2021/08/27)
音ゲー辞められていません。というかモチベが上がってきた。
DAOコンを台パンしてぶっ壊してしまったので、キーボードでBMSやってるが、これがなかなか面白い。
自作キーボードでやってるので台パンもする気が起きない。(愛着が沸いたし。)
BMS効果かわからないが、ファーフルダリアエクハできた。
頑張ってキレないように発狂皆伝を目指したい。
自作キーボードでBMSはいいぞ。(いつか配置についてとか書くかも。)
Jetson Nanoにpyxelをインストールするときの ”fatal error: filesystem: No such file or directory #include <filesystem>”を解決する
最近買ったJetson Nanoで2Dゲームでも作ってみようかと思い、見つけたのがpyxelであった。
github.com
メインPCのUbuntu環境ではサクッとインストールできたが、Jetson上では少し手間取ったのでメモ。
結論:gccとg++のバージョンを上げればいい(バージョン9以降?)
結論から言うとこうなる。ソースからビルドする必要があるがこのとき
fatal error: filesystem: No such file or directory #include
などと言われてMakeが通らなかった。
とりあえずgccとg++のバージョンを確認してみる
$ gcc --version gcc (Ubuntu/Linaro 7.5.0-3ubuntu1~18.04) 7.5.0
とのことでこのバージョンではfilesystemが実装されていないようであった。(詳しくは分からないが…)
新しいバージョンのgccとg++をインストールする。
$ sudo apt-get install gcc-9 $ sudo apt-get install g++-9
デフォルトで読み込まれるバージョンを変更する
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9 sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9
sudo update-alternatives --config gcc sudo update-alternatives --config g++
これでgcc --versionコマンドを実行してバージョンが上がっていたらOK。
あとは手順にしたがってMakeすれば良い。
ちなみにgccとg++のバージョンを8にしていたときは
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.
といったエラーを吐かれてpip install が通らなかった。
そこでgccとg++のバージョンを9にしてMakeし直し、pip installを行ったら成功した。
PCを新調したらUbuntuのイーサネットが使えなくなった話
昨年12月、CPUをRyzen5 3600からcore i-7 10700KFにし、それに伴ってPC を新調した。
その時、メインで使っているwindows10はクリーンインストールし直したが、SATASSDに入っていたUbuntuはそのままにしておいた。(いわゆるデュアルブート環境であった。)
そして久しぶりにUbuntuを使おうと思いBIOSから起動したところ、タイトルのようにLANケーブルでネットワークに接続することができなくなった。
環境
MB Z490 MPG Gaming Plus
Ubuntu 20.04.1
どのイーサネットドライバーを使えばいいか確認する
とりあえず使っているマザボのページを見てどのドライバーかを確認する。
https://jp.msi.com/Motherboard/support/MPG-Z490-GAMING-PLUS#down-driver&Win10%2064
今回はRealtekのドライバーであったが、マザボによってはIntelのドライバーだったりするかもしれないのでそこは要確認である。
ドライバーをダウンロードする
Realtek PCIe FE / GBE / 2.5G / Gaming Ethernet Family Controller Software - リアルテック
今回の場合はこちらからダウンロードした。
選んだのは 2.5G Ethernet LINUX driver r8125 for kernel up to 5.6 (よくわからなかったので一番新しいので)
サブ機であるノートpcでダウンロードしUSBメモリに入れた。
RealforceからFILCO Majestouch MINILA-R Convertibleに乗り換えた話
タイトルのまま。ちなみにこの記事もMajestouchのほうで書いている。
www.amazon.co.jp
買ったのは赤軸タイプ。色はグレー。ちなみにダイヤテック公式の方では、他のカラーもある。
Majestouch MINILA-R Convertibleのご紹介 | ダイヤテック株式会社
(正直ASAGIが好みだったが、その時赤軸は在庫がなかった。)
乗り換えた理由
・Realforceが大きすぎる
テンキーレスの方ではなく、フルキーのほうを買ってしまったのもあるがとにかく大きすぎた。
・ネイティブにFnキーと組み合わせることでカーソル移動ができる
Realforceを使っていたころも、AutoHotKeyを使ってカーソル移動をしていた。(無変換キーとIJKLキーでカーソル移動をするようにしていた。)ただ、ソフトウェア側で対応するよりもハードウェアからできる方がいいと思った。HHKBも考えたが、あちらはホームポジションから離さないといけないこともあり断念した。正直あっちの方がプロ感あって好きだった。特に無刻印タイプ。
・無接点静電容量方式に飽きた
地元のパソコン工房で赤軸のキーボードを試し打ちしたところ、なかなか気に入ったのもある。飽きたというよりかは無接点静電容量のタクタイル感が嫌になってきたというのもある。
良かったところ
・OSにとらわれずカーソル移動ができる
買った理由はほとんどこれな感じがするが最近はLinuxをよくいじるためAutoHotKeyが使えない。しかしこのキーボードなら、ソフトに関わらず、ホームポジションをキープしたままカーソル移動ができる。 …もしかしたらカーネルとかいじったらキーボードマクロってできるのですかね?ワタシリナックスワカラナイ…
というかホムポジのままカーソル移動できるのって最高に便利だからもっと増えてほしいのだが…。プログラムもりもり書く人なら絶対やるべきだと思う。…こんなこと言ってたらそろそろ自作キーボードに手を出してしまいそうだが。
・省スペース&ケーブルレス
パソコンが机の下にある都合上、ケーブルが机の上を這ってしまうのを回避できた。ちなみに接続はBluetooth。うちのパソコンにはそんな高級なものはついていなかったので、レシーバーを買った。
特に問題なく接続できた。遅延等もそこまで気にならない。
Bluetoothキーボードなのでスマホ、タブレット等とも接続ができる。こんなギークなキーボード買う人はほとんどパソコンで作業する気がするが。
・赤軸が気持ちいい
これはキーボードの感想というよりかは、キーの感想だが…。Realforce偏荷重と体感的な重さを比べると
Realforce30g(AとかQキー当たりの小指で押すキー)<= 赤軸 << Realforce45g(FとかJキー当たりの大体のキー)<<<<< Realforce55g(Enterキーとか)
といった感じ。偏荷重で一番軽いキーよりかは少し重いが、大体のキーよりかは軽い、といった感じ。最初の30分ぐらいは慣れずに苦戦したが、今では打っていて気持ちがいい押し心地である。
全体的に言えば軽くなったと思える。Realforceで少し重いかな、と思っている人にはいいかも。(全30g使っていてそういうこと言うのはちょっとよくわからないです。多分音声入力とか使った方が幸せになれると思う。)
ぼくはRealforceのタクタイル感が気に入らなかったので赤軸を買ったが、あちらからメカニカルキーボードに移行するときは茶軸のほうが無難かもしれない。(間違っても青軸はいけない。キーが重すぎて投げ出したくなります。)
気になったところ
・マザボのUSBポートとは接続が不安定?
最初、Realforceをつないでいたポートに接続したところ動作しなかった。ケースのフロントにあるUSB3.0, 2.0とは接続できた。今はBluetoothで接続しているため関係ないが、とりあえずつなぐだけで動くようになっていて欲しかった。
・Insertいる?
完全に個人的な感想であるが、Insertキー(Fn+Jキー)はどう使っていいのかわからない。今まで無変換+IJKLでカーソル移動をしていたため、無意識のうちにFn+Jを打ってしまいそうになった。あとはFn+Iでスクショが撮られてしまう事故が多発した。
フルサイズのキーボードに合わせた配置なのだろうが、あまり需要のないキーはEnterやBSに割り当てできたらうれしかったのだが…。…もしかしてAutoHotKey使えば解決する?(本末転倒)
・大きさの合ったパームレストをつけないと不格好
このキーボードは相当高さがあるため、パームレストを使う方が快適にタイピングできる。ただ、サイズの合ったパームレストを使わないと、せっかくの小さいキーボードの意味を持たなくなってしまう。
というわけで急遽FILCO純正のものを購入。
www.amazon.co.jp
これのSサイズでちょうどいい。ウッドパームレストより手ごろな価格で良い。色も六色から選べるので、机やキーボードにあった色を選べる。ぱっと見でラベンダーがグレーに見えてしまって購入したのは内緒、今度色覚異常のことでも書こうかしら。
Darknetをmakeするときに発生した "error while loading shared libraries: libopencv_highgui.so.4.5: cannot open shared object file: No such file or directory"の解決方法
Darknetを用いてYOLOを動かそうと思い、発生したのがこのエラーである。
なお筆者はLinux歴一週間もないため予めご了承いただきたい。
環境
Ubuntu 20.04
AlexeyAB/darknet
github.com
前提
makeしたあと./darknetを用いて実行しようとするとタイトルのエラーが出る
目的のライブラリ自体が存在しているかどうか確かめる
find /usr | grep libopencv_highgui.so.4.5
自分の環境だとこのように出力された
/usr/local/lib/libopencv_highgui.so.4.5 /usr/local/lib/libopencv_highgui.so.4.5.0
これができていなければそもそもmake時にエラーを吐かれると思われる。
環境変数に追加する
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
追加後の実行結果
./darknet usage: ./darknet <function>
バックグラウンドでキー入力を読み取る Pythonライブラリ「keyboard」を使いキーロガーを作る
Pythonを使ってバックグラウンドで稼働するキーロガーを作った。
具体的には、「一秒間に特定のキーを押した回数をBB背景上に表示する」といったものである。
はじめは「PyHooked」を使おうと思っていたが
ATTENTION: pyhooked has been deprecated in favor of keyboard for new projects. This library is will no longer be supported. Please use one keyboard or one of the alternatives listed in Alternatives.
とあるのでライブラリ「keyboard」を使うことにした。
インストール
pip install keyboard
プロンプトから実行してインストール。
キーボードイベントを読み取る
if keyboard.read_event().event_type == keyboard.KEY_DOWN:
このように記述すれば、キーが押されている状態を読み取ることができる。(厳密には、キーが押されるまでプログラムが待機する。)
バックグラウンドでキーの状態を読み取りたいだけならこれでOKだが、今回はキー入力を読み取ると同時にGUIの更新も行わないといけないため、少し工夫をしてやらないといけなかった。単純にこれだけだと、キー入力がないとき、この文でコードが止まってしまうためGUIがフリーズしてしまう。
そこで、
keyboard.is_pressed(key)
# return bool
を使う。
引数で渡したキーが押されていたらTrueを返す。
入力検知対象のキーをリストにしておき、各キーが押されていることを確認したうえで、キーボードイベントを読み取らせている。
target_key = ['x', 'e', 'f', 'j', 'space', 'k', 'l', 'a', ';'] while True: for key in target_key: if keyboard.is_pressed(key): if keyboard.read_event().event_type == keyboard.KEY_DOWN: key_counter += 1 .... # この下にGUIの処理
こうすることで、キーの入力がない場合でもコードを止めないで済み、GUIの更新ができる。