2016年11月25日金曜日

uoclist 0.8.1.56

・BODをもらうマクロとして、Pub95の6スキル分を追加
・RestockContainerの色設定をそれぞれ設定できるように変更
・RestockContainerとしてBODブックを設定できるようにした
・RestockItemのマクロ追加
・RestockItemList設定のバグ修正
・War/PeaceでのTargetBoundaryLineの色変更
・Feint/BleedAttack/MortalStrike使用時のAutoSPM切り替え使用バグの修正

UOClist
  download uoclist0.8.1.56.zip

バルク系の機能を追加したけど、設定するのに時間がかかるし、
設定してもあまり時間短縮にはならないかも。
設定方法がわかりにくいと思うのでチュートリアルのスライドでも
つくってみようと思っている。
あと、レスポンスメッセージをはしょっているので、どういう動作を
おこなおうとしているのかがわかりにくいと思うんだな。

RestockContainer(ドラッグアンドロップ先)として、NPCも指定可能としてるはず
なんだけど(BOD提出用)未確認。要(テスト+機能考察)。

uoclist全般のことだけど、レスポンスメッセージ(uoclistのシステム
メッセージ)はなるべく少なくしたいので、一度全体見直しが必要と考えている。

2016年11月24日木曜日

バルク貰いに行くのがつらい

一応、BODをもらうマクロと、
BODをBODブックにドラッグ・アンド・ドロップするマクロを
実装してみたけど、やっぱりこりゃつらいわ。

2016年11月23日水曜日

Windowsのシェア

今どのくらいなんだろ?って調べてみると

10月集計分で
Win7 48%
Win10 23%
WinXP 8%

企業使用分が入っているし、Win10っていってもまだ1/4程度か。
僕のノートPCもまだまだやれる~なんて思っているけど、
2020年、あと4年でサポート終了なんだよな。

僕の趣味プログラミングも、その頃にはUWPで書けるようになってないとまずいんかね?
まぁ、その頃になってもC++/Win32はなんだかんだで使えるとは思うけど。

Win7-Win10への移行でちょっとやばいかなと思っているのはIE(コンポーネント)の扱い。
移行期間中のことを考えるとwebkit使えたほうがいいよね?


追記:)
現状で困っているのは、UI設計。WinXPでWin32ゴリゴリ系は止まっているようなものだし、
もっと簡単にきれいな画面が作れないものかね。
uoclistではcomctrlのバージョンを下げざるをえず、
かといって、一から全部作り直すのはハードル高そう。。。
UI部分(ガワ)だけ、xaml(っていうの?)で作って組み込めるようになると助かるんだけどな。

ゲーム・オブ・スローンズ 第6章 前半

やっとレンタル開始になったので、見てます。
前章の内容が濃かっただけに、ややパワーダウンしている感じもあるけど、
やっぱり面白いゲーム・オブ・スローンズ。

ジョンの復活は、まぁどうでもいいや。
老け顔サンサ、ちょい太った。
メリサンドル、なんかしおらしくなって可愛かったw

で、一番の笑いどころ?ドロゴン降臨。
この砂山と晴天、ウルトラマンの特撮かよwww


2016年11月19日土曜日

一人git

今さらながらgit。
一人でやる分にはそんな必要ないよねって手を出していなかったんだけど
なんとなく使用スタイルをつかめてきた。

SourceTreeの使用を前提にして、

バイナリパッケージ公開 → bitbucket
スニペットとかメモ → bitbucket
公開したいソースコード断片 → github

これでしばらくやってみようと思う。

予定がくるう

うーむ、Pub95の内容があんなんじゃ、年内残りでやろうと思っていたuoclist開発項目が
狂ってくる。
BODをもらう方は修正/追加して、とりあえずBODをもらさず溜め込む方向で。
BODを整理して完成させるのは、、、面倒だな。
自分ルールに特化させればできそうだけど、汎用的にっていうとハードルがグンっと高くなる。

昨日の倭国EMイベ、3時間近くかかってハードだったな。
ボス戦あたりは眠くなってくるし、ボスのステータスがイカれていて仕切り直しがあったり。

