スマートフォン~PC用ヘッドセット変換アダプターの自作

iPhoneとかiPodで、SkypeやFaceTimeとか、ボイスチャットできるアプリが出てきて便利になったよね。
それに合わせてスマートフォン向けの有線ヘッドセットなんてのも出てきてる。

ただ、

  • スマートフォン向け有線ヘッドセットは種類が限られるし、PC用に比べると汎用性が無い
  • 第4世代のiPod touchの場合、本体内蔵のマイクを利用できるが、位置が背面カメラのそば。iPhoneのような持ち方で通話すると、周囲の雑音を拾いやすい

なんとかしてPC用のヘッドセットを使えないかなーと思ってアダプターを自作してみた。

◆必要な材料

  • 4極ミニプラグ
  • 3極ミニジャック×2
  • リード線(単線がおすすめ)

後ははんだ付けに必要な工具一式があればOK

材料

必要な材料。色々使えるかと思って編みチューブとか熱収縮チューブとか用意してみたけど、太くなっちゃって結局使えなかった

◆プラグ・ジャックの端子についてちょっと解説。

通常のステレオイヤホンならば、3極のミニプラグが多分主流。実物を見てみれば分かるけど、黒や緑の仕切りが2つある。

iPhoneと第2世代以降のiPod touchでは、4極ミニプラグというちょっと変わった端子の有線ヘッドセットが使える。このタイプの場合、マイク入力と音声出力が1つのプラグに合わさってる。

これに対してPC用のヘッドセットは、マイク部・音声出力部の2つの3極プラグに分かれていて、機器のそれぞれのジャックに繋ぐようになってる。マイク端子は基本モノラルなので2極のものもあるかも。

iPhone(iPod touch)へ繋がる4極プラグの各端子部の割り当ては、根元から先端へ、マイク、GND、右チャンネル、左チャンネルの順になってる。スマートフォン用として4極ミニプラグタイプのヘッドセットが出ている所からすると、多分iPhone、iPod touch以外のスマートデバイスも同じ配置。

◆各ジャックの配置

4極プラグを、2つのジャックに分岐させる形になる。

  • ヘッドホン用ジャック…GND、右チャンネル、左チャンネル
  • マイク用ジャック…GND、マイク
自作ヘッドセットアダプター接続図

図で表すとこんな感じかな?GNDを分岐させる。

◆製作中の様子

テスト

端子の対応を調べてみる

熱収縮チューブをカバー代わりに出来ないか試してみたけど、やっぱり変だったからやめた。

皮膜やそばに置いてあったキーボードを溶かしたりしたけどなんとか完成。4極ジャックの接続部が小さく、リード線の接続が難しかった!今回はリード線により線を使ったせいで、難易度が余計に上がっちゃってる。

完成品

完成。端子の左右の長さが違うとかにツッコんだら負け。

ところで、これまで再三ヘッドセットって書いてるけど、マイク部と音声出力は分かれてるから、好きなイヤホンとマイクを組み合わせて使えるメリットも。自分みたいなピンマイク派でもOK。

市販品でこういうの無いのかと思って作る前から調べてたんだけど、作ったあとになってこの手の変換をする市販品が見つかったので一応紹介w SteelSeriesから。

http://shop.steelseries.com/index.php/steelseries-mobile-device-adapter.html

市販品ではこんなもんかな。なんでこういうものがなかなか無いんだろう。
iPod touchはそもそもBluetoothヘッドセットが使えないし、iPhoneでも音質を気にしていたり、バッテリーの消費を抑えたいからBluetoothは使いたくないとか、そういう状況では使えそうなんだがなー。

自転車の後輪ブレーキの鳴きを直す

自転車の後輪ブレーキがギーギー言って、サドルやハンドル経由で体に伝わってくるほど酷くなったから直してみた。

乾燥してるからか温度が低いからなのかはわからないけど、過去にも何度かこの時期にあったような。

