ランス10や、vocalshifter_le.exeが文字化けしたので対処方法をメモしておきます。
(Windows11)
1. コントロールパネルから時計と地域をクリック

2. 地域をクリック

3. 管理タブから「システム ロケールの変更」をクリック

4. 赤枠のチェックを外して、OKを押すと再起動を促されるので従う。

これで治りました。

ランス10や、vocalshifter_le.exeが文字化けしたので対処方法をメモしておきます。
(Windows11)
1. コントロールパネルから時計と地域をクリック

2. 地域をクリック

3. 管理タブから「システム ロケールの変更」をクリック

4. 赤枠のチェックを外して、OKを押すと再起動を促されるので従う。

これで治りました。

こんにちは。えねこのきつねです。
今回は、低コストでトラッカーを作ることはできないか?と思い立ち、実際に作ってみました。
VRChatを楽しむためにフルボディトラッキングを実現したいなぁ、と思っておりました。
しかし、私自身はすでに「Meta Quest 3」を持っているものの、「トラッカー」はとにかく値段がする。既存の専用トラッカーがある「PICO4」においても、最初から買うにはお高い金額(トラッカーセットで10万近い)という現実がありました。
PICO 4 Ultra + 足首用Motion Tracker + 腰用Motion Tracker フルボディセット
※トラッカー単体購入しようかなと思いましたが、「Meta Quest 3」に対応していなさそうだったのでやめました。
調べていると最初に目についたのは以下の記事でした。
【SmileVR】というソフトを通しつつVRChatでトラッキングするという記事をみつけました。
xxxcloss.hatenablog.com
留意:ジョイコン、スマートフォンによるトラッキングは可能ですが、使用するデバイスに制限されるため、結果が大幅に劣ると【SlimeVR】のDocsに記載がございました。
「へぇ、そんなことできるんだ…」と思っていましたが、
【SlimeVR】ってなんだ…?
より【SlimeVR】について詳しく調べてみると、Docsに以下のような内容が書いてありました。
「SlimeVR は、仮想現実(VR)における全身トラッキング(FBT)を実現するオープンハードウェアセンサーとオープンソースソフトウェアのセットです。」
「このプロジェクトは、カスタマイズ可能でハック可能、ユーザーのニーズに合わせて変更できるシステムの構築を基盤としています。」
……
えねこ「…つまりどういうことですか?」
謎の声「VRのトラッカー作れるってことだよバカ。」
……
「VRのトラッカー作るってマジ?」(情弱)
さらに調べると、実際に使ってみた動画があるようでした。
※以下は、 2022年10月に投稿されたSlimeVRと「BNO08X」のセンサーを使ったトラッキングの動画の様です。
※決してケモノむちむちもふもふアバターに釣られた訳ではない
えねこ「…すげぇ、全然動いてるやん……」
……
「もうこれでよくないですか?」
と思った瞬間、私の中で自作トラッカーへの挑戦が始まりました。
(とはいっても、SlimeVRコミュニティ既存のDIYしたやつをそのまま実践してみただけではありますが…)
材料を集め、組み立てる過程は決して簡単ではありませんでしたが、達成感は格別です。自分の手で作ったトラッカーがVRChatで動く姿を想像すると、ワクワクが止まりませんでした。
以下、作成する前に必要になりそうな知識をクソど素人ながら書いていきます。
ですので、クソがなんか言ってるなーと思うような感覚で見たり見なかったりしてください。
トラッカーを作るためには、いくつかの重要な部品が必要です。
その中でも特に大事なのが、IMU(慣性計測装置)とマイコンボードです。
それぞれについて詳しく説明します。
IMUは、体の動きを測定するためのセンサーです。これを使うことで、どの方向に体が動いているのか、どれくらいの速さで動いているのかを知ることができます。
※上記のリンクには、IMUの性能がDIYコミュニティ内で調査された結果が記載されています。
今回は、SlimeVRが販売している「ICM-45686」と「QMC6309」というやつを購入しました。
SlimeVR Mumo Breakout Module V1 (ICM-45686 + QMC6309)

IMUは、主に以下の2つのセンサーで構成されています。
ICM-45686
これは加速度センサーです。
体がどの方向に動いているか、どれだけ前に進んだかを測定します。
QMC6309(ESP非対応の可能性あり)
これは磁気センサーです。地球の磁場を利用して、体の向きを測定します。
これにより、どの方向を向いているのかを知ることができます。
…おそらくこの2つのセンサーを組み合わせることで精度を上げているのかと思われます。
マイコンボードは、センサーからのデータを処理するための小さなコンピュータです。私が使ったのは、「Wemos D1 Mini」というボードです。