倭国のEM Unoさんのイベント内容が、日本シャードの中で一番質が高いと評価していただけに、
今回が最後というのは残念><
イベントを作る上での要素、おおまかなストーリーライン、それを展開するセリフ回し(シナリオ)と
キャラの構築、劇中の小物、舞台の作成、そして実演。
日本シャードの中ではどれもトップレベルだったと思う。
アイテムの色選択なんか、UOFiddler使ってんのかな?ってくらいよく研究されていた。
なだけに、内部事情は知らないけど、急遽?やめられるというのは残念だし、
そのしわ寄せか、イベント数回分を1回に詰め込んだのが昨日のイベントだったんだろうね
そのあたりの背景も透けて見えるので、頑張ってイベント最後まで参加してお付き合いしました。

どこぞの長く続けているだけが取り柄の女EMどものイベント内容ってなんかセンスが合わない。
性別の違いによるんだろうね。
2chみてても、こいつズレたこと書いてんなぁ、BBAだろってのはよくあるw

2016年11月18日金曜日

バルクもらうのめんどくさ

今までの倍以上かかる。
移動距離も長いし。
なんとかしたいよ、これ。

github、やっぱりバイナリパッケージ置いとくとうるさいな。
bitbucketにしようかな。

2016年11月17日木曜日

uoclist 0.8.1.55

・client.exe version 7.0.55.4対応
・client.exeのsound出力先として使用可能なDirectSoundデバイスを選択できるようにした
・client.exeがウィンドウフォーカスを失っても、音がなり続けるオプションをつけた
・染料新色対応

UOClist
  download uoclist0.8.1.55.zip

Pub95についてはそっちのけで、キャプチャ関係をゴリゴリいじってました。

僕のノートPC、Vistaが出始めた頃のもので、アナデバのSoundMaxのドライバには
ステレオミキサーがついていないんですよね。
VistaのときにWindowsのサウンド周りが一新されたせいで。
バージョンアップしたドライバを提供すりゃあいいのに、そこは純粋なデバイス屋さん、
ってところでしょうか。
一応、ステレオミキサーを録音デバイスに表示させることはできるんですけどね、
機能しません><

そこで、PCの音をキャプチャするために仮想デバイスのドライバを使用しなければ
ならないんですが、一応は信頼できそうなAvnexのドライバ、これは再生デバイスの規定値に
設定できて、ステレオミキサーとして機能はするんですけど、
ちょっとUOが重くなると音ズレが激しい。。。

で、信頼できそうなYAMAHAのNETDUETTOドライバ、こいつはステレオミキサーとして
使えるものの、再生デバイスの既定値には設定できない><
試しにAudioSwitcherも使ってみたけど、やっぱり規定には指定できない。
音源メーカーで、サウンド関係アプリの実績のあるYAMAHAのこのドライバをなんとか
使えないか、と悩みました。
結局、キャプチャの方をDirectSoundで作り直し(っていってもバッファの作り方は変わらない
のですぐできた)、client.exeをいじって、起動前にsound出力先を選択できるようにしました。
これで、ストレスなくvideo/audioをキャプチャできるかな???

で、DirectSoundを調べた結果の派生として、client.exeのウィンドウフォーカスが外れても
無音にしない方法もわかったので実装。

なんか、このサウンド周りの機能追加、ニーズ的に僕くらいしか必要としてなさそうですがw、
今のPCって再生デバイスが色々ついてんですかね?ちょっとはニーズあるかも???

ということで、10年位遅れている技術の後追いに一生懸命になってましたw
いまってCoreAudioで作るもんなんですか?なんですかそれ?って感じです。

現状はそんな感じ。色々いじくり倒した結果、ソースがぐちゃぐちゃなので
リファクタリングが必要です。
あと毎回zip作るのもなんなんで、gitでのパッケージ公開にしようと思っています。
ソースは公開しないけどw

2016年11月12日土曜日

uoclist 0.8.1.54

・client.exe 7.0.55.0 への対応
・その他、雑多な修正

UOClist
  download uoclist0.8.1.54.zip

Videoキャプチャの機能を発揮させるためには、
Windows7の場合Aeroを切る必要がある、ので、スタートアップ画面のチェックボックス
disable VisualThemes and Aero
で、設定できるようにした。

Aeroうんたらの資料はこちら
デスクトップの指定した範囲を高速描画
あまラボ Aero有効時におけるデスクトップキャプチャについて


しかし、UO公式、もうクライアントのバージョンアップ情報とか載せないんだよな。
今回、7.0.55.0に変わったわけだけど、何を変えたとか情報出ししていない。
多分、文書としても残していないのだろう。
もはやエセ技術者(Bleak?)しか残っていないのだ。未来は暗い。