うちの自転車の後輪ブレーキはローラーブレーキで、この手の症状は側面にある注入口からグリスを補充することで直せるって説明書で読んだ気がする。これまでは他のグリスで代用してたんだけど、最近ふとネット通販なら純正グリスが手に入るんじゃない?と思いついて調べてみたらあっさり見つかった。

ローラーブレーキグリス

こんなの。100g入りで送料含めて1700円程度で入手。説明書は日本語も書いてある。

一回差してみたけどうまく入ってなかったらしく、すぐ再発。もう一回、今度はしっかり差してみたらちゃんと入ったらしく、鳴きが止まった。今は様子見中。チューブが不透明だしノズルは見えないから、グリスが入ってるのか入ってないのかよくわからないのが難点。

あと、間違ってもグリスの注入口に機械油を差さないように。どっかの注意書きに書かれてたとは思うけど、ホントにブレーキがまったく効かなくなるので(体験談w)

[L4D2]ゲーム参加時にアドオンデータが認識されなくなる?

あけおめことよろ ってことで新年1発目のネタを。

L4D2のクライアントに「ゲーム参加時にアドオンデータが認識されない」バグ(仕様?)があるかも。

自分のところで公開してるForce Mission ChangerのVote改造版とも関係してくるので、ちょっと書いてみた次第。

◆症状

ゲームに参加中にカスタムキャンペーンに変更した場合、ロード画面が紫と黒の市松模様になり、サーバーから切断される。

カスタムマップロード失敗時

このような画面になり、タイトルに戻されてしまう

コンソールには、”Host_Error: CMapLoadHelper::Init, unable to open (マップファイルのパス)”が表示される。

ここからマップをロードしようとすると、”Map_LoadModelGuts: Map with no texinfo, (マップファイルのパス)”というエンジンエラーが出てクライアントが落ちてしまう。

色々調べてみた結果、show_addon_load_orderというコマンドでアドオンのロード順序が表示できるということが判明。

◆検証してみる

  • 公式キャンペーンにマップ変更(=changelevel)したサーバー
  • カスタムキャンペーンにマップ変更したサーバー

を用意し、クライアントを参加させる。
参加後、クライアントのコンソールから、show_addon_load_orderを実行。

まず、タイトル画面。

タイトル画面でのアドオンリスト

タイトル画面でのアドオンロード順序

ここではアドオン設定で有効にしているアドオンデータが表示されるはず。これが通常。pak01.dirとかpak02.dirは基本データだと思うけど、細かくは知らないので書かないw

・公式キャンペーン参加時

公式キャンペーン参加時のアドオンリスト

公式キャンペーン参加時のロード順序。

タイトル画面のときにはリストされていたアドオンがない。

この状態でカスタムキャンペーンへchangelevelしてみると、症状が発生。

・カスタムキャンペーン参加時

カスタムキャンペーン参加時のアドオンリスト

カスタムキャンペーン参加時のロード順序

プレイ中のカスタムキャンペーンのデータはリストされているが、他のカスタムキャンペーンがリストされていない。

この状態では、公式キャンペーンか、プレイ中のカスタムキャンペーンの別チャプターへのchangelevelはできて、他のカスタムキャンペーンにchangelevelしようとすると、症状が発生する。

まとめると、

  • ゲームに参加中は、現在プレイ中のもの以外のアドオンデータが認識されていないらしい
  • タイトル画面ではアドオンが正しく認識できているため、カスタムマップが進行中のサーバーに参加できる

◆対処法

●(他の)カスタムキャンペーンに移りたい場合、移る直前にクライアント側でコンソールコマンド update_addon_paths を実行する

これを使うと、アドオンが再検索され、正しく認識されるようになるみたい。実行前後のロード順序リストと比較すると、数が増えていて、どのキャンペーンにマップ変更しても切断されることなくロード出来るはず。

ただし、各マップのロードが完了すると元の状態に戻るので、移る直前にその都度update_addon_pathsを実行しなくてはならない。

update_addon_paths実行時

update_addon_paths実行前後でのロード順序リストの比較

