Hatena::ブログ(Diary)

tacoworks 活動記録

華麗にスナップを利かせて軽やかに orz

そんな暮らしを目指しています。
放置中のサイトtacoworks.jpもどうぞ。

2004 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 11 |
2009 | 03 | 05 |
2010 | 11 | 12 |
2011 | 01 |
2012 | 05 | 09 |
 

2012-09-29

Kinect+XNA による簡易バーチャルスタジオ Kinect+XNA による簡易バーチャルスタジオを含むブックマーク

id:logion:20120907 で書いたKinectのネタですが、実は簡易バーチャルスタジオのシステムを作っていました。

しょぼい事務所撮影しても人物だけ切り抜いてCGセットに合成すれば、あら不思議!豪華なセットで撮影したように見える!(かも?)

正確にはカメラの角度や位置にCG完璧追従しないといわゆるバーチャルスタジオにはなりませんが、そこはどうしようもないので目をつぶっております

また3DフレームワークであるXNAを使う以上、スタジオのモデルも当初は3Dポリゴンで表示していまいたが、諸般の事情によりレンダリング済の画像2Dで合成する方法に変更しており、バーチャルというよりはただのハメコミ合成システムと化しておりますorz

このシステムを使って今晩から4週間ほど、毎週土曜日19:00〜20:00にニコニコ生放送YouTube Live番組生放送されます

ニコニコ生放送「フミコの告白」「ロボと少女(仮)」作者らと観る、 CGアニメコンテスト・CGアニカップ 予習的鑑賞会
YouTube LiveCGアニメコンテスト・CGアニカップ事前告知番組「予習的鑑賞会」

時間がありましたらよろしければご覧下さい。なお、普通のビデオカメラ映像になっていたら何かしらのトラブルで中の人が慌てふためいていると思われますので、生暖かい眼差しを投げ掛けて頂けると嬉しいです。

トラックバック - http://d.hatena.ne.jp/logion/20120929

2012-09-07

Kinect 3台接続までの道 Kinect 3台接続までの道を含むブックマーク

どういうわけか今Microsoft Kinectを使ったイベント向けのシステムを作っています。3DCGの扱いが簡単なXNA Game Studio4.0上で、Microsoft公式のKinect SDKを使いC#で書いています。

リリースノートによると1台のPC4台まで接続できるようですが、実際にやってみるとハードウェアの相性と思われる問題に多数ぶち当ってしまいました。とりあえず3台までは同時に接続し色・深さ画像が取得できるようになりましたので、ここに記録しておきたいと思います。

CPUintel Core i7-2600(無印)
マザーボードMSI Z68A-G43(B3)
メモリGeil EVO CORSA DDR3-1333 8GBx2

上記マザーボードには、USB3.0コントローラとしてRenesas μPD720200 を内蔵しておりKinect1台だけならUSBカードはいりません。

2台以上接続する場合PCI(2本)またはPCI-E(x16,x4が1本ずつ、x1が2本)にUSBカードを接続することになります。(※伏線)

USBコントローラの種類に注意 USBコントローラの種類に注意を含むブックマーク

上記リリースノートには、

最大 4 台の Kinect センサーのサポート: 同一 PC に最大 4 台までの Kinect センサーを接続することができます。ただし、各センサーがそれぞれ独立した USB コントローラーに接続できるだけの性能を持つ PC であることが前提。(これまで通り、骨格追跡は1 プロセスにつき 1 台の Kinect でしか使用することができませんが、開発者は使用する Kinect センサーを選択することができます。)

と書かれており、Kinectを追加するには PCIまたはPCI-E接続のUSBカード必要になります。

ところが、USBコントローラチップの種類によってはKinectを全く認識しないものがありました。

メーカー製品PCI/PCI-EUSB種別USBコントローラKinect認識
AREASD-PEU3E-2E(Due・Sport)PCI-Ex1USB3.0Etron×
AREASD-PEU3V-2E2IL(OF2)PCI-Ex1USB3.0VLI×
玄人志向USB2.0N6P-PCIPCIUSB2.0Renesas μPD720101×
玄人志向USB3.0R-P2-PCI2PCI-Ex1USB3.0Renesas uPD020202
SilverStoneSST-EC04PCI-Ex1USB3.0TI TUSB7340