2016年11月11日金曜日

uoclist 0.8.1.53

・client.exe 7.0.54.0 対応
・video/audio captureの追加

UOClist
  download uoclist0.8.1.53.zip

まだuoclist本体への組込みが完全ではありませんが、
キャプチャ機能を追加しました。
まだまだ改良が必要ですが、やっとRazorにおいついた感じwww
画面サイズが大きくなると、僕のVista初期の頃に買ったノートPCでは
コマ落ちが激しいです><
新しいPC買うか。
このノートPC、A4サイズで1400x1050の画面サイズなので、今の時期、こたつに
入ったままUOするのにいいんだけどなぁ。。。

エンコーダのセッティングは、
videoをx264、audioをOS付属のMPEG Layer-3にしてます。
OS付属のMPEG Layer-3のエンコーダ機能を有効にするには、
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32

m3acm.l3acmのデータをl3codecp.acm
に書き換える必要があります。
LameのMP3エンコーダだと、CBRっていってもABRなためかサイズが可変なので音ズレがでると
思う。
AACのacmエンコーダがあればいいんですけどねぇ。。。
x264の設定は今はこんな感じ。

コマ落ちに対しては、キャプチャ済み画像で代用してAVIStreamWrite()の繰り返しで埋め合わせをしています。
AVIなので、設定した15FPSに見合うコマ数を書き出さないと、videoとaudioの時間ズレが発生
してしまうので。。。
コマ落ち対応はもうちょっと工夫が必要だな。

追記:)
うーん、やっぱりvideoとaudioのズレがどうしても出てしまう。
audioがバーチャルデバイスのソフトドライバだからってのもあるけど、ズレが酷いよね。
同期をとる工夫が必要か。。。
audio側を基準にして、video側の水増しで調整するしかない???

追記2:)
原因を推定してみると
video側は、timeGetTime()を基準にどうにかこうにか15FPSのコマをAVIStreamWrite()でつくろうと
頑張っている。
audio側は、waveInのドライバがバッファに指定したサンプリング周波数でデータを詰め込んでいき
貯まったところ(MP3の変換前ブロック長の定数倍の長さになったところ)で、次のバッファをキュー
から取り出してきて、貯まったよってメッセージを送る。
そのデータをMP3に変換してAVIStreamWrite()に流し込む。
videoとaudioでまったく干渉のない作業をしているんですね。
waveInからのサンプリングの取りこぼしがあると、audio側の時間が伸びてしまう。
なのでaudio側の伸びた時間をvideo側の基準時間、もしくはaudio側のAVIStreamWrite()の
タイミング周期から換算して、伸びた分をvideo側で調整するのが
やりやすいかな。audio側は、MP3変換のためのブロック長が決まっているので、間引くためには
コーディング的には手間が多くなる。

追記3:)
いやいやまてよ。
video側、15FPSに設定しているけど、timeGetTime()はミリ秒までの精度しか出せないから
間隔で言うと1000/15=66.6666を四捨五入して67msecに取り込み間隔を設定している。
処理の実行時間を考えてないから、誤差で伸びることもあるだろう。
なので、正確には14.93FPS。0.07枚足りない。3分=180秒だと、12.6枚も足りない。
12.6/15=0.84秒短くなる、ってことか。
15FPSでぴったりの枚数にするには、1/0.07=14.3秒毎に1枚余計に追加するってことかいね?
枚数でいうと、14.93*14.3=213.5回、AVIWriteStream()を実行したら、1回余計に
AVIWriteStream()を実行する、ってことかな?
なんかピッタリの数字でなくて気分悪いけど。
audio側のサンプリングレートの正確さを信じるとすると、こういうことか。

追記4:)
さらに考えてみると、15FPSに設定するんでなくて、14.93FPSに設定すればいいのか。
AVICreateStream()はdwScaleとdwRateで決めるようになっているんで、
dwScale=1, dwRate=15とするんじゃなくて、
dwScale=67, dwRate=1000
とすれば、辻褄が合うじゃん

追記5:)
どうやら、追記4:)が正解のようだ。パラメタ修正だけですむからすぐ確認できた。
あとは、1時間とか録画したときにどれくらいズレが出るかだなぁ。。。

2016年11月9日水曜日

AVIファイルにキャプチャした音声のMP3フォーマットストリームを入れる設定方法

