2010年12月22日水曜日

ビデオの再生方法を調べる

さてジェスチャーの見通しが立ったかなと。
このままジェスチャーからやってもいいのだけれど、アルゴリズムが長くて少しだれてきた。

ビデオ再生

少し方向を変えて、ビデオを表示してみよう。
今の時代ともなると、ビデオは簡単に再生できるライブラリがあるんじゃないかなと期待。


microsoft.xna.framework.media

XNAでは、media 以下に VideoPlayer や Video というクラスがある。

ビデオの現在の絵をエフェクトとして取り出すことができるので、これを貼り付ければいい。
protected override void Draw(GameTime gameTime) {
  _effect.Texture = _player.GetTexture();

このクラスでは、動画はコンテントの仕組みでプログラムに組み込まなければならないようだ。
さらに、コーデックが WMV に限定されている。
コンテントについてはローダ部分を書けばファイルから取れるかもしれないけれど、コーデックはどうしようもない。


DirectShow

COMベースのメディアフレームワーク。元々は DirectX の一部だった。
フィルタパターンで美しそうな設計だ。
コーデックは、対応したソースフィルタを開発し、フィルタグラフに載せることで対応できる。

ただし、C# から使えるラッパは LGPL のしか無いようで、LGPL にしないなら自前で書かないとならない。


Media Foundation

DirectShow の後継で、Vista 以降専用。
現状で DirectShow との差異は、HD動画、DRM対応、効率向上といったところなのかな。


うーん…

DirectShow か MediaFramework か。
MediaFramework は新しいこと以外にこれといってメリットもなさそうだ。
このために WinXP を捨てるのはペイしないなぁ。

DirectShow にするとして、開発環境をどうしよう。
ラッパ使ってもいいのだけれど何とも釈然としない。

技術的にできることが政治的にできないのはムカムカするんだよな。

2010年12月21日火曜日

MMD の kinect 対応

キタ!


ここまでは時間の問題であったわけですが、予想以上に早い。

2010-11-04 米国で kinect 発売
PCで動かせるようになるまで数週間かなぁ
2010-11-10 オープンソースドライバ公開
2010-11-19 MS, Kinect のオープン利用を容認
2010-11-20 JST 日本で kinect 発売
誰かが MMD 対応するだろうけど、モーションデータを PMD 形式にするだけでも一ヶ月はかかりそうだな
2010-12-08 OpenNI 公開。スケルトントラッキング!
2010-12-13 樋口MのMMD+Kinect動画。作者キター! リアルタイム!
2010-12-19 MMD+Kinect 公開
※日付は現地時刻。




さっそく遊んでみましたw

モーションデータも配布してますので、MMD屋さん興味あったらどうぞ。


MMD+Kinect 動作までの流れ

忘れないうちにメモ。

1. Kinect USB インターフェースを用意。

以前も書いたけれど、XBOX360+Kinect バンドルパックだと USB 端子が無くて、サポセンに電話して4000円でケーブル買わないとならないので注意してください。

2. OpenNI, NITE のインストール

OpenNINITE をダウンロードしてインストール。

Kinect ドライバのインストール

https://github.com/avin2/SensorKinect の Bin/SensorKinect-Win32-5.0.0.exe をダウンロードして実行します。

※注: 上記のバイナリは、https://github.com/ros-pkg-git/Sensor でソースコード配布されている OpenNI PrimeSense モジュールを第三者がコンパイルしたものです。
OpenNI の方がこなれてくれば、簡単なインストーラが配布されるでしょうから、そちらを利用してください。

環境変数

マイコンピュータのシステムの環境変数で、
  • XN_SENSOR_VENDOR_ID の値を 0x045E
  • XN_SENSOR_PRODUCT_ID の値を 0x02AE
で新規登録。 Windows での環境変数の反映のタイミングを知らないので、ここで一旦再起動。

Kinect の接続とテスト

Kinect を PC に繋ぎます。USBハブなどは経由せずに、直接PCに挿してください。 OpenNI のインストールディレクトリ(C:\Program Files\OpenNI かな)以下の、Samples\Bin\Release\NiViewer.exe を起動。
しばらくすると、フルスクリーンになって、Kinect の見ている映像が表示されれば成功です。
ダメだったら頑張ってくださいw

MMDインストール

VPVPから、MMD 7.24 と DxOpenNI をダウンロード。 MMD は適当な場所に展開。 次に、MMD の Data フォルダに、DxOpenNI に同梱されている
  • DxOpenNI.dll
  • SamplesConfig.xml
をコピー。

MMD起動

  1. Help メニューから Kinect をチェックして、
  2. 両腕を上げるポーズをとる
キャプチャなどは 樋口さんの説明動画 を見てください。

さぁこれで君もミクミクだ。

2010年12月12日日曜日

Wiiリモコンのジェスチャー認識

3軸加速度は大体分かったところで、次はジェスチャ認識を試してみましょう。
おそらくゲームのキモの部分になるけれど、じっくり調整は後にして当面は出来合いの流用してすましたいところ。

wiiremote gesture recognition で検索するといくつも出てきますね。

フリーソフトウェアとして整っているものは wiigee しか無いようです。
しかしこれは Java で書かれていて、C# XNA とは相性がよろしくない。

C で書かれた WiimoteGR というのもありました。ライセンスは不明。

論文は豊富にありますが、ソフトウェアが公開されているものは少なそう。
基本的には研究室内で使われているコードなんでしょうね。
いずれ書き直すとして、WiimoteGR 使いましょう。

論文は A latest compilation of links to the wiimote のリンク集が良さそうです。
ざっとサーベイしたところ、ニューラルネットはダメで、隠れマルコフモデル(HMM)が主流で、Slow Feature Analysis(SFA) が有望という感じ?


WiimoteGR

パターン認識のアルゴリズムはまだいいけれど、全体の設計は理解しておきます。

main() から処理が始まり、トレーニングをしてテストという流れになっています。
トレーニング時は パターン名を指定して、3軸加速度を何セットか記録。SQLLite で保存。

テスト時は SQLLite から学習データを読み込み、
リモコンのデータを記憶しながら、過去いくつかの入力信号をまとめてパターン認識にかける。

認識器は HMM クラス、隠れマルコフモデルでしょう。
const HMM& HMMLib::Recognize(const vector<HMM>& HMMVec, TimeSlot& seq) { vector<HMM>::const_iterator recognizedHMM = HMMVec.begin(); for(vector<HMM>::const_iterator curHMM = HMMVec.begin()+1; curHMM < HMMVec.end(); curHMM++){ if( SeqLogProb(*curHMM,seq,false) > SeqLogProb(*recognizedHMM,seq,false) ) recognizedHMM = curHMM; } return *recognizedHMM; }
HMMLib は個々のパターンを表す HMM オブジェクトを何組か持っていて、
Recognize() 関数は SeqLogProb() の値が一番大きい HMM を選んで返すようだ。

おそらくこれは、ユーザーがジェスチャで何らかのコマンドを入力するというシーンを想定しているのであろう。
未知の入力対して、一番近いジェスチャパターンを返す。
対して振りゲーの場合、正解となるジェスチャが分かっている。
そのジェスチャとのみ評価を行い、評価値が一定以上ならば正解とする使い方になる。

ところで、テスト部では
while(wiimote.Button.A()){ wiimote.RefreshState(); // Acceleration: tempAcc.x=wiimote.Acceleration.X; tempAcc.y=wiimote.Acceleration.Y; tempAcc.z=wiimote.Acceleration.Z; tempSeq.AddObservableSymbol(defaultQuantizer.Quantize(tempAcc)); cout << trainer.Recognize(loadedHMMVec,tempSeq).gestureName << " "; gestureReceived = true; Sleep(10);//period (ms) } void AddObservableSymbol(size_t obsSymbol){ o.push_back(obsSymbol); }
3軸加速度そのものではなく、量子化(Quantize)した size_t 型の値を使っているようだ。

Quantize() 関数は
size_t DefaultQuantizer::Quantize(const Acceleration& acc) const{ double rho = sqrt(acc.x*acc.x+acc.y*acc.y+acc.z*acc.z); return (rho>rho_threshold? 1<<3 : 0) + (acc.x>acc.y? 1<<2 : 0) + (acc.y>acc.z? 1<<1 : 0) + (acc.z>acc.x? 1 : 0); }
となっていて、4bitのビットベクトルである。ビットの意味は
  • 加速度の大きさが、スレッショルドを超えているかどうか
  • 加速度の X方向成分が Y方向成分よりも大きいかどうか
  • 加速度の Y方向成分が Z方向成分よりも大きいかどうか
  • 加速度の Z方向成分が X方向成分よりも大きいかどうか
後段の 3つは加速度の向きを単純化したもので、最初の1つは大きさを単純化したものである。
3軸加速度そのものは使わずに、パターン認識に必要十分な特徴量へと変換したというわけであろう。
この量子化関数はパターン認識の精度に関わる重要なファクターになりそうだ。

例えば、このコードでは三軸加速度のみを用いているが、M+ のジャイロセンサーを活用できるであろう。
単純に、加速度と同様の手法で角速度を8通りに量子化すればよいのであろうか。
各速度を積分して姿勢を判別し、加速度に向きの補正をかければ良いのであろうか。
しっかり考えないと分からないな。

2010年12月10日金曜日

ダンガンロンパ

久しぶりにゲームクリアしましたよと。

ダンガンロンパ、PSP のアドベンチャーゲームです。
シナリオは閉鎖空間固定メンバーで次々に殺人が起きていくサスペンス。
ゲーム的には逆転裁判みたいな議論の矛盾を突いていくものです。

まずはシステムから。
本質的には逆転裁判と同じで、アクションの味付けがされています。
逆裁は長く議論続くとだれちゃうところありますが、ダンガンロンパはちょくちょくアクションが変わるので飽きにくい感じですね。
ちょいとルールが多すぎるきらいはありますが、なかなか楽しいゲームシステムになっていると思います。

さて、シナリオ。
評価ポイントは、ミステリの基本である動機とトリック、そして脱出モノとして舞台設定という三本ですかね。
ひどいってほどではないけれど、正直及第点は付けられないなぁ。

トリックは簡単。死体発見のタイミングで謎の半分は予想付きます。
さらに調査パートで大部分が分かり、議論パートまで分からないのはひとつふたつ。
次々に暴いていくという快感には欠けますね。

さらに「モノクマ」というゲームマスター的なキャラがいまして、ちょくちょくコントロールしてくれちゃいます。
「この事件に共犯者はいない」とか「DVDのこの先は見ちゃダメ」とか。
正直白けます。

動機はとってつけたようなもの。
残る世界設定も、ラノベ的非現実さとご都合主義で置いてけぼり感が強い。
グループ脱出モノとでも言うのかな。
たとえば去年出た「9時間9人9の扉」と色々とかぶります。
999もご都合主義的なルールが多いんですが、シナリオやキャラクターでうまく説明していて白けないよう努力している。
ダンガンはちょっと手抜きがすぎる気がしますねぇ。

おそらく売りでもある演出面があります。
これまたエキセントリックなキャラクタ付け、残虐描写、有名声優などなど、エッジを効かせているんでしょうね。
すいません、悪趣味で権威主義にしか思えませんでした。
悪趣味の気分悪さを感じさせるのは意図的なのは分かります。
でもそんな偽悪的な手法はもうありきたりで、そこからは一歩も出ていないですね。

まとめ。
法廷パートだけでもまぁ楽しめます。
これだけなら可は付けられるかな。
しかし演出などがマイナスに働いて、総合すると満足度は低いです。

2010年11月28日日曜日

加速度から向きの算出

引き続き、XNAとWiimoteLibで3Dオブジェクトを操作の解析を行います。

過去50個の平均をとってならしている部分を省くと、
void wm_WiimoteChanged(object sender, WiimoteChangedEventArgs args) { WiimoteState ws = args.WiimoteState; //WiimoteStateの値を取得 x = ws.AccelState.Values.X } protected override void Draw(GameTime gameTime) { x = (-x * 90.0f); x = x / 180 * 3.14f; effect.World = Matrix.CreateFromYawPitchRoll(0, y, x); }
という感じです。y も同じコード。
AccesState.Values に角度に比例した値、具体的には -1..1 の範囲に丸めた値が入っているのかな?


イベントハンドラ

一番上の ws とは何かというと、
this.wm = new Wiimote(); this.wm.SetReportType(InputReport.IRExtensionAccel, true);//レポートタイプの設定 this.wm.WiimoteChanged += wm_WiimoteChanged; //イベント関数の登録
という手順で登録されたイベントハンドラの引数。

イベントハンドラ登録前の
Wiimote.SetReportType Method (InputReport, Boolean)
  Set Wiimote reporting mode (if using an IR report type, IR sensitivity is set to WiiLevel3)

  public void SetReportType(InputReport type, bool continuous)
    continuous: Continuous data
InputReport はおいといて、continuous は data が連続的な値になるみたいですね。
1byte の値そのままじゃなくて、実数に丸め込むのかな?
しかし AccelState には Values だけでなくて RawValues ってフィールドもあるから両方取れるのだが…。
ちょっと具体的にはよく分からないけれど、こういうパラメータがあることだけ覚えておきましょう。

続いて InputReport は、
InputReport Enumeration
  The report format in which the Wiimote should return data 

Member nameDescription
Status
Status report
ReadData
Read data from memory location
OutputReportAck
Register write complete
Buttons
Button data only
ButtonsAccel
Button and accelerometer data
IRAccel
IR sensor and accelerometer data
ButtonsExtension
Button and extension controller data
ExtensionAccel
Extension and accelerometer data
IRExtensionAccel
IR sensor, extension controller and accelerometer data
IRExtensionAccel は IR と Extension と Accel なイベントを有効にする、ということのようです。
内部的にはビットベクトルになってそうです。


イベント

Wiimote.WiimoteChanged Event Event raised when Wiimote state is changed Syntax public event EventHandler WiimoteChanged
とのことで、状態が変わったら呼ばれるようです。

このイベントオブジェクトには WiimoteState がメンバ変数にあって、WiimoteState は
WiimoteState Members
NameDescription
AccelCalibrationInfo
Current calibration information
AccelState
Current state of accelerometers
BalanceBoardState
Current state of the Wii Fit Balance Board
Battery
Calculated current battery level
BatteryRaw
Raw byte value of current battery level
ButtonState
Current state of buttons
ClassicControllerState
Current state of Classic Controller extension
DrumsState
Current state of Drums extension
Extension
Is an extension controller inserted?
ExtensionType
Extension controller currently inserted, if any
GuitarState
Current state of Guitar extension
IRState
Current state of IR sensors
LEDState
Current state of LEDs
MotionPlusState
Current state of the MotionPlus controller
NunchukState
Current state of Nunchuk extension
Rumble
Current state of rumble
TaikoDrumState
Current state of the Taiko TaTaCon drum controller
いろいろメンバがありますね。
おそらくはこのライブラリで取得できるリモコンの値はこれで全部なのでしょう。


AccelState

長々とイベントハンドラの仕組みを追いましたが、結局のところすぐ上の AccelState.Values を使っています。

AccelState.Values は、WiimoteLib のヘルプによると
Normalized accelerometer data. Values range between 0 - ?, but values > 3 and < -3 are inaccurate.

0からの範囲に正規化した値のようです。プラスマイナス3を超えた値は不正確であると。

正規化というのは具体的には何でしょう。
センサから取れる加速度は 1byte の値なので、これをプラスマイナス3の範囲になるように変換したと思われます。
ゼロはおそらく静止状態でしょう。

件のソースコードでは、この値が 1 のときに 90度であるとみなしていました。
力を加えていない時にリモコンを傾けた時に、重力のX方向成分はサインカーブを描きます。
ということは、正規化とは有効値を 3 に収めるのではなくて、リモコン回した時の重力加速度の変化が 1 になるようにしたものということかな。

しかし値はあくまで加速度の成分で、角度に変換されているとはちょっと考えにくい気がします。
おそらくは、サンプルプログラムだから簡単に、サインカーブと比例直線を同じとみなして扱っているのでしょうか。

と、大体予想がついたところで、次はライブラリのソースみたり実測して確認をしましょう。

2010年11月27日土曜日

apt-X

以前のエントリで Bluetooth ヘッドホンを買った話をしました。
その時は iPod 標準で使える A2DP SBC エンコードで聞いていたわけですが、より高音質・低遅延とされる pxc-310-bt は apt-x にも対応しています。

トランスミッタ

せっかくいいヘッドホンなのでこれは試してみるしかないでしょう。

少し調べた感じでは、iPod に付けられる apt-X 対応の Bluetooth トランスミッタは PXC 310 BT と同じゼンハイザー製の BTD 300iと Creative BT-D5 の二つしかなさそうです。

オーディオメーカーとしてはどちらも信頼できますし、単純に価格で BT-D5 を購入。

たまに挿しても認識されないことがあります。
挿しなおせばいいのですが、毎日充電するために抜き挿しするので少々面倒くさい。
Creative にはこのドングルとセットで使う想定のスピーカー
Zii Sound D5には、ドングル挿したまま充電できるドックがあるので、スピーカー買うならこれを選ぶとよいかもね。

接続

ペアリングはマニュアルの通りで問題無し。
ヘッドホンが iPod と繋ぎにいっちゃうんで、iPod の Bluetooth は切っておいた方が良いでしょう。

接続は多少時間がかかります。
たまに接続できないこともありますが、PXC 310 BT の Bluetooth や電源を入れなおせば繋がります。

後は A2DP SBC でも同じでしょうが、たまに電波干渉が気になるくらいです。

特に電子レンジはひどくて、大きめのコンビニの端でも電子レンジ動くとノイズが乗ります。

また、一度 WM3300R の WiFi で iPod 繋ぎながら聞いていたのですが、iPod と WM3300R の間に PXC 310 BT が入るとノイズ乗る感じでした。

AVRCP

Bluetooth オーディオで使われる機能の一つに、AVRCP というものがあります。
これは曲の再生や早送りなどの操作をするためのプロファイルです。

iPod 標準で使える Bluetooth オーディオでは、再生・停止・次曲・前曲はできますが、早送り・巻き戻しはできません。

BT-D5 はちゃんと対応していますので、早送り・巻き戻しもできます。
この機能差を利用して、きちんと BT-D5 経由で接続していることの確認にも使えます。

遅延

さて、apt-X の売りの一つが低遅延です。
DDR S+ の無料版をダウンロードして比較してみました。

SBC では155BPM(A Brighter Day)で矢印マーカーの1/8~1/2くらいのズレ(0.2秒くらい?)が分かり、リズム通りに押すとGreat~Goodくらいというタイミングです。
目押しでプレイできなくは無いですが違和感があって楽しくはありません。

対して apt-X では差は感じられず、ぴったり一致したと思ったタイミングで MARVELOUS が出ます。
もしかしたら微妙な差があって上級プレーヤーは気づくかもしれませんが、僕程度では分からないです。

音質

再接続に時間がかかることもあり、最初に聞き比べたときは「言われれば分かるかな」くらいに思っていました。

実は iPod 届いた翌日に届きまして、SBC 音質を深く体験する前に apt-X に移っちゃいました。
数週間 apt-X で過ごし、先日ドングルを忘れたので SBC で聴いてみてその差に驚きました。
記憶で判別できるくらい、全然違いました。


44.1kHz/192kbps/MP3 をそのまま iPod に持ってきて聴いています(売りものでこのアレンジは無いので)。

NEL の冒頭に残響のあるテクノ音があります。右耳の方は一音叩いた後に小さな残響が次の一音まで続くので浮遊感を受けますが、これが SBC だと途切れてタンタンタンと一音ずつ叩いてステップしている感じになってしまいます。
振幅の解像度というよりかは、そもそも小さな音を切っちゃっているんでしょうかね。

他にも低音の出、音が重なった時の各楽器の分離性等々かなり違うように感じられます。
これは実際に、音楽に浸れるかBGMとして流すかの差になってあらわれてきました。

PXC310BT買うのでしたら絶対に apt-X 使ったほうが良いです。

2010年11月25日木曜日

加速度から向きの算出

前エントリのサンプルコードを貰ってきたサイトに、
という記事があって、加速度から位置を計算する時のポイントが色々かかれています。 しかしまだ位置の前段階、まずは角度です。 正直リモコンで測れる加速度とは何なのかイマイチ掴めていなかったのですが、上の記事を読んで分かりました。
F = ma
の a, 力に比例する値を計測しているのですね。 さらにサーベイしてみても、歪み検出から力を測定しているようです。 加速度を二階積分すれば位置になりますから、そうやって位置も測れるのでしょう。 向きを測る場合は、リモコンに力をかけない状態の加速度、つまり重力加速度を使えばいいわけです。 重力は鉛直方向ですから、静止状態の加速度の方向が「下向き」というわけです。 重力ベクトルとの角度を求めれば、リモコンの向きも分かるわけです。 #厳密に言えば遠心力やコリオリの力も考えないといけないかな? というところで今日はおしまい。

M+ 一体型リモコン

先日モーションプラス一体型のリモコンが発売されました。 スーパースマッシュボールプラス同梱のピンク色のリモコンを入手しまして、WiimoteLib に繋いでみました。

通常モードは普通に動きますが、モーションプラスは認識されていない?ようです。
アタッチメント式のモーションプラスは特殊な I/O アクセスをしていたらしいので、また少し変わったのでしょうね。
早めに対応してくれるといいなぁ。

2010年11月24日水曜日

サンプルを動かす

XNA で Wiiリモコン使ったサンプルが
KOSAKA Laboratory Tips にありましたので、早速ためしました。

コンパイルして動かすのは問題なし。ソースコードのお勉強です。

プログラムのキモは二つあって、XNA/DirectX 関連の部分と、リモコンから取得した値の意味の部分。

XNA


  public class Game1 : Microsoft.Xna.Framework.Game {
    protected override void Initialize() {
    protected override void LoadContent() {
    protected override void UnloadContent() {
    protected override void Update(GameTime gameTime) {
    protected override void Draw(GameTime gameTime) {
ゲームメインのクラスは Microsoft.Xna.Framework.Game のサブクラスとして作り、各種関数をオーバーロードするようです。

Update/Draw がフレーム毎に呼ばれ、それぞれゲーム内部処理と描画処理を記述。

3Dモデルや音楽などは Content という機能で扱うようです。
コンテントプロジェクトというものを作り(XNAプロジェクト作ると自動的にできる)、そこにコンテンツファイルを追加。
すると扱いやすいよう変換して実行バイナリに埋め込まれるそうです。
標準的なデータタイプはそのまま扱えるし、独自形式なら解釈する部分を書けば拡張できる、と。
なかなか良い仕組みですね。

コンテントのロードは

    protected override void LoadContent() {
      this.xfile = Content.Load("wiimodoki");  //Xファイルの読み込み
      foreach (ModelMesh mesh in this.xfile.Meshes)  //メッシュごと
      {
        foreach (BasicEffect effect in mesh.Effects) {
          effect.View = Matrix.CreateLookAt(...);
          effect.Projection = Matrix.CreatePerspectiveFieldOfView(...);
        }
      }
Content.Load でできる、と。Xファイルからモデルを読み込んでいるのでしょう。

コードによると、Xファイルには複数の Mesh があり、メッシュはさらに複数の Effect を持ち、Effect には方向などを指定できるらしい。
ここはちゃんと調べましょう。

メッシュ(ModelMesh)はひとかたまりの3Dオブジェクト、と言ってしまっていいのかな。
独立して動かすことの出来る単位だそうです。
人体で言えば頭とか上腕とか、そのくらいの分割単位になるんじゃないでしょうかたぶん。
結び付けられる親ボーンも一つ参照しています。

メッシュはさらにパーツ(ModelMeshPart)に分かれます。
これはマテリアル情位で分割するものらしい。
デバイスに送る頂点情報やジオメトリ情報を持っているそうで、ここが最小単位ですかね。
他にもいくつかの情報を持っていて、その一つにエフェクトがあります。

エフェクトが何なのかはちとすぐには見つからないので保留。
シェーダ関連の情報が入るみたいです。
描画処理の肝の部分でしょう。
そういうわけで、向きのデータなどはエフェクトに入れるわけですね。

また bluetooth

ところで上のテストやっている間、何度も何度もリモコンの接続やり直したわけですが、やっぱ耐え難いものがあります。

もうちょっと調べて見ると
kako.com
flatlib.jp
と、スタックを叩いて自動的に接続するような手法を採っているようです。

Broadcom スタック叩いた経験から、大体やることはわかりますので、ちゃんと作った方が後々効率よさそうです。
形態はアプリ内蔵か常駐プログラムですかね。XBOX化を考えるんなら内蔵形式がいいのかな。

エンジン/フレームワーク選び

さて Bluetooth はこの辺にしておいて、いよいよリモコン読みに入ります。

値を printf するだけなら簡単ですが、どうせならゲームを考えて DirectX なんぞを学びつつやりましょう。
しかし DirectX 直利用は大変そうだし、ゲームエンジンやフレームワークを使えたらよいな。

GUIツールキットなら WxWindows, Qt など多少わかりますが、あまりゲーム向きでないですかね。

いわゆるゲームエンジンでフリーで使えたかなというものを思い出すと、
  • UnrealEngine: 大げさすぎる気がする
  • Unity: いいエンジンだけどメリットはスマートフォンだよなぁ。そこは今は考えていない。
やっぱがっつりしたエンジンはちょっとためらいますね。
ロースペックで動くかも分からないし。

DirectX をラップしてゲームループ提供する程度のもの…そういえば XNA ってのがあったよな。
これで作っとけば XBOX でも動かせるんじゃなイカ?
Mac とか iPhone は別にいらないし。

というわけで、XNA を選びました。
最新版の XNA Game Studio 2010 は、Zune や WindowsPhone もサポートしてるらしい。
XNA は .NET 環境下のアプリ開発らしいので、言語は C#, ライブラリも WiimoteLib になります。

2010年11月22日月曜日

kinect を PC で

kinect 買ったんですよキネクト。

ハピダンファンとしてはとりあえず Dance Evolution.
軽くプレイしただけですがなかなか楽しそうです。
まぁこちらの感想はもうちょっと遊んでからで。

で、kinect はもうハックされて PC で使えますよね。
ちょっと触ってみようかと USB 接続ケーブルを探してみたら…無い!

整理しましょう。
まず、kinect は AUX ポートというポートで XBOX に接続します。
実態は USB+電源供給を一本にしたもので、XBOX専用のポートです。

この AUX は 2010年6月発売の XBOX 360 S シリーズから本体に付いています。
ではそれ以前の旧型本体にはどう繋ぐかというと…AUXから USB+電源 へ分岐するケーブルを使います。
PC でハックする時もこの USB 経由になります。

そしてこの USB ケーブルは、XBOX本体+kinect バンドルパックには含まれません。
さらに、ケーブル単体で売っていません。
つまり、同梱版を買ったら PC でハックできません。

そのうち単体で発売するとは思いますが…バンドルで何か削られていても買い足せば単品と同じになるのが当然と思っていたので、ちょっと想定外。
これから MS 製品買うときはちゃんとリサーチします…。

購入検討の皆様におかれましては、別々に買うことをおススメします。

あ、そうそう、ケーブル話ついでにもうひとつ。
上に書いたように AUX ケーブルでセンサーと本体を繋ぎますが、長さが 3m かな?
スクリーンと本体の置き場が遠くてこの長さでは足りない場合…延長ケーブルも売っていません!

いや正確にはサードパーティから一つありました。
Xbox 360 Kinect Extension Cable
ケーブル一本のために個人輸入かよ…。

あー、たぶん USB なら普通に延長できると思います。
【Kinect】Xbox360 キネクト総合 Part:7
54 :名無しさん必死だな[sage]:2010/11/06(土) 20:06:22 ID:widzYKR60 前スレにUSB延長ケーブルで、延長可能かという質問だけど。 キネクト同梱版の本体では、無理かもしれないです。 ※検証物件 旧モデル本体 キネクト単体販売品 キネクト単体販売のものではUSB接続に変換させるケーブルが付属するので。 USB変換ケーブルを利用した場合は、市販のUSB延長ケーブルで延長して旧モデル に接続した場合は動作を確認致しました。 ただし、USB Ver2.0以上の仕様ケーブルしか試していません。

追記:
入手してから書こうと思っていたのですが、何かリンク貼られたのでw
このたびは Xbox カスタマーサポートへお問い合わせいただき、誠にありがとうございます。

お問合わせについてご回答申し上げます。

お問合わせいただきました、USB/電源ケーブルについては、
Xbox カスタマーサポートより 3,830円 でご提供をいたしております。

Wiiリモコンの自動再接続・2

以前 Broadcom から Bluetooth スタックの新しいのを拾ってきた時に、同じ場所に SDK が置いてありました。
「パスキー」の入力ウィジェットが問題なら、パスキーをプログラムに書いちゃえば解決するんじゃない?

というわけで SDK 使って、デバイスの検索~ペアリングを書いてみたんですよ。

BondReply() BondReply() allows the user application to send pairing response data. It should only be called in response to a tBond_CB notification for the Numeric Comparison or Passkey pairing methods.

Numeric Comparison or Passkey って書いてあるけれど、Numeric Comparison or PIN code の間違い?
パラメータも PIN コード用のものが定義されているし。


Prototype: void BondReply (eBOND_REPLY reply, UINT32 nPinLength=0, UCHAR *szPin=NULL); Parameters: reply Enumerated reply type as one of the following:
  • BOND_CONFIRM_ALLOW
    Confirm Numeric Comparison validated.
  • BOND_CONFIRM_DISALLOW
    Reject Numeric Comparison request.
  • BOND_PIN_ALLOW
    Legacy pairing allow, pin code sent.
  • BOND_PIN_DISALLOW
    Reject Legacy pin code request.

nPinLength For BOND_PIN_ALLOW reply, length in characters of pin code supplied in szPin. Valid range: 0-16

szPin For BOND_PIN_ALLOW reply, pin code to use for legacy pairing. This is an array of BT_CHAR, null terminated.

Returns: None


…NULL terminated string ですね。

これはひょっとして Bluetooth の仕様なんじゃないかな。
あまりここを追っかけても何なので、ここまでにしておきましょう。
とりあえず自由に PINコード渡せるプログラムは作れたので、進展あったらこれをベースに始められますし。

2010年11月16日火曜日

Wiiリモコンの自動再接続

少し調べて見たのですが、なかなか難しいようです。

まず、リモコン自体の初期化の方法は無いみたい。
Wii本体の方では、Syncボタンを10秒長押しすることで、登録されたリモコンを初期化することができました。

ついでに Wii への登録方法も整理しておくと、1+2 同時押しと、電池のところのSyncボタンを押す方法の二種類あります。
前者は別のWiiで一時的に遊ぶ時に使うもの(ゲスト登録と呼ぼう)で、接続が切れたらペアリングも解除されます。
後者はWiiのホーム登録と呼ばれている処理で、こちらは再接続してくれます。

さて、前回の記事にも書いたように、Broadcom のスタックを使って Alt+S でパスキーをスルーして登録しました。
確定的な情報はありませんでしたが、ここが再接続しない原因として怪しいようです。
接続アプリを見てみても、「セキュリティで保護された接続」が薄く表示されていて、保護されていないことを示しています。
おそらくはパスキーをセットすれば、セキュリティで保護されたことになり、自動的な再接続も行ってくれるんじゃないでしょうか。

となると、プロトコルスタックの実装に依存する問題のようです。
Broadcom のサイトに行って、最新版(5.5.0.4700だったかな)をダウンロードインストール。
すると…リモコンを登録できなくなりました\(^o^)/
登録処理は Alt+S して最後まで行くんですが、実際には登録されていない状態。

次に、評判の良い BlueSoleil のスタックを入れてみました。
$25 ほどする商品ですが、買わなくても評価用に機能された状態で使うことができます。
アプリでは、「登録」と「ペアリング」の二種類の登録方法がありました。
「登録」の方ではパスキー入力無しでできますが、再接続はされず。
「ペアリング」はパスキー入力を求められ、知らないので失敗します。
Alt+S のような隠し機能にされていないだけで、機能的には Broadcom のと同じですね。

高速なデータ転送をしているという触れ込みもあるけれど、これは後で必要になったら使ってみましょう。
買ってまで BlueSoleil にする利点も無いので、Broadcom に戻します。

マシンは EeePC-S101 なので ASUS からドライバ落としてきてインストール。
バージョンは 5.5.0.4100 で無事認識できました。
# しかし確か最初は 5.5.0.4100 だった気がするが…まぁいいや。

Wiimote Project に、Linuxでホスト側のBluetoothアドレスを 30:30:30:30:30:30 にして、ペアキーを "000000" にしたらペアリングできたという記事がありました。
0x30 は ASCII コードでの文字 '0' ですから、パスキーはアドレスを使えば良いと推測されます。
しかし…実際のアドレスは 00:22:43:... などとなっていて、ASCII では入力できません。
Windows での変え方は分からないな。
レジストリの USBベンダーID/デバイスID っぽいところにアドレスが入っているが、これ書き換えていいものか。

キーは
  • HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\BTHidBus\
  • HKEY_LOCAL_MACHINE\SOFTWARE\Widcomm\BTConfig\Devices\00:...\
に入りそうだが、これは入力するペアキーそのものではなく、ペアキーから生成された数値になるようで、生成アルゴリズムまで調べるのも面倒だ。

やるなら、ペアリングの時にキー入れるところで、アプリのメモリをクラックするなりして直接書き換えちゃった方が楽そうだ。
うさみみハリケーン…入力されているところはあっさりと見つかりました。
テキスト入力のメモリだから文字列なのは当然ですね。
bluetoothデバイスIDは 00:22:... って00終端だから入れられないじゃん!

おそらくこの文字列を受け取る側では固定長バッファへ格納しているだろうから、そこを探すか。
んー見つからないな。ちょっと腰をすえてやらないとか。

2010年11月15日月曜日

Wiimote認識

だらだらしちゃってますが、HDCC 始めないと。
まず wiimote からで。

ライブラリの選択

ライブラリをざっと調査(→調査メモ)
  • M+への対応
  • BSDライセンス
ということで WiiYourself! を選択。

wiimoteの認識

デモの実行プログラムがあるので、まずはこれを試す。

デモの前に、 Windows と Bluetooth レベルでのペアリングが必要。
リモコンの1+2ボタンを同時押しでペアリングモード…なのですが、既に登録してある Wii と繋いじゃってうまく再登録できません。確かクリアする方法もあったと思いますが、面倒なので Wii の電源を切っておきます。

試した PC は EeePC S101 で、付属の Bluetooth の管理ソフトは Broadcom だか WIDCOMM だかのマイBluetooth というソフトです。
コイツは登録時にパスキーの入力が必須にみえますが、Alt-S でスキップできます。分からんって。

で登録してデモを起動。
無事認識できているようです。

が、ここで問題。
どうもリモコンの電源を切って入れなおすとペアリングが解除されている模様。
Wii のゲストリモコン的な動作になっているのかな。
次はここちゃんと調べるとしましょう。

2010年11月14日日曜日

ボカロ曲の良さ

ボカロにハマっているわけですが、どこが良いのかうまく説明できません。

一線で活躍するプロの楽曲に比して完成度が低いのは同意します。
特に僕は谷山浩子好きなので、歌詞に対する要求水準はかなり高いはずです。

逆にアマチュアらしさ、言いたいことがダイレクトに表現されているようなところに惹かれたかというと、
まぁ単館映画などそういう作品はかなり好きなんですが、ハマるにはそれ以上の感動があってこそかと。

というわけで、どこがいいのか自分でも謎。
ハマっていった過程を整理してみましょう。

最初はミクの発表の時から知っています。
なかなか好みのキャラクタでした。
技術者の端くれとして、音声合成の出来栄えにも衝撃を受けた記憶があります。
まぁしかしDTMはやりませんし、キャラの方も心のリストに載っけるだけで自分から追っかけるような楽しみ方はしません。
これが2007年の夏くらいですね。

発売されてからはカバーソングの出来に驚き、完全オリジナルなみくみくの出来に驚きます。
Melody...やメルトやら、いい歌が出て推薦が目に入ったら聞いてみて普通に好きになりましたが、やっぱり受動的。
例えばいつぞやワゴンで見かけて田村直美のゆずれない願いのシングルを買いましたが、それと同程度の好きです。
ココロはこの時期に聞いてかなり好きになったかな。でも忘れていた。
2007年後半から2009年前半まで。

継続的に聞くようになったのは 2009 年からになります。
第一にオタクラ系に行くようになったことがあります。
パーティによってはボカロもフューチャーされていて、有名どころは耳にするようになりました。
踊れる曲というのは何でも気持ちいいもので、歌詞はほどほどでもリズム曲として楽しむようになります。


ボカロ楽器説に従うことにしたのもクラブでボカロ曲について考えていた時だし、
きみの知らない物語を聞いてかなり好きになって ryo の名を覚えたっけか。


第二に Project DIVA. コンシューマの軽めの音ゲーは好きでしたし、ミクも好きなので迷わずに購入。
ここでちゃんと聞き、有名どころ以外にもなかなか良い曲もあるのだと学びました。
しかしDIVAは一通りクリアしたらやらなくなって、何度も聞く曲としては残りません。

受け入れる土壌が出来てきたところで、一年経って DIVA2.
ココロに再会してなんかダイレクトに来て涙しましたなぁ。
あまり聞き込まずにハード埋めをして一息入れたところで、DIVA1で挫折したエディットにリベンジ。

エディター陣が twitter やっているのを見つけてフォローして会話に付いていく中で何度もボカロ曲を聞くように。
ダブルラリアットの等身大の歌詞に感傷するわ、右肩の蝶の破滅的な歌詞に悶えるわ、サイハテのテクノポップで感情の止まった様を表現するとか凄かった。
ミク誕で知ったボーカロイドの歌でファンの愛情に触れ、感謝祭BDで盛り上がり、誰かのエディットで聞いた NEL と双肩の蝶でトドメをさされました。

これらの楽曲の多くは2008-2009年にはあったわけで、DIVA1 でスルーしたのは完全に僕の問題。
DIVA2 もスルーしたかもしれないけれど、twitter で留まるうちに傑作の連射を受けてやられたということになるのかな。

今でも歌は谷山浩子の方が数段上だと評価しているので、理性をえぐる谷山曲とは別の方面、感性面にヒットしたっぽい。
ハマった直接のきっかけは NEL になると思うけれど、これも歌詞が好きなので一見理性かと思うけれど冷静に読めば言葉の出来は上程度だから感性面だよな。

と、振り返りつつポイントになりそうなところを浮かべたところで今日はこの辺で。続きはまた夜の好い時に。

2010年11月13日土曜日

ゼンハイザー PXC 310 BT

iPod Touch には標準で Bluetooth A2DP 送信が可能です。
というかこれが目的で Touch にしたわけです。

さてヘッドホンは何にしよう…。
色々ありますが、2010年11月現在はまず nikkeibpのレビュー が俯瞰できて良いレビュー。

他にもブログなどを見て、結局 PXC 310 BT を選びました。えーと、先のレビューには載ってませんが、PXC 210 BT の上位機でノイズキャンセルが付いてるものです。
ポイントは、多少お金をかけても良い音質が欲しかったこと、apt-X という低遅延高音質のプロトコルに対応していること。まぁ apt-X は Touch 標準では使えないのですが…。

というわけで入手しまして、会社への往復に聞いてきました。

まずやはりコードレスがとても気楽。
既に室内では MDR-DS 7000 使っているものの、屋外では初使用です。
かばんを肩掛けからたすき掛けへ変える時とか、食事時に自由に手を動かせるのがよいですね。

イヤーパッドの手首部分が中に折り曲げられて小さく畳めます。
付属の小さなポーチにすっぽり収まるのでポータビリティも上々。
本体側コネクタは、充電は普通のUSBマイクロですが、オーディオは2.5mmなので市販品用意する場合はちょっと注意。

音質は低音から高音までバランスよく出ている印象。
ピアノもヴァイオリンもドラムも女性ボーカルもはっきりと聞こえます。
ノイズキャンセルと合わせて多少の環境音は気にならず浸れてしまったり。

かなり満足な買い物でした。

2010年11月12日金曜日

オーディオリポジトリ

iPod にするとして、iTunes リポジトリを作る必要があります。
ついでに PS3 でも再生できるようにしましょう。

リポジトリデザイン

iTunes と PS3 でリポジトリを共用できれば楽なんですが、iTunes のファイル管理はどうもよく分かりません。
iTunes のバージョンアップでファイルパスが変わりますし、フォルダを NAS に移動しようとしたら全部消えたこともあって、正直触りたくありません。

iTunes リポジトリは iTunes 専用とし、別にオリジナルのリポジトリを作ってコピーするようにします。
コピーは iTunes でインポートすればよいでしょう。

ソースリポジトリ

今時はディスクが大きくなったので、音楽ファイルを不可逆圧縮で保管する必要性は薄くなりました。
いざ高音質音源が必要になった時の為に、オリジナルデータの CD を手近に保管しておかなければならず、部屋のスペースを重要視する僕の立場からはデメリットが大きいです。
というわけで、オリジナルリポジトリは可逆圧縮形式で置いておきます。

さて、今使える可逆圧縮形式はこんなところです:
  • wav(リニアPCM)

    圧縮じゃないですが…基本形式
  • Appleロスレス
  • WMAロスレス
  • FLAC
  • Monkey's Audio(ape)
  • True Audio(tta)
  • WavPack, TKA, ...

選択のポイントは、汎用性。
業界の規格戦争を鑑みるに、メジャープレーヤー同士で使えるフォーマット、というものは期待できません。
囲い込みを防ぐには、オープンな規格を利用しておいて、必要ならばフォーマットを変換するという形を選ぶことになります。
まずは Appleロスレス、WMAロスレスは却下となります。

好みの問題になりますが、僕は一曲一ファイルで、曲情報はファイルに埋め込める方が望ましいです。
タグの扱えない wav はもちろん、cue 形式も避けたいです。

そしてファイル変換を前提とするので、変換時にタグ情報を正しく反映できる必要があります。
特定のソフトウェアで使われる形式よりは、多くのソフトウェアで使える方が互換性が高いと推測されます。

以上の観点から、FLAC を選びました。

リッピング~FLACエンコード

CDデータの完全なリッピングを行うという触れ込みの EAC(Exact Audio Copy) を使います。
同時に外部ファイルを用いた圧縮もできるので、FLAC にして書きこみます。

タグ

タグは MP3Tag を用いて編集します。

ボーカロイド、コンピレーション、リミックスなどどう扱うか悩みどころ。
次のような指針で書きこむことにします:
  • 楽曲毎の「アーティスト」には、その演奏データの売りとなるアーティスト名を付ける
    • 普通のアルバムは歌手名(インストは演奏者)
    • ソフトウェア演奏は、リミックス者 or マニピュレータ or 作曲者。ボーカロイドはアーティスト扱いしない。
  • 必要なら、ボーカロイドは "feat. 初音ミク" のようにして曲名に付ける。
  • 「アルバムアーティスト」は表向きのものを付ける。コンピレーションなら "V.A."
  • 「ジャンル」は自分が聴く時に区分けしやすいように勝手に付ける。アルファベットは使わずにカタカナで。

「アルバムアーティスト」を示すタグ名には、ソフトウェアによって "BAND" を使う場合と "Album Artist" を使う場合がある。
MP3Tag では BAND で入力し、アクション機能を用いて Album Artist へコピーする。

AAC変換

iPod では FLAC は扱えないので変換する。
外では細かな違いは分からないので、ロスレスではなく AAC LC 128kbps くらいで。

いくつかソフトウェアを試したが、カバーアルバムまで含めてタグ情報を正しく扱えたのは dbpoweramp だけであった。
Explore の右クリックから起動できるなど使い勝手にも満足したので購入。

iPod Touch、キミに決めた

とりあえずポータブル音楽環境が整ったところで、内容をまとめておきます。

そもそもの始まりは、ボカロ曲をきちんと聞こうと思ったところから。
今までちゃんと聞いている曲といえば谷山浩子だけです。
MP3 D-snap で聴いていたのですが、せっせとリッピングしていたディスクが飛んでからは専らニコ動で代用していたのでした。

室内には MDR-DS 7000 と FoxL があり、スピーカは満足。
ほんとはちゃんとしたスピーカシステム欲しいけれど、賃貸じゃ音量出せないしね。

配線は、PCとFoxL、ゲーム機と MDR-DS と別々になっていて、音楽ファイルを MDR-DS で聴くことができない。
これは PS3 で NAS や DLNA 越しに音楽ファイルを読むようにすればなんとかなるでしょう。
操作が面倒なら DLNA サーバーとか作りますかね。

携帯オーディオは四角形ペンダントタイプの D-snap がありますが、これはこれで小さくて好きなガジェットですが、さすがに古い。というか Secure SD Audio 書き込みソフトが無いよ。

ということで、ポータブル音楽環境を揃えていきます。

ポータブルオーディオプレーヤーの現況というと、SONY と Apple が市場の大半を占め、残りは高音質や低価格を売りにしたニッチな製品があるというくらい。
特に理由も無いので、iPod を基本に選ぶことにします。

ラインナップは小ささの nano/shuffle, 容量のクラシック、iPhone 互換の iPod Touch といったところ。
音楽以外の機能は別にいらないし、ぶら下げても邪魔にならない nano/shuffle にしようかと思いましたが、
  • Touch には Bluetooth(A2DP)が標準でついている。

    ポータビリティの観点からは、本体のサイズよりも無線ヘッドホンの方が重要。
  • そういえば Vuzix Wrap920 が iPod Touch 直結のケーブルあったような
  • そういえばポータブル WiMAX ルーターあるから WiFi で通信できる
  • プログラマなので、iOS アプリを作りたくなるかもしれない
特に無線ヘッドホンが決め手となって Touch にしました。

2010年11月9日火曜日

HDC Clone

二年待ったけれど新作出る様子が無いので、いっそ自分で作ってしまおうかなと。
趣味のプログラミングもご無沙汰で何とかしたいし、ゼロからのゲーム制作経験無いものの要素技術的にも作れそうな気がするし。

技術要素は
・3Dレンダリングまたは動画再生
・音声再生とリップシンク
・マーカーの表示
・リモコンの取り扱い
・モーション判定
かな。

レンダリングできると着せ替えで遊べるけれど、マシンパワーが要るしとデータ作成が大変。
最初は動画再生でごまかそう。

リップシンク自体は映像とタイムスタンプ比較すればいいだけだけれど、
音ゲーなので処理落ちの時に映像止めても音は流す仕組みが少し面倒そう。

マーカー表示は単純な DirectDraw/Direct3D プログラミングであろう。

リモコンのは既にドライバがあるのでそれを使えばいい。

モーション判定は大変そうで、ライブラリがあるといいな。
たぶん機械学習のテクニックでいけると思う。

2010年10月26日火曜日

PS3キャプチャ

なかなか高画質にできました。


キャプチャ関連は右リンクにある「調査メモ」にもまとめるつもりですが、
ここでは具体的な自宅環境に対しての設定方法をまとめておきます。

構成

                   splitter             capture
  +-----+ HDMI +------------+ HDMI  +------------+ PCIe +------+
  | PS3 |------| DN-HDMI423 |-------| DN-PHVC626 |------| Win7 |
  +-----+      +------------+2nd    +------------+      +------+
                     |1st
                 HDMI|
                +---------+
                | TW-2000 |projector
                +---------+
  • PS3 からの HDMI 出力(音声込み)をスプリッタへ。
  • スプリッタの 1番出力をゲームプレイ環境(プロジェクタ)へ。
  • スプリッタの 2番出力をキャプチャボードへ。

スプリッタを挟んでいるのは、ゲームプレイ環境にキャプチャに起因する遅延が入るのを避けるためです。
このへんはゲームキャプチャの基本レイアウト。


キャプチャボード DN-PHVC626

DN-PHVC626
720p, 1080i でキャプチャできます。
現状で PS3 のハイデフ映像を HDMI でキャプチャするには、この製品ファミリを使うしかないですね。

最初に書いておきますが、この製品は中国からのショップ輸入モノで、日本製品のようなサポートはありません。
マニュアルも英語のペラ一枚が入っているだけです。
さらに、別製品のドライバを無理矢理入れるということもしますので、マトモに使えない恐れも高いです。
この記事を参考に挑戦することは構いませんが、技術力のある方で自己責任でお願いします

さて、このボードは今年始めくらいから出回っている、TM6200+AD9985A+Sil9011 というチップを使ったキャプチャボードの上海問屋ブランド製品です。同等構成品には HDCAPPCIE, DM626, Timeleak HD70A などがあります。
値段もどれも一万円弱。どれを買ってもよかったんですが、上海問屋しか在庫無かったのでこれにしました。

インターフェースは PCIe*1 です。PCの蓋を開けて取り付けましょう。
PCIe*1 があればそこに、なければ PCIe*16 にも取り付けられます。
なんか *1 だとコマ落ちが発生するとかいう話もあるので、空いているなら *16 がいいかもですね。
中国製品で作りがよくないので、しっかりと刺すことをおすすめします。

刺したら起動。
BIOS に PCIe の省電力設定があったら切っておきましょう。
さて、ドライバです。

ハードウェア変更を認識してドライバ入れろと言ってきますが、付属のドライバは Win7 64bit 8GB 環境では動作しないので入れてはいけません。
HD70A のドライバを拾ってきます。現在のところ 1.29 が最新で、自分もこれを入れてあります。

そのまま使えればいいのですが、おそらくドライバが違うとか言われて拒否されるでしょう。
zip展開すると .inf ファイルがあります。
付属 CD-ROM の .inf ファイルを参考にして、一番下の方にある製品情報の部分を書き換えます。

そしたらデバイスマネージャからキャプチャボードを選び(「サウンド、ビデオ、ゲームコントローラ」の下)、ドライバのインストールを選択。先ほど書き換えた .inf のあるディレクトリを選んでインストール。
無事インストールされたら、念のため再起動しておきましょう。
もし起動しなくなっても、一旦ボードを外せば起動できると思います。

アマレコTV

アマレココ公式ホームページ

キャプチャソフトにはアマレコTV を使いました。
キャプチャデバイスがちゃんと動作しているか確認する分には無料で使えます。
実際にキャプチャしようとすると有料のコーデックが必要になります。そんな高くないし、性能も良いのでおすすめ。
まぁキャプチャは本記事の範囲外なのでおいときましょう。

さてこのアマレコTVはキャプチャ表示の設定項目が多くて、実際に表示するための設定を探すのに便利です。
キャプチャデバイスの検出も他のソフトに比べて優れている感じ。

続いて設定です。
まずデバイス。該当ボードのデバイスが HD と SD の二つありますが、当然 HD の方。
接続端子は、HDMI 接続の場合には S端子を選びます。
クロック同期もチェック。

続いて解像度。
HDMIは接続先と対話して自動的に最適な解像度を選ぶ機能があります(かなり邪魔)。
さらに今回の構成では、PS3 が直に繋いでいるデバイスはスプリッタです。
スプリッタが「自身の解像度」として何を告げるかはそのスプリッタによってまちまちです。

DN-HDMI423 は、一番ポートのデバイス、一番が消えていたら二番ポート、の設定を返すようです。
一番ポートにはプロジェクタが繋がっていて、こいつは 1080p まで表示可能です。
PS3 は 480p,720p,1080i,1080p を出力するように設定してあります。
今回使った Project DIVA ドリーミーシアターは、720p で表示します(ゲームは720pが多いです)。
これらのネゴシエーションの結果、720p が使われることになります。
表示デバイスの方で、現在の解像度を表示することができれば、それを確認してください。

アマレコの方も入力信号に合わせて、解像度を 1024x720, YUV2 を選択します。

これで表示されるはずですが、うまく表示されないことも多いです。
経験的には、スプリッタの入力を切り替えて HDMI ネゴシエーションをやり直したり、
アマレコの方の解像度を色々変えていると映るようになりました。

原因がはっきりするといいのですが、まぁ怪しいキャプチャボードですし上々でしょう。

2010年10月17日日曜日

東方&ボカロ クラブパーティ えとせとら

えとせとら行ってきました。
実はボカロパーティはですね、ボカロ曲はあまり流れないんです。
かかる曲はボカロ以外、アニソンカバー、話題になったネタ曲、これで半分以上。
あとは二年前のアンセムを流しておしまいです。

ところが今回のえとせとらは、数人のDJによってあまり流れない曲も流れたのです。
といってもDIVA1以降のアンセムで、マイナー曲の発掘というのとは違います。
ともかくちゃんと掘ることはボカロクラブが発展していくには必須でありましょう。
だからいまうれしくて。
普段はこんなことしませんが、流れた曲で記憶にあるのを貼り付けておこう。












どのアレンジだか分からないw




2010年9月14日火曜日

ソーシャルゲームの悪徳

CEDEC での GREE 田中社長の講演を契機に、ソーシャルゲームのマネタイズについてにわかに議論が行われている。
この問題は自分のテーマでもあるので少し書き残しておこう。

さて、ひとこと下流食いと言われているが、内実は複数の批判が見て取れる。
対象が違うのにどれも相手を「下流」と言うもんだから議論が分かりにくくなってしまう。

「下流」という言葉は近年の三浦展『下流社会』で認知されたと思う。
そこでの定義は、経済的には裕福とは言えないながらも、その生活に満足または諦観を抱き、より裕福・上層へ行こうという意思や努力の欠けている人々のことであった。
しかしこの意味で下流という言葉を用いている人は少ないように見受けられる。

まず一番最初の「下流食い」だが、単に経済面での社会的な下層を指しているようだ。
経済下層を食い物にするビジネスというわけだが、これには既に貧困ビジネスという用語がある。
住居借りられない人に生活保護をピンハネして割高なスペースを提供したり、その月暮らしの数万円をリボ払いの高金利で提供するなど。
最初の言及でグレーゾーン金利を例に挙げていることからも、この下層の意味で下流という言葉を使っているのであろう。

一方、ソーシャルゲームに対しては従来のゲーム好きからは鬱屈とした違和感がある。
「あんな(単純なものは)ゲームではない」という奴だ。
これが今回のフレームと結びついて表に出ている面も見逃せない。
ここでの下流とは経済面というよりは知的面、要するに「あんな単純なゲーム楽しむ奴らはバカ」という意識である。

同じく知的側面での下層という意味であるが、ゲームなんかに金を使うことそのものを愚かと捉える立場がある。さすがにこんな批判をする人は、話題だから言及しただけで、そもそもゲームには無関係・無関心という人が多い。

そしてもう一つ、下流というよりはパチンコとの類似性に反応した、射幸心の面から見た批判がある。
僕の立場もここである。


射幸心についてはまた別に書くとして、その上の三つの下流食いの議論をすすめておこう。
といっても下二つは特に構う必要は無いであろう。
他人が何を楽しんで何に金を費やすかを、横から倫理的批判をすることは自由主義の原理/愚行権に反する。
むしろここだけ反論されて、このソーシャルゲーム批判を片付けられてしまうだけの愚かな議論である。

一方で、一番最初の貧困ビジネスについては堪えるのか、きっちりと反論されている。
曰く一千万人プレーヤー全員が貧困なわけがない、大金を使うのはエスタブリッシュメント層だ、云々。
全部が貧困層という指摘ではなくて一部がそうであると言っているわけで、部分否定ではそもそも反論にはならない。
さすがに生保ピンハネのような生存権を奪うほどの悪徳ビジネスは無いとしても、
一千万人の中に、食うや食わずの生活の中で借金してケータイ代払って遊んでいる貧困層や、社会に寄生して生活保護で遊んでいるような層、努力を諦めてその場しのぎの安逸を求める「下流」な人々がいないかと言えばいるに決まっている。

彼らを食いものにするようなビジネスはやはり悪と言わざるを得ない。
しかしそういったプレーヤーを排除したところで彼らはパチンコへ流れるわけで、ソーシャルゲームはまだマシな遊びである。これはもう社会問題であって、業界に罪を負わせるのは潔癖にすぎる。
日々を過ごすに必要な楽しみを提供し、現状を改善できないほどの時間や金を奪わない程度の収益にとどめるならば、例え下流食いのビジネスとしても誇ってもいいのではないか。社会の暗闇だとしても、誰かが足を踏み入れなければいけない。

ソーシャルゲームで働く人々にはそういう気概を持ってもらいたい。
下流を食っているという事実からは目を逸らさず、社会的非難の中で慈愛の心を持ち、せめて幸福に暮らせるようなゲームを提供してほしい。

2010年9月11日土曜日

新青魔法

コピペ。
今回は新敵以外に分かりにくいのはいなさそう。

新敵はアビセア・ミザレオ(砂丘から入る)に入ってすぐのところに二種類。
とてとて湧いているんで6人くらいでソロはきついかも。
麻痺技使ってくる奴がいるから、一人はサポ白か踊にでも。

255 名前: 既にその名前は使われています [sage] 投稿日: 2010/09/09(木) 15:14:22 ID:YK2kgiVS
ファイナルスピア>蜂 Lv81
ゴブリンラッシュ>ゴブ Lv81
バニティダイブ>エンプティ(ワンダラー)Lv82
マジックバリア>アーリマン Lv82
怒りの旋風>海老ポン Lv83
ペンシクタイフーン>ミュレクス(アビ死貝) Lv83
オーロラルドレープ>エンプティ(ウィーパー)L84
オスモーシス>アメーバン(アビ死クラゲ) Lv84
四連突>エンプティ(ゴージャー) Lv85
ファンタッド>ヒポグリフ Lv85

2010年7月29日木曜日

ファイアーエムブレム 新・紋章の謎

http://www.nintendo.co.jp/ds/vi2j/

今更説明の必要もない、FEです。
SFCで出た紋章の謎のリメイク版。
なんとアカネイア戦記もカップリング。

ちなみにFEはアカネイア戦記以外は制覇しています。
あ、去年の新・暗黒竜などリメイク作品は除外で。

全部やってるといっても、GBA三部作と、この紋章の謎はさくっと解いただけであまり覚えていません。
つまらないわけではなく、時間やお金がとれなかったというタイミング的な問題。

さてこの新紋章、メインストーリーは同じですが、システムやマップが結構変わっています。
一番に挙げるのはやっぱり「ユニットが死なない」モードの追加ですかねw
僕は別に死なないシステムにこだわりあるわけでないので、別にいいんじゃないでしょうか。
プレイする時はクラシックモードでやりますけどね。

そしてマイユニットの追加。
自キャラを作って参戦可能、マップ始めのヒント会話担当する他、全キャラとの支援会話。
支援会話はFEの楽しみの一つですが、このマイユニットの支援会話はかなり嬉しい。
リメイクだからと躊躇していたFEファンは、もうこのシステムだけで買ってよいと思います。

あとは新暗黒竜からの兵種変更とか、騎馬の乗り降りがなくなったとか、細かい差異も。
全体的に面倒な部分が無くなった感じです。

ハードモードでクリアしましたが、やや簡単になっているかな?
SFCでは追いかけてくるアストリアに苦労した記憶があったけれど、今回は追いつかれることなくクリアできました。
オーブ集めも苦労したはずなのだが、普通にやっていれば集められましたし。
しかし簡単とは言っても十分ハードです。
武器を外して肉盾しなきゃ耐えられないところがあちこちありました。

総合すると、シミュレーションゲームでも、キャラクター目当てでも、十分楽しめる一品と言ってよいかと。
さらに、死なないモードの追加は初心者のハードルが劇的に下がっているでしょう。

2010年7月27日火曜日

ゴーストトリック

発売日に買って一週間ほどでクリア。
作品の売りは、シナリオとゲームの両面ですね。

まずゲーム面。
サイドビューマップ上で、物体に憑り付く。
憑り付けるのは一定範囲内にあるものという制約付き。
そして、憑り付いた物に応じてアクションができる。
たとえば扇風機なら風を起こすことが出来る。
そうやってアクションを起こすと、マップ上の物体や人に変化が現れ、今まで遠かった物体にも届くようになる。
その繰り返しです。



ゲームが進むと一つの物体のアクションで完結する変化だけでなく、
ボールを転がして人にぶつかって蹴られてスイッチに当たるとか、そういう複合的になっていきます。

ゲームとしては物理パズル系とでも言うのか、古典的にはインクレディブルマシーンに近い感じ。


実はこのジャンルは、最近の物理演算を取り入れてマイナーながら盛り上がっています。
ドイツの Crazy Machines や


日本でも昨年暮れに出たコロぱたがあります。


ゴーストトリックの発想は、この辺の流行りどころをメジャー向けに味付けして出す…という立ち位置だと思うのですが、
正直失敗している感が否めない。
移動の制約がレベル境界になっていて、操作対象が十個程度の移動範囲内のオブジェクト群になります。
これはこれで考える範囲が狭まって分かりやすくなるのですが、マップ全体の仕掛けができなくなって快感が薄れてしまいます。
オブジェクトに対する操作も、上記マシーン系のように配置指定はできなくてアクションを起こすだけ。
結局一通りアクション起こしてから、その組み合わせを考えるゲームになってしまいました。
そしてそのパズルを解いた結果が隣の物体に届くだけで、爽快感も無い。

アイデア主導で突っ走ったけれど根本的にゲーム性に欠けちゃって、色々表面的なツギハギ当てて何とか体裁を保った…という印象です。


もうひとつ、シナリオ面。
これはさすが、プレイ中の謎かけやどんでん返しも綺麗に決まって、なかなか楽しめました。
ただ、いきなり死ぬというのが掴みとしてはいいのだけれど、何度も繰り返すと緊張感が薄れていくな。
でも基本的に面白い。これが逆転裁判の一つのシナリオだったらずいぶん楽しめただろうなと思います。

新しいゲームに挑むチャレンジは買うけれど、残念ながらゲームとしては及第点は付けられない。
たとえば上に上げたコロぱたの方が十倍は面白いです。

2010年6月28日月曜日

FF11 新青魔法

検索でやって来られる方がいるようで。
何ページもめくって探しているだろうになんか申し訳ない。
ラーニング場所書いておきましょう。

・リーフストーム/トレント
トレントは色々な場所にいるのでどこでもいいでしょう。
といってもジャグナーだと一匹ずつかなり離れていて面倒なので、
ルフェーゼのG6がお勧めです。
といってもルフェーゼ配置変わってまだ行っていないのでいなかったらすいません。

・バッテリーチャージ/壷
壷も色々いますが、遠くのダンジョンが多くて面倒ですね。
デルクフとかだと弱すぎてWS打たせるのも大変。

ちと遠いし強いですが、リポップ早い空がお勧めです。
自己魔法はラーニングしにくいからいっそFoVで経験地稼ぎ兼ねて。

ダンジョンなら近さ優先で要塞地下、数を狙うならウガレピかフェインで。
デルクフ上層もいいかもしれません。

・リジェネレーション/タコ
タコは水あるところにいますが、生息数が少ないんですよね。
ダンジョンですがオンゾゾが一番固まっていると思います。

・鯨波/クトゥルブ
クトゥルブはある程度レベル高いのしかいないです。
ソロの場合は、中でも最弱のアラパゴになるでしょう。
イルルシからアラパゴへ出てF9あたりです。
最弱といっても油断すると死ぬので注意。寝ないし。
たまにメイジャン来るので混ぜてもらってもいいかもしれません。
ツアーの場合はドゥブッカから出た浮き沼が数多くてよいでしょう。
あと、アシュタリフ号の辺りにもいたと思いますが強さ覚えてないです悪しからず。

・P.エンブレイス/ノール
ノールは過去のバタリア、ジャグナー、ブンカールにいます。
バタリアSが一番弱いのでこいつが良いでしょう。
場所はバタリアSのジャグナー側境界付近、座標はF8-F7あたり。
75なら絡まれないレベルなので、ソロで余裕です。

・C.ディスチャージ/ナット
ナットも種族的に強い上にレベル高いのしかいません。
最弱はソロムグSになるので、ここでしょう。
H7の南東の方と、K6にいます。

・D.ロア/ウィヴル
過去のグスタやグロウベルクにいます。
グロウはワープした辺りにいますがちょっと強いのでPT向け。
グスタはグロウベルク境界のあたりにいます。

・アクリッドストリーム/クリオニド
・ブレーズバウンド/リミュル
どちらもアビセアにいます。
アビセアは時間制限あるので、数多く狩るためにツアー組んだほうが良いでしょう。
30分縛りにしておけば延々とラーニング待ちになる心配もないですし。

どちらも赤黒混合の魔法タイプで、インプに似た感じです。
WSはラーニング対象の一種類のみしか使ってきません。
これが範囲で結構ダメージ来るので、多数で殴るとWS連発されて全滅しますw

リレイズ・レイズ役にPTに二人くらいサポ白を確保して、離れてもらいましょう。
基本ノンアク・リンク有りだと思うのですが、いきなりアクティブになったり感知がよく分からないので注意。
行動範囲も広くリポップ早いのでリンクにも注意です。

場所は、アビセア・ラテーヌが分かりやすくてよいかと。
ロンフォ境界から始まり、南下してすぐにクリオネ地帯、東へ進むとリミュル地帯になります。

2010年6月22日火曜日

FF11バージョンアップ

何か装備一新されそうな勢いですね。


FFXI新アイテム


とりあえず青魔法。
名称効果MPキャストリキャスト対象習得レベルラーニング対象
P.エンブレイス標的のパーティメンバーのHPを回復し、物理攻撃力と魔法攻撃力をアップする。1062.7512.00PT青Lv76 ノール
アクリッドストリーム対象に向かって扇範囲の敵に水属性のダメージ。追加効果:魔法防御力ダウン。893.0023.00青Lv77 クリオニッド
リーフストーム範囲内の敵に風属性のダメージ。1326.001.00青Lv77 トレント
リジェネレーション自身のHPを徐々に回復する。361.5060.00青Lv78
C.ディスチャージ自身の周囲の敵の攻撃間隔を長くする。321.5020.00青Lv78 ナット
鯨波自身の攻撃間隔を短くする。532.0045.00青Lv79 クトゥルブ
バッテリーチャージ自身のMPを徐々に回復する。503.5011.00青Lv79
ブレーズバウンド敵に火属性のダメージ。1134.0045.00
青Lv80 リミュル
D.ロア自身の周囲の敵の攻撃力をダウンさせる。462.7525.00青Lv80 ウィヴル

2010年6月21日月曜日

AGAIN FBI超心理捜査官

http://www.tecmo.info/product/again/

木曜日に買って、だらだらと先ほどクリア。
今は無き CING のアドベンチャー。

お話はADVの基本たる犯罪捜査モノ。
しかし主人公は過去が見えるというチート能力を持っていて、普通の推理モノにはなりません。

このチート能力、いつでも使えるわけではなくて、「過去の状況を再現する」必要があります。
DSの二画面で過去と現在の映像が見えていて、まずは変わっているところを探します。
過去では椅子が倒れているけれど、現在ではきちんと立っている、とかね。
んでそこが怪しいポイントであるとなったら、次は過去を再現します。
この場合は単純に椅子を倒せばよいけれど、いろいろ面倒なものもあります。

ゲームは基本的にこの繰り返しで、推理らしい推理もあまりありません。
ミステリらしくそれなりに凝った連続犯罪になっているのですけれど、
物語がすすめば進むほど、難しい間違い探しを解かなければなりません。
そして、間違い探しを解いたら過去視によって謎が解かれてしまう。
正直ちょっとどうかと思う。

2010年6月14日月曜日

E3 プレスカンファレンス日程

E3 の日程がまとまっているサイト少なくて毎年困るので、今年はここにメモっておきましょう。
とりあえず 1up.com からコピー。
時刻も日本時間に直しておきましょう。
ちなみに、E3 は GMT-0700(PDT;太平洋夏時間)なので、日本との時差は16時間です。
PST 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23
JST 16 17 18 19 20 21 22 23 24 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15

 YouTube IGN gamespot G4
 ustream/G4 GameTrailers 1up nintendo

 #e3jp ニコ動 ファミ通

6/15(火)
02:00 Microsoft
06:00 Electronic Arts
09:00 Ubisoft

6/16(水)
01:00 Nintendo
04:00 Sony

6/17(木)
05:00 Konami

2010年6月9日水曜日

ヲタクラ

オタク系クラブイベントが近年の趣味で、月数回通っています。
ネットから告知拾ってはカレンダーに載せてもいます。
この界隈は情報不足ですし、機会あれば一参加者から見てイベント感想など書いて残しておきましょう。

正しいオンラインゲームを考える

性格的に色々と考える人なのですが、大体は仕舞いこんでしまいます。
同じくらい考えた反論をもらえることが無いので、あまり議論は好きではないのですが、
せっかくブログ開いたので残していきましょう。
議論はともかく、同志は見つかるかもしれません。


一つずっと考えていることにオンラインゲームがあります。
これで食べている立場なのを棚に上げて言ってしまうと、ビジネスモデルが邪悪じゃありませんか。

・射幸心を煽るアイテム販売方式。
・依存性を高めるゲームデザイン。
・上二つを利用し、金銭・時間的に人生を犠牲にさせるほどの支出を狙う。

自己責任だという言い分には与しません。
ギャンブルや麻薬を見て明らかなように、人間はある種の快感から逃れられないようにできています。
ここを利用して身ぐるみ剥ぐまで金銭を巻き上げるようなビジネスモデルは邪悪と言わざるを得ません。

マンガやゲームは不健全だと罵られ続け、今でも罵られていますね。
無駄だという意見も分かる大人になってしまったとしても、「それでもこれだけは」という作品があるのではないでしょうか。
自分の子供に、何の役にも立たないのは分かっているけれど、この作品だけは読んで欲しいと。
今のオンラインゲームにはそれがないんです。

それでも自分はゲームが好きですし、オンラインの社会性にも希望を持っています。
多くのものをゲームから与えられて育ちました。
今、オンラインゲームがこのような惨状を呈しているのをとても哀しく見ています。
適度な楽しみを与えて対価を受け取る、健全なビジネスモデルがあるはずです。
何とかそれを見つけだし、その開発・運用を仕事としたいなと思っているわけです。

続きはそのうち。

2010年5月31日月曜日

xpmode

Win7 Pro には無料でXPモードという WinXP 環境がダウンロードできます。
わざわざ pro 買った最大の理由でもあったり。

この XPモードの実態は WinXP の入った VirtualPC イメージです。
ライセンスは MS らしからぬ緩さで、該当 Win7 上で実行するならばどうやって動かしても自由。
つまりコピーして複数動かしたり、VirtualPC 以外のエミュレータで動かしても問題なし。

怪しげなWebページを見るときは仮想環境内で行ったり、
クリティカルな個人情報は仮想環境内に置いたり、
恥ずかしいゲームは仮想環境内に隠したり、
ということができるというわけ。

というわけでイメージをコピーしまくることになりますが、
最初のイメージのままだとインストールやアップデートしなきゃ使い物にならないので、
ある程度セットアップしたイメージを作って保管しておくことにします。

ところで、VirtualPC はなかなか良いソフトなんですが、3Dグラフィクスドライバの仮想化が行われていないので 3D描画性能が低いです。
その点 VMWare は仮想化されているのでそこそこの性能を出すことができます。
というわけで、XPモードのイメージを VMWare で走らせることにします。

さてこの XPモード、イメージは二段階構成になってます。
ひとつは
Program Files\Windows XP Mode\Windows XP Mode base.vhd
で、基本イメージで、書き込み不可です。
もう一つは
Users\\AppData\Local\Microsoft\Windows Virtual Machine\仮想マシン\Windows XP Mode.vhd
で、上記基本イメージへの差分更新になります。
共通となる基本イメージを共有しつつ、ユーザー毎の差分イメージを更新していくことで、容量を抑えているわけですね。

いきなり VMWare にしてもいいんですが、とりあえず VirtualPC でセットアップしておきます。
このセットアップ済のイメージは XPモードの基本イメージにできると便利そうなので、
ユーザー毎の差分イメージを使わずに、基本イメージそのものを更新してしまいます。
もちろんオリジナルのイメージはそのまま保存しておいて、コピーしたイメージを更新します。

Windows XP Mode base.vhd をコピーし、これを使うよう VirtualPC 仮想マシンを構築して初期セットアップをします。
Windows インストールから Windows Update, 各種便利ツールのインストールなどなど。
ここで VirtualPC の統合ツールをインストールした場合、VMWare の邪魔になるのでアンインストールしておきます。
一通りセットアップできたらシャットダウン。

次に仮想イメージを VMWare 形式へ変換します。
VMWare Player でも変換できるみたいですが、NHC という変換ツールを使いました。
NHC で、vhd を vmdk イメージへ変換します。
VMWare は マイドキュメント\Virtual Machines を使うようなので、ここにフォルダ作って置いておくと良いでしょう。

次に VMWare Player で仮想マシン作成を行います。
どうも仮想マシン作成時に OS インストールしない選択を選んでもディスクを作らないといけないみたいで、とりあえずそのまま作ります。
仮想マシンを作ったら、そのまま設定を開きます。
ここでさきほど作った仮想ディスクをマウントしているのを消し、変換した XPモードの vmdk を新たにマウントします。
ここで一旦 VMWare Player を終了。

さてさて WinXP には認証/アクチベーションという仕組みがあります。
これは OS イメージを別のマシンにコピーして再利用できないよう、一つの OS インストールを一つのマシンに結びつけて管理します。
VMWare の仮想ハードウェアは VirtualPC とは異なるので、XPモードのイメージを VMWare で動かすと別マシンにコピーしたとみなされて認証されません。
これを防ぐため、VMWare には xpmode というオプションがあります。
マイドキュメント\Virtual Machines\ 以下に、先程作った仮想マシンの設定ファイルである、拡張子 VMX のファイルが作られていますので、これをエディタで開き、
xpmode.enabled="TRUE"
の一行を追記します。
詳細は知らないのですが、これで仮想マシンの BIOS イメージに特定のメモリが書かれ XPモードのイメージが起動できるようになります。
あとついでに先程仮想マシン構築時に作られたディスクイメージファイルを消しておきましょう。

いよいよ VMWare から起動します。
初回起動時にはハードウェアが見つかるので、そのままドライバのインストール。あと VMWare tools のインストールもします。
これで一通りセットアップは完了。3Dもそれなりに動くはずです。

2010年5月30日日曜日

new PC

お久しぶりです

dqnmap 用に作ったブログですが、個人ブログとして復活しようかと思います。
mixi には書きにくい、調査や意見などまとまった文章を中心に書いていこうかなと。

というわけで、PC買いました。
主としてゲームとプログラミング用に、3Dまわりがそれなりに快適に動くものを。

Win7 64bit
PhenomⅡ X6
8GB DDR3 SDRAM
SSD40GB
HDD1TB
ATI Radeon HD5850 1GB
ハイエンドの下くらいですか。16万円也。

* システム設定(インターネットにつなぐ前)
** ProgramFiles の移動
SSDにはあまり変化のないシステムファイルを置き、Program Files や My Document は D ドライブにしたい。
http://www.natzworks.com/digital/entries/2010/000263.html
の、レジストリ書き換え方法を採ることにする。

** Home の移動
c:\Users\username をエクスプローラで開くと、デスクトップやピクチャというフォルダが表示される。
これらのプロパティには「移動」というものがあるので、あらかじめ D: に対応ディレクトリを作っておき移動先に指定すれば、中身を移してレジストリの書き換え?などやってくれる。

さらにこの username フォルダには隠しで AppData というフォルダがある。
これは移動オプションが無いので、自分でコピーして mklink でシンボリックリンクを張っておく。

** ProgramData
Vista 以降は C:ProgramData という隠しフォルダがある。
これも移動したいのだが面倒そうなので保留。

** RamDisk とか
あとで

* セキュリティ
** windows update

** McFee 30日版をアンインストールして Avast! を入れる

** Chrome を入れ、既定ブラウザを変更

後はソフト色々と。
XP Mode, Virtual PC, Google日本語入力, xyzzy, xkeymacs, teraterm, ...