同一USBコントローラの複数枚挿しには要注意 同一USBコントローラの複数枚挿しには要注意を含むブックマーク

USBカードを色々試していたときに、まず玄人志向 USB3.0R-P2-PCI2がKinect認識することがわかったので、同じカードをもう1枚買ってきて挿してみたところ、2枚目のUSBカードが全く認識されませんでした。orz

どうも同じコントローラチップを持つ複数のカードがあると、ドライバが2つ目を認識できないようです。

PCショップの店員さんによると、SATAカードなどでもよくあることらしいです。

PCI-Eのスロットの種類にも要注意 PCI-Eのスロットの種類にも要注意を含むブックマーク

こうしてUSBコントローラの種類にも気をつけて別メーカーコントローラを搭載したUSBカードを入手したのですが、2枚のUSBカードをいずれもPCI-Ex1のスロットに挿していると、2台目のKinect認識しませんでした。

PCI-Ex1とPCI-Ex16、あるいはPCI-Ex1とPCI-Ex4の組み合わせなら無事認識しました。

3台接続に成功した構成 3台接続に成功した構成を含むブックマーク

ということで、以下の構成でKinect3台の同時接続に成功しました。

CPUintel Core i7-2600(無印)
マザーボードMSI Z68A-G43(B3)
メモリGeil EVO CORSA DDR3-1333 8GBx2
USBカード玄人志向 USB3.0R-P2-PCI2PCI-Ex1に接続
USBカードSilverStone SST-EC04PCI-Ex4に接続

当然ながら、KinectマザーボードとそれぞれのUSBカードに1台ずつ接続しました。

そして… そして…を含むブックマーク

似たような状況で苦しんでいる方がおられましたら、↑の記録が少しでも参考になれば幸いです。

4台目をどう接続するか悩んでいるのですが、最後のPCI-Ex16にUSBカードを挿してしまうとビデオカードが挿さらなくなってしまCPU内蔵のintel HD Graphics 3000で3DCGを表示することになるのは嫌やなあ…。

PCI-Ex1, x4, x8, x16と4種類あるマザーボードを調達するか、*1PCIに挿さるUSBカードKinect認識するものを探すか…。

まだまだ先は長そうです。orz

*1:スロットの種類を替えなければいけない?…というのも今ひとつ腑に落ちませんね…。もしかするとPCI-Ex1が複数の組み合わせの時に限ってバスの帯域が足りないとか…そうであればPCI-Ex4(x2, x8, x16でも可)が複数ある場合なら問題なく行けるのかもしれませんね。残念ながら上記のマザーボードにはPCI-Ex4もx16も1つずつしかありませんので検証のしようが有りませんでしたが、これでいいなら選択肢はもう少し広がることになります。

2012-05-09

jed Editorの設定メモ jed Editorの設定メモを含むブックマーク

CentOSOSX で開発するようになってから軽量なemacsクローンテキストエディタとしてjed を愛用しています。

Windows(7/XP) から putty経由でCentOSまたはOSXsshログインし、screenの中でjedを立ち上げて作業しています。

これまで、いくつか設定に詰まった所がありましたので、以下にメモしておきます。

  • CTRL+HでBackspaceが効くようにしたい

デフォルトではCTRL+Hを入力するとヘルプが表示されてしまって困るので、~/.jedrc に

local_setkey ("backward_delete_char","^H");

と書くと編集バッファにおいてはBackspaceになります。が、ミニバッファ(最下行の入力行)で相変わらずヘルプが開いてしまい完全には解決できていません。

本家サイトのFAQによるとsttyの設定をちゃんとするのが正しい解決のようですが、それでもうまくいかない時は~/.jedrcに

map_input (8, 127);

と書けばよいようです。(この時、上のlocal_setkey()は不要です)

CentOSでは普通にUTF-8の文字が表示・入力できていたのですが、OSXでは文字化けしてしまいしばらく困っていました。ようやく解決策を見つけることができましたが、screenも絡んでいたとは気づきませんでした…。

screen と jed の双方で設定が必要です。

まず、~/.screenrcに以下の2行を追加します。(参考: ガク・ネットさんのscreenメモ)

