OpenFrameworks document (APIリファレンス) 日本語訳
(OpenFrameworks official website) http://www.openframeworks.cc/
(About OpenFrameworks)http://www.openframeworks.cc/about このサイトについて
About this website
当ウェブサイトはOpenFrameWorks documentationの非公式の日本語翻訳サイトです. This website is unofficial Japanese translation of OpenFrameWorks doc Page.
OpenFrameworksとは、C++でシリアル通信、静止画、動画、音声などが簡単に扱えるライブラリです.
OpenFrameworks is C++ library which serial communications, picture, animation,sound etc can be easily treated.
OpenFrameworks is developed by Zach Lieberman and Theo Watson. 翻訳者と公開の目的 Translator and purpose of opening to the public 翻訳者:塚原裕平 translator:Yuhei Tsukahara E-mail:
To make OpenFrameworks easy to understand more and to make it known to various people, this Web site was produced. 翻訳について About trancelation 原文は英語で書かれており、この訳文はオフィシャルなものではありません. The original is written in English, and this translation is not official.
There is a possibility in which the mistake is found though a faithful translation is borne in mind.
Please contact me with E-mail when you discovered mistranslation, erratum, omission of a word, and improper expression etc.
Moreover,The free translation, the change, and the addition might be done by the translator's judgment.
In that case, the translation is not necessarily correct.
The translator assume no responsibility for any damage resulting from the use of this translation. openframeworks-資料 [原文]
このページはOpenFrameworks-API資料のトップページです. PDFでOF0.03のコードも調べる事ができます.ここ[原文]現在はリンク切れ
この資料は pre-release 0.03を対象としています.
ofSimpleApp
OpenFrameworksエンジンは"app"カテゴリ内に含まれ、
proce55ingのように基本的なクラスは既に用意されています。 OpenFrameworksでは、さまざまなイベント実行関数が含まれているクラスを"ofSimpleApp"としています。 OpenFrameworksでプロジェクトを作る時、 "ofSimpleApp"から受け継いだアプリケーションやクラスを使用する為には、"main.cpp"を使用します。 動作テストでコードを書く時には、 ぜひOpenFrameWorksで既に定義されているupdateやdrawなどの関数を もう一度自分で打ち込んでみてください. 繰り返し実行される関数です.
変数を更新をするので、drawの直前に置くのが理想的です. 例えば、"testApp.h"で定義されている"xpos"という変数を考えてみましょう.
更新の直後に定期的に実行されます.
ここに描画するものを書き込みます.
キーボードが押された瞬間に呼び出されます.
押されたキーがどのボタンなのか判断できます.
文字コードだけでなく、F1-F12,Down, Enterのようなキーも使えます.
OF_KEY_BACKSPACE,
OF_KEY_RETURN,
OF_KEY_PRINTSCR,
OF_KEY_F1 - OF_KEY_F12,
OF_KEY_LEFT,
OF_KEY_UP,
OF_KEY_RIGHT,
OF_KEY_DOWN,
OF_KEY_PAGE_UP,
OF_KEY_PAGE_DOWN,
OF_KEY_HOME,
OF_KEY_END,
OF_KEY_INSERT
キーボードが離された瞬間に呼び出されます.
押されたキーがどのボタンなのか判断できます..
文字コードだけでなく、F1-F12,Down, Enterのようなキーも使えます.
OF_KEY_BACKSPACE,
OF_KEY_RETURN,
OF_KEY_PRINTSCR,
OF_KEY_F1 - OF_KEY_F12,
OF_KEY_LEFT,
OF_KEY_UP,
OF_KEY_RIGHT,
OF_KEY_DOWN,
OF_KEY_PAGE_UP,
OF_KEY_PAGE_DOWN,
OF_KEY_HOME,
OF_KEY_END,
OF_KEY_INSERT
音声入力を接続する場合、
ofSetupAudioを通じて音声の値がバッファに入った時、 この機能を使う事ができます. ステレオ入力のようなマルチチャンネルの場合、 浮動小数点配列だけではなく、バッファのサイズやチャンネル数を得る事ができます. 入力(音声データのfloat配列)のサイズは、以下の通り: bufferSize * nChannels; データは、交互に重なって来るので、 例えば、2つのチャンネル(左/右)をリクエストすると、サンプルは以下のように来ます.
チャンネル"j"の"n"番目のサンプルにアクセスするには、以下のように書きます.
音声出力を接続する場合、
ofSetupAudioを通じて音声の値がバッファに出力される時、 この機能を使う事ができます. ステレオ出力のようなマルチチャンネルを必要とする場合、 浮動小数点情報だけではなく、バッファサイズやチャンネル数を得る事ができます. ofUtils
ofUtils関数は基本機能や基本ユーティリティをOFプログラムに送る関数です.
フレーム率を指定する事によって、フレームレートをセットします.
垂直同期信号は画面更新をロックしてしまうので、 プログラムやビデオカードレベルによっては同期できない場合もあります. メモ:このコードはofAppRunnerに実装されています. グラフィックカードの垂直同期信号のオンとオフをセットします
場合によってはカードの設定が優先されるかもしれません 改善の為にOpenGLオプションのカードの設定をチェックし、 "ソフトウェア"に垂直同期を選ぶ事を許可してください. メモ:このコードはofAppRunnerに実装されています. グラフィックカードの垂直同期信号のオンとオフをセットします
場合によってはカードの設定が優先されるかもしれません アプリウィンドウの横ピクセル数を返します.
アプリウィンドウの縦ピクセル数を返します.
ウィンドウモードを返します
サンプル:
メモ:このコードはofAppRunnerに実装されています.
アプリ立ち上げからの経過時間を返します.
アプリ立ち上げからのフレーム数を返します.
システム時間の秒を返します.(0から59まで)
システム時間の分を返します.(0から59まで)
システム時間の分を返します.(0から23まで)
デフォルトのブラウザを使い、指定したURLを表示します.
OpenFrameWorksは、データやフォルダ内の全てのファイルを、アプリと同レベルであるとして扱います.
ファイルがOpenFrameworkクラスを用いて読み込まれる時、(例:ofVideoPlayer) 相対パスである必要があります. ファイルパスを相対パスに変換するのにこの関数を使います. ウィンドウ、マック、リナックスなどにはすべて異なる相対パスがあります. あなたが自作クラス、自作アドオンを作成し、データ/フォルダからファイルを読み込む場合、この関数が大切です. 数値を文字列に変えるのを簡単にする為に、その数の主な数値を取り出します.
浮動小数点である'precision'(精度)は使いたい小数の位数です. 'precision'(精度)のデフォルトの値は「7」で、 もし定義する必要がないならば、最初の項だけでかまいません. 例:文字数を指定して、キャプションバーにフレームレートを表示する.
ofMath
基本的なOpenFrameWorksアプリの数学ユーティリティです.
乱数が常に異なるように、クロックタイムでの乱数発生を設定します.
乱数が常に同じになるように、値を渡して乱数発生を設定します.
-1から1までの間の乱数を返します.
0から1までの間の乱数を返します.
ofSerial
利用可能なシリアルデバイスを表示します.
マックとリナックスでは、以下のように表示されます.
その他のPCでは以下のようになります.
コンソールから送られてくるメッセージやエラーを表示/非表示にします.
9600bpsで、最初に利用可能なデバイスを試します.
成功したならばtrueを、失敗したならばfalseを返します.
与えられたポート名とBPSでシリアルポートを開きます.
マックとリナックスでは以下のように表示されます.
その他のPCでは以下のようになります.
リストから、もしくは設定されたBPSに基づいてシリアルポートを開きます.
コード命令は、システムから見つかる最初のシリアルデバイスを開きます.
接続されているシリアルデバイスに、バイト型の文字を書き出します.
書き出されたバイト数が返されます.
接続されたシリアルデバイスに"length"で指定したバイト数だけ読み込みます.
読み込まれたバイトを文字列に変換して返します. 以下は、文字列"allbyte"の中に読み込まれた全てのバイトを入れるコードです.
接続されたシリアルデバイスに1バイトを書き込みます.
成功すると、trueを返します.
1バイトを読み込み、返します.
シリアルデバイスとの接続を閉じます.
ofGraphics
ofGraphicsは、OpenGLのドローコマンドの簡単なラッパーです.
RGB(0~255)として背景色をセットします.
背景は draw()コマンドが実行される前に自動的に消去されます. 背景が変わらないようにするには、 (アプリケーションの始まりに)"setup()"の中でこの関数を呼び出してください. 背景色が変わったら、"update()"でこの関数を呼び出せます. 背景色を取得します.
要素数4(R,G,B,A)の配列で返し、値は0.0~1.0です.
背景消去機能をオート(デフォルト)でするかどうかを指定します
オートにしないなら、(drawが始まる)毎フレームで背景消去は行われません. いつでも"ofBackground"が呼ばれます. 背景消去機能がオートである(true)か、手動であるか(false)を教えてくれます.
ofCircleコマンドの精密度を設定します.
デフォルトでは円は22ポイントですが、 より大きな円を書く必要があるなら、このコマンドを使って精密度を調節できます. 全ての円はOpenGLによって最適化されます. ※void ofCircle参照 長方形を描く為に設定されるコマンドで
長方形の左上角を指定して描画するか、 長方形の中心を指定して描画するかを指定します オプションは、 OF_RECTMODE_CORNER :左上角指定 OF_RECTMODE_CENTER :中心指定 です. (x,y)座標、幅、高さで与えられた長方形を描きます.
(x1,y1)(x2,y2)(X3,Y3)で与えられた点に三角形を書きます.
点(x,y)と幅(w)高さ(h)から楕円を書きます.
2点 (x1,y1),(x2,y2)で直線を書きます.
多角形の重なりあう部分の設定をします.
可能なのは以下の通りです OF_POLY_WINDING_ODD -
OF_POLY_WINDING_NONZERO - OF_POLY_WINDING_POSITIVE - OF_POLY_WINDING_NEGATIVE - OF_POLY_WINDING_ABS_GEQ_TWO - 新しい形状を作成する時に宣言します.
この宣言以降に頂点の座標を入力し、 最後に"ofEndShape()"を呼び出す必要があります.
形状の点の1つを指定します.
ofVertexとの違いは、 2つの点を結び、形状を縁取る線が曲線であるか、直線であるかです. 曲線はcatmull-rom式を使って自動的に生成されます. "ofBeginShape()"と"ofEndShape()"の間で呼び出してください. 選択された色で、後に指示する図形の輪郭を書きます.
選択された色で、後に指示する図形の形状を塗りつぶします
描画カラーにRGBを0~255までを設定します.
描画カラーにRGBAを0~255までを設定します.
アルファ値(透明度)については、 まず透過混合を可能にして、(パフォーマンスの為にデフォルトではオフになっている) 適切なz-オーダー(背面の画像)を描画します. 例:透明な赤い長方形を描きます:
16進数でRGBを指定します.
16進数は、色を表現するにあたり便利です.
例:
OpenGLの混合モードをオン/オフします
パフォーマンスの為に、デフォルトでオフになっているアルファブレンディングを可能にします.
これは、OpenGLで混合モードをオンにする一般的な命令です.
混合モードをオフにします.
点(x,y)でビットマップに変換した文字列を描画します.
例:このようにテキストを画面に出す事ができます.
複数行はこのようにします.
動的な文字列も使う事が出来ます.
例:フレーム率を表示する.
注意:
ofDrawBitmapStringは、glDrawPixelsによる過剰機能のラッパです. いくつかのグラフィックカードでは、glDrawPixelsは動作が遅いかもしれません. その場合は、選択肢としてアンチエリアスされていない小さな書体で "ofTrueTypeFont"を試してみると良いかもしれません. ofImageクラスは"freeImage"と呼ばれるライブラリのラッパのクラスです.
OpenFrameworkプロジェクトで、画像を読み込んだり、保存したり、描画するのに良く使われます. fileNameによって画像を読み込みます
ファイル名に基づき、効率の良いファイルタイプを選定します. 相対パスでファイルを探します. 例:exeファイルと同じフォルダ内にある"icon.gif"を呼びます. 下階層フォルダも指定できます.
fileNameで指定して画像を保存します.
ファイル名に基づき、効率の良いファイルタイプを指定します. exeファイルとの相対で指定します. 例:スクリーンショットを画像に保存します
動的にファイル名を付ける事もできます.
画像に幅(w)と高さ(h)を指定します.
OF_IMAGE_GRAYSCALE,
OF_IMAGE_COLOR,
OF_IMAGE_COLORALPHA
ピクセルにアクセスします.
データを捕獲して、好きなように使う事が出来ます グレイスケールイメージを使いたいなら、 要素数が(width*height)のピクセル配列を使えます. カラー画像を使う時は、 要素数はRGBを折り混ぜて、(width*height*3)となります. アルファカラーを使う時は、 RGBAを折り混ぜて、(width*height*4)となります. イメージを別のタイプにコンバートします.
例:カラー画像を読み込み、グレイスケールに変換します.
画像を(w,h)で指定した新しいサイズに変更します.
大きくしたり、小さくしたりできます.
OpenGLウィンドウを画像に変換します
必要であるならば、割り当てや、サイズ変更をします.
momの複製をします.
テクスチャの割り当てと使用を行います.
画像が変換された場合には、openGLテクスチャにアップロードされます. 画面に表示する必要はなく、グラフィックカードにメモリを保存する場合もです. OpenFrameworkに画像を読み込む前に、呼び出してください
内部のテクスチャを通して、左上点(x,y)に幅(w),高さ(h)の画像を描画します.
内部のテクスチャを通して、左上点(x,y)に画像を描画します.サイズは元の画像のままです.
画像の種類です.
OF_IMAGE_GRAYSCALE,
OF_IMAGE_COLOR, OF_IMAGE_COLOR_ALPHA.
OpenGLテクスチャを割り当てる時に呼ばれます.
幅(w)と高さ(h)が必ずしも2の累乗である必要はありません.(=非2^n テクスチャであるという事) しかし、テクスチャに送るデータを格納するのに十分大きい必要があります. "internalGlDataType"には、OpenGLのどのようなテクスチャを保存するかを記載します. 例:グレイスケールテクスチャを使うなら、"GL_LUMINANCE"を使います. "loadData()"を使って、どのタイプのデータでもアップロードはできますが、 OpenGLはグレイスケールとして情報を格納します. タイプは他に以下のようなものがあります GL_RGB; GL_RGBA; 所定の幅(w)と高さ(h)で、unsigned chars型配列をテクスチャに読み込みます.
読み込みデータフォーマットも指定します. データフォーマットオプション: GL_LUMINANCE; GL_RGB; GL_RGBA; 例:割り当てられているテクスチャに200*100PixelのRGB配列をアップロードします.
画面の領域を捕獲し、テクスチャに読み込みます.
捕獲したい領域の、左上位置(x,y)幅(w)と高さ(h)を指定します.
"allocate()"を使って、画面から読み込みたい領域より十分大きなテクスチャを割り当てた事を確認してください
与えられた(x,y)座標、幅(w)と高さ(h)に対してテクスチャを描画します.
与えられた(x,y)座標に対してテクスチャを描画します.
幅と高さはテクスチャの元の値です.
ofTrueTypeFontクラスは、openframeworksにフォントをロードするインターフェイスを提供します.
フォントはテクスチャに変換され、スクリーンに描画することができます. あなたがフォントをロードする時、いくつかのオプションがあります. -フォントはどのサイズで示されるか、 -アンチエイリアスするかどうか -完全な文字セット、もしくは文字セットかどうか (通常のアスキーコードに、アクセント、ウムラウトを加えた延長アスキー) デフォルトは、アンチエイリアスされた非完全文字セットです ライブラリにはfreetypeを使用します. freetypeはある著作権問題の関係で、true typeを暗に示しています. 特に非アンチエイリアスで小さな文字は綺麗に表示しません. しかし、我々はそれで十分だと判断しています. より大きなサイズで使われるからです. ファイル名でフォントをロードし、所定のフォントサイズでテクスチャへ返します.
データ/フォルダでフォントファイルを探します。 例:フォントサイズ32でarialフォントを載せます:
フォントをロードします.
フォント名とサイズに加えて、2つのフラグを渡す事ができます. _bAntiAliased:アンチエイリアスされるか _bFullCharacterSet:完全な文字セットか 画面に表示するテキストの高さを指定します.
タイプフェイスに表示する文字列を与えると、ピクセルで幅を返します.
タイプフェイスに表示する文字列を与えると、ピクセルで高さを返します.
画面の座標(x,y)にタイプフェイスの文字列を描画します.
例:スクリーンにテキストを表示する為にはこのように書きます
複数行の場合は、
myfont.drawString("a test\nof multiline\ntext", 300,300);
動的に発生する文字列を使用する事もできます.
例:フレーム率を表示する
フォントのロックをするかどうか設定する値です.
アンチエイリアスをするかどうか設定する値です.
フォントが完全な文字セット、または文字サブセットを含むかどうか設定する値です.
OpenFrameworksに含まれるオーディオクラスは、
簡易的な音声入出力ライブラリであるrtAudioのラッパーです. このクラスはローレベルではたらき、 I/Oを直接サウンドカードにアクセスします. オーディオクラスは、callbackインターフェイスをセットアップします. 一度オーディオイベントが呼ばれると、 (入力からデータを受け取るか、出力へデータを要請する、どちらかが起こる為) simpleAppが呼ばれます. これがcallbackです. このcallbackはグラフィックスでレートが異なり、 オーディオクラスが実行した時でも実行され、 ofSimpleAppクラスを継承した他のイベント ( mousePressed keyPressed update ) のように、ただちに処理されます. オーディオのセットアップをします.
nOutputsでアウトプットのチャンネル数を、 nInputsでインプットのチャンネル数を設定します. ofSimpleAppのポインタも渡さなければいけません. その時には、"this"を使う事ができます. 例:2つのアウトプットチャンネルを設定します.
呼び出しを簡略化する為に、サンプルレート、(待ち時間の為の)バッファ数などはデフォルトにセットされます.
より詳細なオーディオシステムの設定を許可します.
オーディオストリームを停止(ポーズ)します.
オーディオストリームを開始(ポーズ解除)します.
ストリームは自動的にofSoundStreamSetupと共に始まるので もし、ストリームを停止している場合は、単にこの関数を呼ぶだけです. オーディオストリームを終わります.
オーディオストリームを呼ぶ事のできるデバイスのリストです.
この時点で、もしデバイスを選択するインターフェイスがなくても、 (デフォルトのデバイスが使われていて) ただちに、その機能を使う事ができます ofSoundPlayerクラスは、強力なオーディオユーティリティライブラリであるfmodのラッパーです.
ofSoundPlayerはサウンドファイルのロードと、再生やプロパティの操作、制御をする事ができます. 再生中の全てのofSoundPlayerオブジェクトを停止します.
現在再生している全てのサウンドで、最高512バンドとしてnBandの
fftスペクトラムの浮動小数点ポインタ配列を返します. この関数を使いたい時は、 ofSoundSetUseSpectrum(true) としてください "fileName"で指定されるサウンドファイルを読み込みます
サウンドファイルには、フォーマットが *.wav *.aif *.mp3 *.mp2 *.ogg *.raw である事を確認してください. プログラムは、相対ファイルで探します. オプション変数'bool stream'をtrueにすれば、 読み込んだメモリの代わりにディスクからファイルをストリーミングします. 大きなファイルをプログラムから動的に読み込む場合、多くのストリーミングファイルを感知するので、 メモリを読み込む間、短時間だけフリーズを引き起こします.
相対ファイルも指定できます.
現在のサウンドを停止し、アンロードします.
サウンドを再生します.
setMultiPlay()をtrueに設定していた場合、 それぞれのplay()コマンドは、新しいチャンネルにコピーされてから再生を開始し、 現在再生しているサウンドは継続して再生されます setMultiPlay()をfalseに設定していた場合、 再生中の曲をリスタートさせます.
再生中の曲を停止させます.
再生中のサウンドをポーズまたはポーズ解除します.
ofVideoPlayerクラスはquicktimeを通してムービーファイルをロードし、
動画再生に様々なコントロールやプロパティを与えたり、 与えられたフレームのピクセルにアクセスします. 動画ファイルを閉じて、リソースの割り当てを取り消します.
動画を止めます.
もしピクセルフレームが新しかったら、trueを返します.
例:フレームが新しかったら、処理をする.
現在のフレームのピクセル配列,RGB[width*height*3]のポインタを返します.
例:座標(100,20)のRGB値を取り出します.
動画の時間を秒で返します.
動画がループするかどうかを指定します
デフォルトではループされます. これには3つのオプションがあります.
動画の再生スピードを指定します.
1=通常の速さ
2=2倍の速さ(早送り)
0=ストップ
-1=逆再生
など
テクスチャの方法をこのオブジェクトで指定します.
画面に動画を映したい時、テクスチャを使うのが一般的です. しかしメモリを保存したり、より良いパフォーマンスの為にテクスチャを使わないケースもあります. テクスチャの内部使用を抑制する為には、このように動画を読み込みます.
(x,y)座標、幅(w),高さ(h)に動画クラスのテクスチャを描画します.
(x,y)座標に動画クラスのテクスチャを描画します.
サイズは元の動画のままです.
読み込まれた動画の幅と高さです.
読み込まれた動画の再生スピード
通常の速さ=1.0
逆再生=-1.0
停止=0
動画が適切にロードできたか記述するboolean型
ofVideoGrabberクラスはライブカメラへのLowレベルの接続をする為、
コンポーネントを利用してクイックタイムにラップします
ウィンドウズでは現在、VideoInputライブラリをベースとしたdirectshowが使われています.
VideoInputライブラリは、クイックタイムを上回るパフォーマンスであり、
また、クイックタイムやWinVDigをインストールしないで良いという利点があります.
"ofConstants.h"の"#define"では、ウインドウズの為に
quicktimeかdirectshow(デフォルト)を使うかどうかを選ぶことができます。
利用可能なキャプチャデバイスのIDをコンソールに送信します.
"setDeviceID"でIDを指定して、特定の装置を使用できます.
特定のキャプチャデバイスをdeviceIDによって指定する.
"listDevices()"を使用して利用可能なキャプチャデバイスとIDを取得できます.
テクスチャの使用方法をこのオブジェクトで指定します
動画を画面上に表示する場合、
テクスチャを使うのが一般的です.
しかしメモリを保存したり、より良いパフォーマンスの為にテクスチャを使わないケースもあります.
テクスチャの内部使用を抑制する為には、このようにシーケンスを初期化します.
video grabberインターフェイスをデバッグするのに役立つ為、verbosityをセットします.
verbosityをセットし、initGrabber()を試してみてください.
デフォルトか、setDeviceIDによって指定するキャプチャデバイスを初期化します.
指定した幅や高さでのセットアップを試してください.
キャプチャの寸法が利用不可能なら、以前に利用可能だった寸法に設定されます. ピクセルを処理する前に、実際のサイズを確認するのをオススメします.
sequence grabberを閉じ、割り当てられたリソースも全て閉じます.
sequence grabberから新しいデータを得る為には、
定期的に(例えば、updateにつき一度)この関数を呼ばなければいけません
新しいデータを得られるように、カメラ映像取得コンポーネント待機させます.
現在のピクセルが一つ前のフレームから変わったら返されます.
現在のフレームのピクセル配列ポインタを返します.
データは、RGBで構成され、配列番号は [width*height*3]です.
画面で、ビデオ映像の設定を読み込みます.
もし、OpenGLの設定がフルスクリーンで、この関数が呼ばれたら
始めは、ビデオ映像ウィンドウがメインウィンドウ直下に表れるかもしれません.
指定した幅(w)と高さ(h)、位置(x,y)に、movie grabberクラスの内部のテクスチャーを描きます。
movie grabberクラスから取得できる幅、高さで指定した位置(x,y)で、
movie grabberクラスの内部のテクスチャーを描きます。 movie grabberクラスから取得できる幅、高さです.
|