マイコンボードの特徴は以下の通りです。
IMUとマイコンボードを組み合わせることで、体の動きを正確に測定し、それをVRChatなどのゲームに反映させることができるみたいです。
★注意事項★
上記のマイコンボードには技適マークが無い(日本の電波法における「技術基準適合証明」を取得していないもの)ため、使用する場合は
「技適未取得機器を用いた実験等の特例制度」より、事前に開設届出を提出する必要がございます。
事前申請無しで、技適マークがない機器を使用すると電波法違反となり、懲役刑や罰金が科される可能性があります。
← これが技適マーク
なお、開設届出後は180日間ご利用でき、ご利用後は廃止届出を提出する必要がございます。
※マークについては以下参照
以下の表に、必要な素材と費用をまとめました。
| 物のやつ | 選択したやつ | 数量 | 1個当り | 合計金額 | リンク |
| マイコンボード |
Wemos D1 Mini |
10 | 300円 | 3,000円 | Wemos D1 Mini |
| IMU | ICM-45686 + QMC6309 ※送料1,200円 |
10 | 900円 |
9,000円 |
SlimeVR Mumo Breakout Module V1 (ICM-45686 + QMC6309) |
| バッテリー |
※3.7vかつ奥行きが5mm以下 |
10 | 3,000円 | AliExpress 804040 | |
| 充電基板 |
TP4056 USB充電ボード ※type C |
10 | 200円 | TP4056 | |
| 電源スイッチ | トグルスイッチ ※High 3mm, 20Pcs |
20 | 447円 | トグルスイッチ | |
| ダイオード | ダイオード(1N5817) | 50 | 420円 | ダイオード | |
| 抵抗器 | 抵抗器(180K) | 100 | 310円 | 抵抗器 | |
| はんだ付け用配線 | 家にあったやつ | ||||
| ケース | 3Dプリント ※今後3Dプリンタを使う予定があるなら、中古で買った方がよさそう |
詳細は「meowCarrier」を参照してください。 | |||
| ストラップ | 他調達 | 詳細は「meowCarrier」を参照してください。 | |||
| ピンヘッダ | 他調達 ※両端に端子があるやつ
|
||||
| チェストマウント ベルト |
options E |
2,059円 | チェストマウントベルト | ||
| 差し込みバックル | 50mm | 10 | 374円 | 差し込みバックル | |
| PCBボード | 10 | 300円 | 詳細と注文方法は「meowCarrier」を参照してください。 | ||
| Anker USB Type C ケーブル ※データ通信用であること | 1 | 740円 | Anker USB Type C ケーブル |
上記構成にした理由は、DIYコミュニティのユーザーによって実際に作成されたものをそのまま則れば失敗しづらくなるかな?ということで「meowCarrier」を参考にしました。
meowCarrier
「meowCarrier」のREADMEに則って、注文とはんだを塗ったものが以下となります。
また、最低5つ作る必要があります。

裏面