defencoding utf-8

encoding utf-8 utf-8

次に、環境変数JED_UTF8を以下のようにセットします。私の場合は~/.profile等に書きました。(参考: jedソースアーカイブ付属doc/txt/utf8.txt)

export JED_UTF8=FORCE

これでOSXでも普通にUTF-8日本語が表示・入力できるようになりました。

(2012/5/11訂正) LANGを設定すればJED_UTF8は不要 (2012/5/11訂正) LANGを設定すればJED_UTF8は不要を含むブックマーク

すみません、LANGを適切に設定していればJED_UTF8はなくても表示されるようです。

~/.profileに以下の行を追記し、上記のJED_UTF8の行は削除して下さい。

export LANG=ja_JP.UTF-8

トラックバック - http://d.hatena.ne.jp/logion/20120509

2011-01-09

Qt Creator でデバッグ実行が動かない問題 Qt Creator でデバッグ実行が動かない問題を含むブックマーク

先日から Qt Creator のデバッグ実行をしようとすると、こんなダイアログが表示されて全くデバッグできない、という問題に悩まされていました。

デバッグを楽に進めたくて IDE を使っているのにデバッグ実行ができないなんてあんまりです(苦笑)。

あれこれ状況を調べたところ、以下の事がわかりました。

これらの情報を頼りにあちこち検索してみると、同じような状況に出くわした人の記事が見つかりました。

前者を参考にビデオカードドライバを最新に上げてみても状況は変わりませんでしたが、後者を参考に Avira AntiVirアンインストールすると無事デバッグ実行できるようになりました。代わりに AVG Free をインストールしましたが、こちらでは特に問題は起きていません。

トラックバック - http://d.hatena.ne.jp/logion/20110109

2010-12-02

Hibernate名前が同じ複数のクラスに対して O/R マッピングする Hibernate で名前が同じ複数のクラスに対して O/R マッピングするを含むブックマーク

org.foo.bar.Preference というクラスと org.blah.hoge.Preference というクラスがあるときに、それぞれをデータベースに保存できるようにしようとして散々ハマったので書いて起きます

名前空間が異なるので一見問題なさそうに思えるんですが、実際にこれをやろうとすると tomcat 起動時にマッピングファイルが読み込めないという不具合が発生して悩まされていました。過去に遭遇したときは、時間もなく対策が見つけられなかったためクラス名が衝突しないように名前を変更して対応*1していました。が、今回さすがに業を煮やして eclipse 上のデバッガで追いかけてみたところ、握りつぶされていた Exception の内容を見ることができました。

org.hibernate.DuplicateMappingException: duplicate import: Preference refers to both org.foo.bar.Preference and org.blah.hoge.Preference (try using auto-import="false")

確かに衝突していました。またその対応策に auto-import なるものがあるようです。Hibernate のリファレンス によると、

auto-import (optional - defaults to true): specifies whether we can use unqualified class names of classes in this mapping in the query language.

クエリの中で無資格クラス名が使えるようにする、とあるので名前空間が省略されたクラスに対して自動的に補完でもしてくれるんでしょうか。これを禁止したい時は、双方のマッピングファイル(手元の環境では src/org/foo/bar/Preference.hbm.xmlsrc/org/blah/hoge/Preference.hbm.xml)の中で以下のように書けばよいようです。

<hibernate-mapping auto-import="false">
...
</hibernate-mapping>

これで tomcat は無事起動でき、2つのクラスがどちらもデータベースに保存できるようになりました。

というか、そもそもデフォルトの設定が auto-import="true" というのが何とも納得が行きません…。初心者にとっては優しいのかもしれませんが、後々 O/R マッピングの数が増えてきた頃にハマることは必至です。デフォルトを false にして名前空間までちゃんと書く癖を付けさせた方がいいのに…と思ってしまいました。

*1:多数のjavaソースxmlファイルに変更が及んで大変

トラックバック - http://d.hatena.ne.jp/logion/20101202
 
2004 | 01 | 02 | 03 | 04 | 05 | 06 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 11 |
2009 | 03 | 05 |
2010 | 11 | 12 |
2011 | 01 |
2012 | 05 | 09 |