ここ数日、ずっと悩んでました。
未圧縮のPCMならAVIファイルに時間ピッタリで入れ込むことが簡単にできるんですよ。
これがMP3になると、ネタ的に古すぎるのか(0年台初期の話ですからねぇ)
ググっても出てこない、出てきても、どうやるの?って質問ばっかり。

やっと、論理的に整合のつくAPI引数設定がわかりました。
1152がキモな数値。
AVICreateStream()の引数のAVISTREAMINFOの設定を以下のソースコードのように
します。

あとは、waveInOpen()でマイクを設定して、バッファに溜め込まれたPCMデータを
定期的にacmStreamConvert()でMP3データに変換して
AVIStreamWrite()で流し込んでやればいいだけ、のはず。(まだ確認してない)

ただし、Lameのコーデックだと、デフォルトでビットレート可変になってしまっているのか
失敗します。
Lameコーデックのエンコード設定をするコードを書けばいいんでしょうけど、
そこまで調べるのが面倒。。。
ということで、OSに付属のFraunhoferのコーデックを使うことになるのですが、
MSも意地悪な設定をしていて、レジストリを書き換えないとエンコードも可能な
MP3コーデックを使用できないみたい。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Drivers32
のmsacm.l3acmの値をl3codecp.acmに変更することで、エンコードも可能なコーデック
'MPEG Layer-3'を使用できるようになります。

これで、キャプチャした動画/音声をx264/MP3のAVIファイルとして作成できるようになった!
(と思う^^;;;)


まだ、STREAMINFOの設定がこなれていないんだよね。
PCMでAUDIO_CAPTURE_BITSPERSAMPLE=24のときどうなるかではっきりすると思う。

#define VIDEO_CODEC 0x34363278 // 'x''2''6''4'
#define VIDEO_CAPTURE_FPS 15
#define VIDEO_CAPTURE_WIDTH 640
#define VIDEO_CAPTURE_HEIGHT 480
#define VIDEO_CAPTURE_BITSPERSAMPLE 32

#define AUDIO_CAPTURE_SAMPLINGFREQUENCY 32000
#define AUDIO_CAPTURE_CHANNELS 2
#define AUDIO_CAPTURE_BITSPERSAMPLE 16

