つい最近、唐突に Oblivion やりたくなった*1ので環境を戻してました。つい Steam 版買っちゃってた*2のもあって、ゲームのインストールはサクッとで来たんだけど、MOD 管理環境が面倒なことになった。
続きを読むふと思い出した BodySlide Outfit Studio でメッシュを壊してた話
だいぶ前*1にこんなこと言ってました。
Skyrimでoutfit studio使うとおかしい感じになってたのが直せたので満足
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2017年1月31日
Load Referenceを後からやればよかっただけなんてな…
— ちくちく( ´ω` )ごんざれす (@chiku2gonzalez) 2017年1月31日
なんのこっちゃって話なんですが、これは防具の一部が形状変更スライダーに対応してないから、既存体型からウェイトをコピーして対応させようとしてたやつです。
で、その時に何が起きてたかというと、保存したメッシュが盛大に崩れて死ぬ*2っていう。
結論としては、操作順間違ってただけなんですけどね。
続きを読む最近のコントローラ事情
ついこの間、Windows 10ならBluetooth接続できるという新型 Xbox One ワイヤレスコントローラを買ってました。
Xbox One ワイヤレスコントローラー (ドーンシャドウ)
- 出版社/メーカー: 日本マイクロソフト
- 発売日: 2016/10/13
- メディア: Video Game
- この商品を含むブログを見る
いやホントに、フツーに繋がってUSBポートが一個空いたのは感動モノでしたね*1
とはいえ電池式になってしまったので、電池切れ対策どうしようかなー、とりあえずはエボルタかなー?
そんな時に
(´-`).。oO(Xbox Oneのプレイ&チャージキットってあったよな…?)
(´-`).。oO(いやでもそれだと結局充電用にポートふさぐし、それだと無線じゃなくて優先扱いになってしまうしなー)
(´-`)…
( ゚д゚)!
( ゚д゚)USB充電器使えばいいんじゃね?
で、そろえたもの
- 出版社/メーカー: 日本マイクロソフト
- 発売日: 2014/10/02
- メディア: Video Game
- この商品を含むブログを見る
usb充電器 RAVPower 24W 2ポート 充電器 iPhone iPad スマホ タブレット モバイルバッテリー 等対応 ac アダプタ 急速充電 チャージャー (ブラック)
- 出版社/メーカー: RAVPower
- メディア: エレクトロニクス
- この商品を含むブログを見る
これで充電しながら無線のままでいられる環境がそろってしまった( ・´ー・`)
*1:4個中3個埋まってたのが2個に減った
Rustでプロセスの実行ファイルパスを取得するナニカを作った
Process Entry、略して pentry と名付けました。
github.com
大元の動機は結構前にGoでツール作ってた時、「あー、親プロセスの実行ファイルとれねーかなー」とか思ったたら既にあったというもの*1。
github.com
で、これと同じことをRustできないかなー、って思ったのが始まり。
つーてLinux側は特に心配してなかったんだけど、Windows側はFFIの関係でちょっと苦労した*2。
使い方
基本はプロセスIDから探すので、こうなります。ところでホントにlibc使わないと今のプロセスID取れないんですか…?
extern crate libc; extern crate pentry; let pid: i32; unsafe { pid = libc::getpid() as i32; } if let Ok(ps) = pentry::find(pid) { println!("#{} {}", ps.pid(), ps.path().unwrap()); }
で、いちいちlibc書くのめんどいだろうからヘルパー的に現在プロセスを取得する関数はあります。
extern crate pentry; if let Ok(ps) = pentry::current() { println!("{:?}", ps); }
取得できたプロセスオブジェクトには親プロセスを取得するためのメソッド parent() が生えているので、それをたどれば親プロセスを取得できます( ´∀`)b
extern crate pentry; let ps = pentry::current().unwrap(); let pps = ps.parent().unwrap(); println!("Parent: {:?}", pps);
おまけ:pentryコマンド
cargo install pentryとかすると一緒に pentry コマンドが $HOME/.cargo/bin に配置されます。これを使うと特定プロセスの実行ファイルとか見れます、たぶん*3。
ある意味参考実装的なものですね。
chiku2gonzalez@xenial:~$ pentry -h Show some process information. USAGE: pentry -h|--help pentry [-P|--parent] [PID [PID...]] Options: -h, --help Show this usage message. -P, --parent Inspect parent process entry. chiku2gonzalez@xenial:~$ .cargo/bin/pentry PID PPID PATH 5284 2379 /home/chiku2gonzalez/.cargo/bin/pentry chiku2gonzalez@xenial:~$ .cargo/bin/pentry -P PID PPID PATH 2379 2377 /bin/bash 5295 2379 ┗ /home/chiku2gonzalez/.cargo/bin/pentry chiku2gonzalez@xenial:~$
余談
とりあえず trait を Go の interface みたいにできないのがツライ(´・ω・`) *4
DUALSHOCK4を手に入れた
普段ゲームやるときは大抵Xbox One Controllerで済ませてきたんだけど、たまにXinputじゃないゲームをやるときに使ってたコントローラの調子が悪いことに気が付いてしまった。
そこに「PS4のコントローラはPCでも使える」という情報を入手したので、唐突に買いました。DUALSHOCK4だけ。
ワイヤレスコントローラー (DUALSHOCK 4) ウェイブ・ブルー
- 出版社/メーカー: ソニー・コンピュータエンタテインメント
- 発売日: 2014/02/22
- メディア: Video Game
- この商品を含むブログ (1件) を見る
所感
とりあえずUSBケーブルでPCにつなぐとちゃんと認識された…ってお前、有線で繋がってるのにワイヤレスって言い張るのか
そしてボタン配列を見たところ、こいつ14ボタンだったんだな*1*2
押した感じは特に問題なく、持ってみても違和感はなかった。
ただ、スティックの配置ちょっとおかしくないですかね。
右スティックがX回転/Y回転かと思うじゃん?残念がるZ軸/Z回転なのよね(;´д`)
え?X回転/Y回転はどこ行ったかって?そりゃもちろん L2とR2 ですわ。
どういうことかというと、
- L2を押すと7番と認識されつつX回転がギューンと伸びる
- 同じくR2は8番かつY回転
という配置。( ´゚д゚`)エー、Xboxコントローラっぽいかと思ったら違う配置というのはちょっと直感からずれる気がする。
というか、Z回転なんであるんだ