でも、コマンドを実行しても投票メニューからアドオンキャンペーンを選択することは出来ない。何故?

以前は、sourcemodプラグインでupdate_addon_pathsをクライアントに実行させることで、各クライアントに設定を強制することが出来ていたんだけど…2010年12月18日のアップデートでサーバー側から実行出来るコンソールコマンドがかなり制限されてしまったので、できなくなった模様orz

>http://store.steampowered.com/news/4805/

>Added protection against servers executing restricted commands on clients

うーん、いじる側からすると色々出来なくなっちゃうからこの制限は非常に残念。

現在はMOTD等で各プレイヤーに、マップ切り替え前にupdate_addon_pathsを実行するよう促すしか方法はない気がする…マップロードの度に自動で読み込むcfgがあればいいんだけどそういうのあったっけか?

Steamフォルダ移動後にHammerエディターが動作しない場合の対処法

Steamは、インストール後に容量不足等でドライブを変えたくなった場合、フォルダをまるごと移動させるだけで問題なく動く。ちなみに公式的な動かし方ってのがあるんだけど、フォルダをそのままコピペでも正常に動くことが多いんだよね。

それで何か月か前にSteamフォルダを移動したんだけど、今頃になってHammerエディターがエラーが出て起動出来なくなってることに気づいた。

エラーの内容は、”Setup file ‘gameinfo.txt’ doesn’t exist in subdirectory (パス) Check your -game parameter or VCONFIG setting.”というもの。


こんな感じのエラーがでて起動できない


L4D系だとこんなエラーも出る。

原因は…hammer.exeのあるフォルダにGameConfig.txtってファイルがあるんだけど、そこに書かれてるパスが、移動前のものだったこと。どうやらこのファイルは、Steamフォルダ移動後に自動的に修正されたりはしないみたい。ってかエラーメッセージが的外れなような…VCONFIGってのがGameConfig.txtに当たるのか?

あとで調べたんだけど、Source SDKの場合はパスがおかしいと起動前に”The configuration information for the game you’re trying to edit is invalid or missing.”という警告を出してくれる。


Source SDKだとこんな警告が出る。何故かL4D系だとこれが出ない

GameConfig.txtのパスを修正したら無事起動したんだけど、試しにGameConfig.txtを適当な名前にリネームしてHammerを起動してみたら、それでも動いた。GameConfig.txtが無いと自動的に必要なパスを探索してGameConfig.txtを作成してくれるみたい。動いた場合はリネームしたファイルは削除してOK。こっちの方が簡単で確実でしょ。

Source SDKの場合はGameConfig.txtがリネームされてるから「見つからない」って警告されるけど、Run Anywayを押すと使用ゲームの選択画面が出て、ゲームを選択してOKを押したらHammerが立ち上がった。

L4D2 The Sacrificeアップデート後鯖近況

The Sacrificeアップデートで音声データが収録されたから、ビル含めL4D1キャラが音声入りで使えるようになった。やったね。

The Passingから一応モデルだけは使えてたんだけど、ボイスコマンドでは何も言わないし、ビルは↓の姿勢で平行移動するしw

The Passingアップデート後に無理やりモデルをビルにした時のスクショ。こんなこともありました

ウチの鯖じゃThe SacrificeとNo Mercyが回る回る。それ以外のマップが恋しくなってきた今日この頃。

ところでThe SacrificeとNo Mercyだと、拙作のDefib Glitch Cancellerで死体位置が修正できてないことがあるみたい。

どうなってるかちょっと調べてみたんだけど、L4D1キャラがメインのマップだと、m_survivorCharacterの0~3にL4D1キャラが割り当てられてて、Character Select Modelプラグインとかを使って元々L4D1キャラに割り当てられてる5~8にセットして死体化すると、0~3の親キャラの位置に死体が出るみたい。変なの。

L4D1キャラメインのマップかどうか判別する手法ってないのかね。マップ名だと指定めんどくさいし、これをカスタムマップでやられたら対応しきれなくなるし。一応、一個思いついたけど面倒なんだよなー。