#define MP3_BITRATE  128
#define MP3_SAMPLESPERFRAME 1152
#define MP3_FRAMESIZE (MP3_SAMPLESPERFRAME*((MP3_BITRATE*1000)/8)/AUDIO_CAPTURE_SAMPLINGFREQUENCY)

  PAVIFILE pavifile;
  PAVISTREAM pvid, paud;
  
  HACMDRIVERID hmp3driverid=NULL;

  AVIFileOpen(pavifile, filename, OF_WRITE|OF_CREATE, NULL);

  BITMAPINFOHEADER bi;
  memset(&bi, 0, sizeof(BITMAPINFOHEADER));
  bi.biSize=sizeof(BITMAPINFOHEADER);
  bi.biWidth=VIDEO_CAPTURE_WIDTH;
  bi.biHeight=VIDEO_CAPTURE_HEIGHT;
  bi.biPlanes=1;
  bi.biBitCount=VIDEO_CAPTURE_BITSPERSAMPLE;
  bi.biCompression=BI_RGB;
  bi.biSizeImage=bi.biHeight*bi.biWidth*(bi.biBitCount/8);

  RECT rc;
  SetRect(0, 0, VIDEO_CAPTURE_WIDTH, VIDEO_CAPTURE_HEIGHT);

  WAVEFORMATEX wfx;
  memset(&wfx, 0, sizeof(WAVEFORMATEX));
  wfx.wFormatTag=WAVE_FORMAT_PCM;
  wfx.nChannels=AUDIO_CAPTURE_CHANNELS;
  wfx.nSamplesPerSec=AUDIO_CAPTURE_SAMPLINGFREQUENCY;
  
  wfx.wBitsPerSample=AUDIO_CAPTURE_BITSPERSAMPLE
  wfx.nBlockAlign=wfx.wBitsPerSample/8*wfx.nChannels;
  wfx.nAvgBytesPerSec=wfx.nSamplesPerSec*wfx.nBlockAlign;
  
  MPEGLAYER3WAVEFORMAT mp3wf;
  memset(&mp3wf, 0, sizeof(MPEGLAYER3WAVEFORMAT));
  mp3wf.wfx.wFormatTag=WAVE_FORMAT_MPEGLAYER3;
  mp3wf.wfx.nChannels=AUDIO_CAPTURE_CHANNELS;
  mp3wf.wfx.nSamplesPerSec=AUDIO_CAPTURE_SAMPLINGFREQUENCY;
  
  mp3wf.wfx.wBitsPerSample=0;
  mp3wf.wfx.nBlockAlign=1;
  mp3wf.wfx.nAvgBytesPerSec=(MP3_BITRATE*1000)/8;
  
  mp3wf.wfx.cbSize=MPEGLAYER3_WFX_EXTRA_BYTES;
  mp3wf.wID=MPEGLAYER3_ID_MPEG;
  mp3wf.fdwFlags=MPEGLAYER3_FLAG_PADDING_OFF;
  mp3wf.nFramesPerBlock=1;
  mp3wf.nBlockSize=MP3_FRAMESIZE*mp3wf.nFramesPerBlock;
  mp3wf.nCodecDelay=1393;

  // video stream
  AVISTREAMINFO si;
  memset(&si, 0, sizeof(AVISTREAMINFO));
  si.fccType=streamtypeVIDEO;

  si.dwScale=1;
  si.dwRate=VIDEO_CAPTURE_FPS;
  si.fccHandler=VIDEO_CAPTURE_CODEC;
  si.rcFrame=rc;
  AVIFileCreateStream(pavifile, &pvid, &si);

  AVICOMPRESSOPTIONS op;
  memset(&op, 0, sizeof(AVICOMPRESSOPTIONS));
  op.fccType=streamtypeVIDEO;
  op.fccHandler=VIDEO_CAPTURE_CODEC;

  PAVISTREAM pvidcomp;
  AVIMakeCompressedStream(&pvidcomp, pvid, &op, NULL);
  AVIStreamRelease(pvid);
  pvid=pvidcomp;

  AVIStreamSetFormat(pvid, 0, &bi, sizeof(BITMAPINFOHEADER));

  // audio stream
  AVISRETAMINFO si;
  memset(&si, 0, sizeof(AVISTREAMINFO));
  si.fccType=streamtypeAUDIO;

  if(hmp3driverid==NULL){
    // wav
    si.dwSampleSize=AUDIO_CAPTURE_BITSPERSAMPLE/8*AUDIO_CAPTURE_CHANNELS;
    si.dwScale=si.dwSampleSize;
    si.dwRate=AUDIO_CAPTURE_SAMPLINGFREQUENCY*si.dwSampleSize;
    AVIFileCreateStream(pavifile, &paud, &si);
    AVIStreamSetFormat(paud, 0, &wfx, sizeof(WAVEFORMATEX));
  }else{
    // mp3
    si.dwSampleSize=MP3_FRAMESIZE;
    si.dwScale=MP3_SAMPLESPERFRAME;
    si.dwRate=AUDIO_CAPTURE_SAMPLINGFREQUENCY*si.dwSampleSize;
    AVIFileCreateStream(pavifile, &paud, &si);
    AVIStreamSetFormat(paud, 0, (LPWAVEFORMATEX)&mp3wf, sizeof(MPEGLAYER3WAVEFORMAT));
  } 


2016年11月8日火曜日

Pub95?

欲しいのは、PoFまとめる樽と染料かな。
新グラのアイテムは興味ないし。

今は毎日バルク貰って植物の世話して、残り時間で少しずつブラダンをすすめておしまい、
たまにデシPSC回すって感じです。ブラダンポイント、今は貯めモードでやっと500ポイント超えました。

ブラダンのキャプテンタイマンの自分メモ
・ガーゴ、バード
 ライフリーチ無しの自動包帯のみでほったらかし。
 ガーゴの場合はエネワン剥がし、バードの場合はPMがあるので、そこでちょっと操作するくらい。
・ウィザードちゃん
 ライフリーチ無しで叩いて、すこしやばくなったところでライフリーチありの武器に変えたりするけど
 基本はライフリーチありの自動包帯でほったらかし、たまに灰になれにひっかかるw
・ネクロっち、ローグ
 自動包帯でほったらかし、たまに離脱してコンフィデンスを1回して復帰。ときどきネクロが炎抵抗、
 毒抵抗を60まで下げてくるけど、そこを狙ってくる有効な攻撃手段がないので何やってんの?って感じ。
 ここいらは大ダメージがないのでスタミナが減らないし、包帯スリップもないので楽ちん。

