chikuchikugonzalezの雑記帳

趣味とか日記とかメモとか(∩゚д゚)

最近 Oblivion を復活させたのでメモを残しておく

つい最近、唐突に Oblivion やりたくなった*1ので環境を戻してました。つい Steam 版買っちゃってた*2のもあって、ゲームのインストールはサクッとで来たんだけど、MOD 管理環境が面倒なことになった。

*1:ニコ動で見てる「ロリコンが歩くスカイリム」にタマネギが出てきたからだと思う

*2:だいぶ前にGOTY版を買って持ってるにもかかわらず

続きを読む

ふと思い出した BodySlide Outfit Studio でメッシュを壊してた話

だいぶ前*1にこんなこと言ってました。


なんのこっちゃって話なんですが、これは防具の一部が形状変更スライダーに対応してないから、既存体型からウェイトをコピーして対応させようとしてたやつです。
で、その時に何が起きてたかというと、保存したメッシュが盛大に崩れて死ぬ*2っていう。

結論としては、操作順間違ってただけなんですけどね。

*1:一月末

*2:読み込むとCTD

続きを読む

Mastodonが話題なのでGNU Socialをローカルに立てる

Mastodonが流行ってますね。
そんな中でチラッと見た GNU Socialの方に興味を持ったのでローカルに立てるテスト。

git.gnu.io

続きを読む

Functional Homes v2の雑翻訳してた

Skyrimでハニーサイドに住んでるんですが、溶鉱炉がほしくてつい家改造MODである Functional Homes入れたんですが。
Functional Homes at Skyrim Nexus - mods and community
日本語訳が見つからないので雑翻訳作っておきました ╭( ・ㅂ・)و̑
*1

追記 (2016/12/05未明)
  • esp側を忘れてたのでそっちを追加 *2
  • 長くなったので続きを読む化

*1:Potion Combinerが強敵でした

*2:ホワイトランでブリーズホームを買おうとして気が付いた

続きを読む

最近のコントローラ事情

ついこの間、Windows 10ならBluetooth接続できるという新型 Xbox One ワイヤレスコントローラを買ってました。

いやホントに、フツーに繋がってUSBポートが一個空いたのは感動モノでしたね*1

とはいえ電池式になってしまったので、電池切れ対策どうしようかなー、とりあえずはエボルタかなー?

そんな時に

(´-`).。oO(Xbox Oneのプレイ&チャージキットってあったよな…?)
(´-`).。oO(いやでもそれだと結局充電用にポートふさぐし、それだと無線じゃなくて優先扱いになってしまうしなー)
(´-`)…
( ゚д゚)!
( ゚д゚)USB充電器使えばいいんじゃね?

で、そろえたもの

Xbox One プレイ & チャージ キット

Xbox One プレイ & チャージ キット

これで充電しながら無線のままでいられる環境がそろってしまった( ・´ー・`)

*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

*1:HashiCorpの人が作ってた

*2:コード量の大半はFFI絡みという

*3:フルパスに関しては取れないこともある前提で。型もOptionだし。

*4:Result型に入らない的な意味で

DUALSHOCK4を手に入れた

普段ゲームやるときは大抵Xbox One Controllerで済ませてきたんだけど、たまにXinputじゃないゲームをやるときに使ってたコントローラの調子が悪いことに気が付いてしまった。
そこに「PS4のコントローラはPCでも使える」という情報を入手したので、唐突に買いました。DUALSHOCK4だけ。

所感

とりあえずUSBケーブルでPCにつなぐとちゃんと認識された…ってお前、有線で繋がってるのにワイヤレスって言い張るのか
f:id:chikuchikugonzalez:20160909003446p:plain

そしてボタン配列を見たところ、こいつ14ボタンだったんだな*1*2
f:id:chikuchikugonzalez:20160909003603p:plain

押した感じは特に問題なく、持ってみても違和感はなかった。
ただ、スティックの配置ちょっとおかしくないですかね。
右スティックがX回転/Y回転かと思うじゃん?残念がるZ軸/Z回転なのよね(;´д`)

え?X回転/Y回転はどこ行ったかって?そりゃもちろん L2とR2 ですわ。
どういうことかというと、

  • L2を押すと7番と認識されつつX回転がギューンと伸びる
  • 同じくR2は8番かつY回転

という配置。( ´゚д゚`)エー、Xboxコントローラっぽいかと思ったら違う配置というのはちょっと直感からずれる気がする。
というか、Z回転なんであるんだ

*1:PS4持ってないので、タッチパネルエリアがボタンになってるとは知らず

*2:SHAREとOPTIONボタンも9番と10番として使える