任意の絵を出す
"Optimus mini three keyboard"のサンプルをいじりながらビットマップを出してみました。
とりあえず、自作プログラムからキーボードへアクセスするときには、"Optimus mini Configurator"(常駐してアプリごとにボタンの割り当てとか変えてくれるプログラム)は切っておく必要がありそうですね。
"Optimus mini Configurator"起動時にアプリごとにボタン表示を変えたい場合にはプラグインを作るのが良さそうですね。
平山 尚(株式会社セガ): ゲームプログラマになる前に覚えておきたい技術
かなり分厚い本ですが,「ゲームを作るために必要な技術」を広く解説しています.
実際に,2D,3Dともにサンプルのゲームを作りながらゲーム作りを学んでいきます.ゲーム特有のプログラムの構造,C++自体の各種話題などを解説しています.
わりとC++自体は遠慮無く使われているので,C++の入門書が終わって(もしくは並行して学習しながら),ゲームプログラミングを1から学ぶには良い1冊だと思います.
出版社の紹介ページ
http://www.shuwasystem.co.jp/products/7980html/2118.html (★★★★★)
Fletcher Dunn: 実例で学ぶゲーム3D数学
3DCGのための数学を解説した書籍.
3Dで使う,ベクトルや行列などの線形代数の各種計算の解説の他に実際にC++での実装方法についても触れられています.
3D特有のプリミティブや衝突判定,射影などについても紹介されています.固定機能やD3DXに頼ってしまって,中身がよく分からないという人なんかの学習なんかにも役立ちそうです.
3D APIのブラックボックスな部分を再確認したい人にはオススメ.
出版社の紹介ページ
http://www.oreilly.co.jp/books/9784873113777/ (★★★★★)
Tomas Akenine-Moller: Real-Time Rendering
Real-Time Renderingの第3版.
リアルタイム3DCGの各種手法やテクニック,グラフィックハードウェアについて網羅的に解説した一冊.
2008年版ということで,前の版に比べてGPUを使ったテクニックの話題が大幅に増えています.対象となるシェーダモデルも4.0まで解説されています.
コンソールゲーム機に関する話題もあり,Xbox 360のアーキテクチャ,PlayStation 3のCellやRSXなども解説されています.
現在のリアルタイム3DCGのことを知るには最適な1冊.
書籍の公式サイト
http://www.realtimerendering.com/book.html (★★★★★)
« 動かなくて泣きそうになった | トップページ | これだったか »
"Optimus mini three keyboard"のサンプルをいじりながらビットマップを出してみました。
とりあえず、自作プログラムからキーボードへアクセスするときには、"Optimus mini Configurator"(常駐してアプリごとにボタンの割り当てとか変えてくれるプログラム)は切っておく必要がありそうですね。
"Optimus mini Configurator"起動時にアプリごとにボタン表示を変えたい場合にはプラグインを作るのが良さそうですね。
« 動かなくて泣きそうになった | トップページ | これだったか »
はじめまして。
私はOptimus mini threeに任意のビットマップ画像をサンプルコードをいじって出す方法がどうしても分からないので
Optimus mini threeのサンプルコードについて
お聞きしたいのですがよろしいでしょうか?
管理人様はこちらの画像の文字はAFOFもしくは
hotkeyから出しているのでしょうか?
C++でサンプルコードを作成していたらお聞きしたい事があります。
公式サイトのDevelopersからVC++の
sample plug-in with settingsを落としてVC++2005で
起動させてコンパイルをしてビルド→デバッグの実行をすると
「実行ファイルが見つからない!」とPCに怒られます。
デバッグフォルダにはEXEファイルがありません。
Cの勉強を始めたばかりということもありますが
正直ここでいじったソースをどうやってこのキーボードに
反映させるのか分かりません。
一応コンパイルでEzamplフォルダに新しい.oplファイルは
出来上がりますがこれをメニューに加えてキーボードに入れると
エラーが起こってしまいます。
もし知っていたら教えてください。すみませんがお願いします。
投稿: tokoro | 2007.07.15 17:55
昔のブログにコメントして
申し訳ないのですがよろしくお願いします。
投稿: tokoro | 2007.07.15 18:03
上の記事では、下記の"OptimusMiniLibrary.zip"のコードを改変した物になります。
http://www.artlebedev.com/everything/optimus-mini/developers/
このサンプルは、
"library with an example of use"
と記載があるとおりライブラリだけでなく、シンプルなサンプルが付属しています。
サンプルは、Optimus mini threeをプログラムが占有(そのため"Optimus Configurator"が起動してると起動できません)して、表示するサンプルが付いています。
プラグインの方は、ちょっと作ったことがないので分からないです。
投稿: masafumi | 2007.07.16 00:44
ありがとうございます。
そのサンプルも入っているライブラリファイルも落としました。
かなり沢山のcppファイルとヘッダーファイルがありましたが・・それはいいとして。
流れとしてはビットマップ画像作成→コード改変をしてビルド、
その後の流れはどうなるのでしょうか?
どうやってOptimusキーボードに改変したコードの内容を
覚えさせる(?)のかがどうしても分からないんです。
ちょっとソース本体が今手元に無いので
ソースコードを入手して気になるところが
あったらまた質問してもよろしいでしょうか?
投稿: tokoro | 2007.07.16 01:42
> かなり沢山のcppファイルとヘッダーファイルがありました
実際には、ライブラリやDLLのソースなので読むべきソースは少ないですよ。
BmpTool.cpp
OptimusMiniUsageSample.cpp
しか読まないでよい構造になってるはずですよ(OptimusMiniUsageExample.dspだけ)。
> Optimusキーボードに改変したコードの内容を覚えさせる
これは、ちょっと違います。Optimusキーボード自体には、画像などを保持しておくメモリなどはありません(なので実行ファイルが起動してる間しか絵は出ません)。
ですから、キーボードを表示する実行ファイルの方では、
・Optimusのポートを開き、PCを接続
・実行ファイル側が表示する絵を送信し続ける
・ボタンが押されたらそのイベントを取得して絵を変える
ということをやっております。
送信するデータのプロトコルに関しては、下記の"OptimusMiniProtocol.doc"に目を通しておく必要があります。これで、どういうデータを送るのかとかコマンドなのかというのが分かります。シリアルポートのプログラミングとかを経験してると比較的考え方としてはわかりやすいと思います。
http://www.artlebedev.com/everything/optimus-mini/developers/
ちなみに、Configuratorに関しても同じで、基本的にはタスクトレイに入って常時起動しっぱなしで、絵の表示命令を送り続けてるだけです(あと、現在フォアグラウンドに来ているアプリを監視して、それに応じた絵を出す)。
> あったらまた質問してもよろしいでしょうか?
あんまり私自身もいじり切れてないので、答えられることは少ないと思いますが、答えられる範囲であれば。
投稿: masafumi | 2007.07.16 02:45
管理人さま、ありがとうございます。
BmpTool.cpp
OptimusMiniUsageSample.cpp
だけとは気づきませんでした。ありがとうございます。
>Configuratorに関しても同じで、基本的にはタスクトレイに入って
>常時起動しっぱなしで、絵の表示命令を送り続けてるだけです
確かにそうですね。タスクトレイのOptimusアイコンのExitを
押すとボタンの画像消えますもんね。ライブラリの方を実行すると
libファイルが見つからないエラーが出るのですが管理人さんは
出ましたか?そのエラーを解消した後なのですが
プラグインの場合実行するとき
コンパイルしてデバッグフォルダに「.opl」の
ファイル出してそれを実行ファイルに指定してやれば良いらしいのですがライブラリでも同じ流れでしょうか?
投稿: tokoro | 2007.07.17 22:45
> libファイルが見つからないエラー
サンプルだけビルドしてもダメです。
ライブラリは、自分でビルドしないとダメですよ(元々の多数のソースはライブラリのためのソースです。そもそも"library with an example of use"ですので)。
OptimusMiniLibrary.dsw
を読み込んで、全部のプロジェクト("OptimusMiniDll.dsp"や"OptimusMiniLibrary.dsp"なども)をビルドする必要があります。DLLも出来るので、その扱いも注意してください。。
あと、使ってるVisual Studioが6以外の場合は、コードの書き方(主に、for文内の宣言ですが)が古いので一部を書き換える必要があります。
そのほかにも色々とソースのミスがあるのですが、それはエラー出たら順番につぶしていけば動くようになります。
とにかく、自分で自由に使うには相当きついので頑張ってみてください。
投稿: masafumi | 2007.07.18 00:33