・弓み
 追っかけるのがめんどくさい。結構命中が高いので、最初の入りで油断してライフリーチなしのまま
 叩いてたりすると矢がパコパコあたって瀕死になってあせる。けどエネワン1回で終わるレベル。
・アスアスイン
 ローグの上位版?離脱してコンフィデンスする回数が少し多くなるくらいでエネワン1回で終わるレベル。
 爆弾の連発で、あぁエフェクトきれいだね、とか。

・サンパイア
 こいつ、回避が高くね?攻撃をスカスカ外しまくってイラつく。
 白豚っていうかネクパラっていうか、プレイヤーレベルじゃこんな操作しねーよって行動をする。
 アミサコ連呼とか。
 動き回るのでイラつくけど、被ダメが大きくないので、まぁ相手するのに我慢できるレベル。
・ソード
 最初ライフを少し削るまではヒットアンドアウェイ。その後、0抵抗の場合は大小で張り付き。
 これくらいのレベルがやってて楽しめる範疇。Redeemerぶん回すくせに木刀持ってる意味がわからない。

・フェンサー
 ソードと同じく、最初ライフを少し削るまではヒットアンドアウェイで0抵抗なら大小張り付きでいける。
 そうでない場合はそのままヒットアンドアウェイで慎重に。
 忍者の動物変身後は形態によっては命中が上がっているので特に注意。
 通常個体でラジャタン持ってるときの60ダメを連続で受けるとスタミナ激減りで泣ける。
 ただ抵抗はメイサーほど高くないのでこっちも通常攻撃でダメージを与えることができるのが救い。
・メイサー
 相手にする必要なし。相手するにしてもひたすらヒットアンドアウェイ。盾持ちで5連続スカが当たり前。
 下手に張り付くと手数で負けてしまうので、ヒットアンドアウェイで休み休みが結局のところ効率がいい。
 当たってもイグノアじゃなきゃダメージ一桁代。NPC版コンカスのマナ削りが(6秒間であっても)痛い。
 マナがたまらんし、ダメージ受ければスタミナ削られる。防具(特にリング/ブレスレット)の耐久の
 減りに対して、MinaxMAF2個じゃ割に合わない。名誉取る意味がないし、イグノアのみ有効なので
 メンテ越しかどうかもあんまり関係ない。
 相手していて非常につまらない。徒歩なので、こっちも一撃されたら離れてあしらっておけば
 やられることはない。ひたすら寒い戦いが続く。
 塔を叩くのに邪魔なとき、心のなかでクソKyronixとつぶやきながら、20分程度我慢して倒す。

2016年11月6日日曜日

2016年11月3日木曜日

Windows7ってミキサーが入ってないやん><

古臭いネタばかりですみません。
Vista時代を入れれば、いったい何年前に大騒ぎ?になったネタなのやら。。。

なんとなく、PCの画面/音声キャプチャを自作して最適化すれば、
僕の常用する古臭いPCでもなんとかUOのAVIファイルを作成できるんじゃないかと
思って調査中です。

で、問題となるのが音声キャプチャ。
古臭いネタしか扱えない僕ですから、当然、使用するAPIはwaveIn/waveOut系になります。
そこで問題となるのが、録音デバイス。

Windows7にはミキサーデバイスが標準で入っていないので、代わりになるものを探さなければ
なりません。

とりあえずググって、まずはNETDUETTO。こちらはYamaha製で信頼が置けるのですが
残念ながら再生デバイスとして現れる"ライン"を規定のデバイスとして指定できません><
プレイヤーソフトのように、出力デバイスを指定できるソフトなら、
再生デバイス"ライン"→録音デバイス"ライン"→録音デバイス"ライン"のモニタ再生デバイス指定
の設定でいけるのですが、規定のデバイスを使うしかないソフトの場合これができません。

次に試したのが、AvnexVirtualAudioDevice。ボイスチェンジャのおまけで付いてくるドライバ
ですが、こちらは再生デバイス"virtualスピーカー"を規定のデバイスに使うことができるので、
waveInで音を拾えることができました。

なのですが、結構重いんですよね。UOやっててwave効果音が多く発生するとUOの動きが
カクカクになります><
昔よく言われていた、UOの音落ちを実感しました。

うーむ、NETDUETTOをなんとか再生の規定のデバイスとして使用できないものか。。。