※裏面をちゃんとはんだ付けしないと挙動がおかしくなるので注意。
2回連続で上手くいかなかったときは焦ったのだ。
なお、トラッカーの最低必要個数は5つですので、5つ以上作ります。
下記リンク参照。
これで、DIYトラッカーは完成です。
...ここまで出来たら、あとは体に装着するだけ…!!
ではございません。
続いて、マイコンボード「Wemos D1 Mini」にプログラミング(をアップロード)をしていく必要があります。
SlimeVRファームウェアのビルドと設定方法およびトラッカーへのアップロード方法については下記リンクを参照してください。
1. トラッカーファームウェアのアップロード
2. 環境設定
以下のインストール方法について書かれています。すべて必須です。
「Visual Studio Code」
「PlatformIO IDE」
「Gitクライアント」
3. ファームウェアプロジェクトの設定
「platformio.ini の設定」
書き足す部分は以下のみで十分。
SSID_NAMEとPASSWORDを、
おうちで設定しているWi-Fiルータの設定にしてください。
-DWIFI_CREDS_SSID='"SSID_NAME"'
-DWIFI_CREDS_PASSWD='"PASSWORD"'
注意:マイコンボードは「Wemos D1 Mini」の2.4GHz帯域のみをサポートするので、お使いのWi-Fiルータの設定をご確認ください。
「defines.h の設定」
※上記のサイトより、「defines.h」を自動設定するためのやつがあるので確認してね。
※私は 調べるのが面倒 よくわからなかったので、自分が設定した内容は以下の通りです。
#define IMU IMU_ICM45686
#define SECOND_IMU IMU_ICM45686
#define BOARD BOARD_WEMOSD1MINI
#define IMU_ROTATION DEG_90
#define SECOND_IMU_ROTATION DEG_90
#define PRIMARY_IMU_OPTIONAL false
#define SECONDARY_IMU_OPTIONAL true
#define MAX_IMU_COUNT 2
#ifndef IMU_DESC_LIST
#define IMU_DESC_LIST \
IMU_DESC_ENTRY(IMU, PRIMARY_IMU_ADDRESS_ONE, IMU_ROTATION, PIN_IMU_SCL, PIN_IMU_SDA, PRIMARY_IMU_OPTIONAL, PIN_IMU_INT) \
IMU_DESC_ENTRY(SECOND_IMU, SECONDARY_IMU_ADDRESS_TWO, SECOND_IMU_ROTATION, PIN_IMU_SCL, PIN_IMU_SDA, SECONDARY_IMU_OPTIONAL, PIN_IMU_INT_2)
#endif
// Battery monitoring options (comment to disable):
// BAT_EXTERNAL for ADC pin, BAT_INTERNAL for internal - can detect only low battery, BAT_MCP3021 for external ADC
#define BATTERY_MONITOR BAT_EXTERNAL
#define BATTERY_SHIELD_RESISTANCE 180 //130k BatteryShield, 180k SlimeVR or fill in external resistor value in kOhm
#define PIN_IMU_SDA D2
#define PIN_IMU_SCL D1
#define PIN_IMU_INT D5
#define PIN_IMU_INT_2 D6
#define PIN_BATTERY_LEVEL A0
4. ファームウェアのビルドとアップロード
プログラムのビルドと、
「Wemos D1 Mini」にアップロードする方法が記載されている。

※ケーブルの差す位置は画像のとおり。
※「Wemos D1 Mini」へのアップロードが成功すると、青いランプが光るよ。
※USBケーブルがデータ通信対応であること。充電のみの場合はケーブル買ってね。
これのせいで原因突き止めるのに6時間ぐらいかかった。
これを作成したDIYトラッカーすべてに適応させます。
これより、最終段階に入る。さぁ、【SlimeVR】をインストールするぞ!
インストールしたら、セットアップしていこう。
基本は上記リンクのセットアップに沿って行けば問題ないです。
なお、「VRChat設定に関する警告」が表示されたら、以下からいつでも確認できる。


これらは「VRChat」のオプション画面と紐づいているので、
できるだけ同じ設定にすること。
以上。
※ご質問などがございましたら、コメントやMisskeyのDMよりご返信のほどお願いします!
こんにちは、絵猫のきつねです。
今日は未割当領域をCドライブに拡張する方法を記載します。
まず前提として、以下の画像のように右側に未割り当て領域がある状態では
簡単に拡張できません。この場合は下部にある『手順1』に進んでください。
もし、以下のように設定されている場合は『手順2』に進んでください。

まずは未割り当て領域を、Cドライブの隣に移動しなければなりません。
そこで AOMEI Partition Assistant Standard をインストールして、未割り当て領域をCドライブの隣におきます。
まずは、AOMEI Partition Assistant Standardを開き、以下のような画像の状態とします。この時、回復パーティションが邪魔なので、移動する必要があります。

回復パーティションを右クリックし、赤枠部分「パーティションをリサイズ/移動」をクリック

以下のような画面が出てきたら、

右側に移動し、「はい」をクリックします。

回復パーティションが右側に移動すれば成功です。
これを、未割り当て領域がCドライブの右側にくっつくまで移動させます。

最後まで移動した状態が以下のようになります。

後は適応など順次押していき、処理を確定します。


未割り当て領域がCドライブの隣に移動したことを確認。

以上で、未割り当て領域の移動が完了です。
以下をクリックします

Cドライブの隣が未割り当て領域になっていることを確認して、
赤枠のとおりにクリック




以下のようにCドライブが拡張できれば完了です。

以上です、お疲れ様でした。
こんにちは!えねこのきつねです!
今回は、タイトルの通りリモート接続する方法を記載します。

① pingで接続を確認
② Windows11からVisual Studio Codeを使用して接続確認
以下、手順です。
========================================
まずは、ネットワークを使用しているipを確認します。
◆ Windows側



※100.XXX.XXX.XXXとします
◆ Linux側
ターミナルからhostname -Iコマンドより、アドレスを取得します。

※Linux側のipアドレスを100.YYY.YYY.YYYとします
この後、pingコマンドを使用して、互いに通信できるかを確認します。
Linux側のipアドレス(100.YYY.YYY.YYY)が通るかを確認します。

ターミナルから、「ping 100.YYY.YYY.YYY」を入力
以下の画像のように通信できれば成功です。

Windows側のipアドレス(100.XXX.XXX.XXX)が通るかを確認します。
以下の画像のように通信できれば成功です。

まずは、Visual Studio Codeを開いて設定ファイルを開きます。
設定ファイルを開く手順は以下のとおりです。
1. CTRL + SHIFT + Pを押下
2. "Remote-SSH: Open Configuration File"を選択

3. 赤枠を選択(水色にはユーザー名が書かれているはず)

4. 以下のように設定して保存
(画像は例なので、実際には自身のホスト名、ipアドレス、ユーザ名を設定)

この後、以下のようにクリックします。

自身で設定したHostの名称が表示されるのでクリックします。
※なければVisualStudioCodeをすべて閉じた後、再度確認してください。

新しくVisualStudioCodeが立ち上がり、パスワードが求められるので
普段Linuxでログインしているユーザーのパスワードを入力します。

リモートに接続できれば、以下のような画面が出ます。

ディレクトリ配下を設定すれば完了です。

以上です。お疲れさまでした。
復習用。Qt4で構築する用。
公式リポジトリにqt4-qmakeが含まれているため、Ubuntu 18.04を使用。
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y wget build-essential ibssl1.0-dev qt4-qmake
sudo apt-get install -y \
libx11-dev \
libxext-dev \
libxtst-dev \
libxi-dev \
libxrender-dev \
libxcb1-dev \
libx11-xcb-dev \
libxau-dev \
libxdmcp-dev
sudo mkdir /inst
sudo mkdir -p /src/qt
cd /inst
sudo wget https://download.qt.io/new_archive/qt/4.8/4.8.7/qt-everywhere-opensource-src-4.8.7.tar.gz -O qt.tar.gz
sudo tar -xzf qt.tar.gz -C /src/qt --strip-components 1
cd /src/qt
sudo ./configure -prefix /usr/local/qt -release -opensource -confirm-license \
-no-declarative \
-no-accessibility -no-qt3support \
-no-script -no-scripttools \
-no-javascript-jit -no-audio-backend \
-no-sql-mysql -no-sql-sqlite \
-nomake tests -nomake plugins
sudo make -j"$(nproc)"
sudo make install
(例: 置き方)
vi ~/.bashrc

適応できた場合、以下のように表示される

以上で構築完了。
使用例を閲覧する用。
cp -R /src/qt/examples/ ~/(どこかのディレクトリ)/qt4_example
以上。
忘れそうなので書き込んでおきます。
Ubuntuを立ち上げた後、Dockerをインストールします。
参考
docs.docker.com
以下を実行する。
# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc
# Add the repository to Apt sources:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
$(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
Dockerコマンドを実行する際に管理者権限(sudo)を使わずに済むようにするために、以下を実行する。
sudo usermod -aG docker $USER
その後、Ubuntuを再起動し、idコマンドでdockerが存在することを確認する。

以上
こんにちは!
えねこのきつねです!
今回、特定の値毎に累積を詰めないかな?ということで作成してみました。
以下がpythonのソースとなります。
import numpy as np
import pandas as pd
import random
np.random.seed(1) # seedを1で固定
pd.set_option('display.max_rows', None) # すべての行を表示
tekitou_df = pd.DataFrame()
tekitou_df["column1"] = [int(i%10)+1 for i in range(100)]
tekitou_df["number"] = np.random.choice([0, 1], size=100)
# すべて1、0で置いたケースを作成 (確認用)
tekitou_df.loc[tekitou_df["column1"] == 1, "number"] = 1
tekitou_df.loc[tekitou_df["column1"] == 10, "number"] = 0
# column1行の、数値の種類ごとにカウント
tekitou_df['column1_cumcount'] = tekitou_df.groupby(['column1']).cumcount() + 1
# number_cumcount
tekitou_df['number_cumsum_by_column1'] = tekitou_df.groupby(['column1'])['number'].cumsum()
tekitou_df.sort_values(["column1", "column1_cumcount"])
column1_cumcountでcolumn1の出現?回数を累積し、
number_cumsum_by_column1では、column1毎のnumberを累積しています。
イメージ図

以上、復習用でした!