#topicpath ** プロセッシング (Processing) [#h2098573] Processing を使ってプログラミングを楽しみたいみたいと思います。 以下、Processing を使っていく上での記録を記していきます。 同じように Processing を使っていこうとする人に参考になるように。 ** Processing とは [#eea5549a] Processing とは、MITメディアラボに起源を持つオープンソースプロジェクト(つまり、その筋ではとっても有名なところが始めた、~ 無料でみんなが利用できるソフトウエアの開発事業)であり、そのプログラミング言語であり、また、そのプログラミングを行うため~ の開発環境(開発用のソフトウエア)でもあります。プロジェクトだったり、言語だったり、ソフトウエアだったりするので、~ 何を指しているのか、時々気をつけて下さい。~ ~ *** 言語としての Processing [#v1139d7b] この中で、言語としての Processing の位置づけは、プログラミングを行おうとする場合には、もっとも関心があると思います。次のような特徴があります。~ -- Javaに近い言語 -- 「オブジェクト指向」と呼ばれる新しい考え方に基づいた言語 -- Java よりもいろいろな意味で制約が多い(あるいは簡単化されている) -- 画像や音声、その他のデバイスなどを扱いやすいように様々な関数が用意されている~ ~ *** Processing でプログラミングする時のちょっとしたこと [#n855e2ab] -- 文法 --- クラス内の静的変数は利用できない~ cf. クラス内の静的変数や静的メソッドは通常禁じられている。(cf.[[Wikipedia Processing>https://ja.wikipedia.org/wiki/Processing]]) --- double でなく、float を用いるべき~ Processing の関数は float を使うように設計されている。(cf. [[Processing – doubleは不必要>http://www.sonasphere.com/blog/?p=495]])~ ~ *** Arduinoとの関係 [#a9e4bd0f] Processing は[[Arduino>Arduino]]と関係があります。マイコン(マイクロコンピュータ)制御に関連した Processing を基にしたプロジェクトに Wiring があります。~ Arduino は、Wiring から派生したプロジェクトです。 *** Processing を使い始める時に参考になる資料 [#f54b37e5] -- 書籍 --- &amazon(4873115159,image); &amazon(4873115159); --- &amazon(4873114535,image); &amazon(4873114535);~ ~ -- ウェブページ --- [[建築発明工作ゼミ2008>http://kousaku-kousaku.blogspot.com/2008/07/processing_10.html]] --- [[基礎最速入門>http://www.catch.jp/wiki/index.php?Processing%B4%F0%C1%C3%BA%C7%C2%AE%C6%FE%CC%E7]] ** Processing のインストール [#i3d9b0a3] *** 本体のインストール [#s3a22eea] + ダウンロード~ [[Processing のダウンロードページ>https://processing.org/download/?processing]]から zip で固められたファイルをダウンロードする。~ 2015-08-31 (月) 13:12:01 時点で 3.0 beta 5 が最新である。~ 2015-08-01 (土) 17:09:01 時点で、2.2.1 が最新である。~ ~ + 展開~ 適当な場所に展開する。Processing はインストールせずに使えるので、USBメモリなどにもインストールでき、ポータブルな環境を実現できる。~ しかし、注意が必要で、&color(red){日本語名のフォルダの下に入れるとうまく動かない};。インストール先は、英数文字で構成されたフォルダー以下にする。~ ~ + テスト起動~ 展開したら、中にあるアプリ Processing を起動する。~ ~ + 各種設定(やらなくてもよい) ++ スケッチの場所指定~ Processing を立ち上げて、File > Preference > Sketchbook location (ファイル > 設定 > スケッチブックの場所 )を見てみよう。~ すると、標準ではスケッチ(Processing のプログラムをこう呼ぶ) を保存する場所がパソコン内~になっている!~ 後述のライブラリの保管とも関係するので適宜変える。例えば、USBメモリに Processing を導入したなら、USB メモリ内の適当なフォルダにする。~ ~ ++ 日本語の表示~ +++ プログラミング環境での表示のさせ方~ プログラム中に書き込まれた日本語は標準では表示できない。これは、標準で日本語フォントを使っていないからである。日本語を~ プログラムに書き込んだり、また、それを表示したりするためには、 File > Preferences > Editor and Console font +++ 描画する時の表示のさせ方~ ちょっと面倒。 cf. http://hiroyukitsuda.com/archives/1365 ~ ~ + 再起動~ 起動しなおして動くことをチェックする。~ ~ *** ライブラリのインストール [#g334830d] + ライブラリとは~ Processing では、様々なライブラリを追加できる。そうすることによってプログラミングの幅が広がる。ライブラリの一覧は、~ sketch > Import Library > Add Library (スケッチ > ライブラリのインポート > ライブラリの追加 ) で見ることができる。~ ~ + メニューを使ったライブラリの追加~ 先ほどの手順でライブラリを選択して導入することができる。 ++ video ライブラリ, sound ライブラリ~ Processing 3 からは video ライブラリと sound ライブラリが&color(red){標準添付ではなくなった};。自分で導入する必要がある。~ ~ ++ OpenCV ライブラリ~ OpenCV はカメラで撮影した映像を扱うためのライブラリである。(CV は Computer Vison だったと思う。)~ Processing 2 では追加する必要がある。Processing 3 では、あらかじめ導入されている。~ ~ + 手動でのライブラリの追加~ メニューに掲載されていないライブラリは、別の方法でインストールする。前述の「スケッチの場所」の中にある libraries 以下に~ 導入するライブラリのフォルダを放り込んでおく。 ++ NyARToolkit~ [[後述の記事>#b4acd078]]参照のこと。Processig 3 で利用するには、video ライブラリが必要になる。しかし、それを入れても表示が変である。~ ~ *** プログラミングのための資料 [#l2172fe4] - リファレンス マニュアル~ -- [[Processing のホームページ上にあるリファレンス マニュアル>https://processing.org/reference/]] ~ ~ ** Processing と AR [#yd40d261] *** ARとは [#xe5f7329] - AR( Augmented Reality )とは~ VR( Virtual Reality : 仮想現実 )が現実の世界に対応したものを仮想的な空間に作り出すことであるのに対して、~ AR( Augmented Reality : 拡張現実 )は、仮想的な対称を現実の世界に対応させて表示するような技術です。~ 例えば、AR 技術を用いて次のような動画を作ることができます。この動画の画面上のボールは実在しません。~ クリップボードで支えている紙には、マーカーが印刷されていて、マーカーを読み取ったパソコンが、マーカー~ の形状から各種座標を計算し、その座標を用いることで現実世界に合わせた映像を重ね合わせることができます。 #u2b(VLyYe9dqya0,large,left) #clear ~ Processing で ARToolkit 互換である NyARToolkit を使うことができます。~ ~ *** AR の考え方 [#wd7024c9] - 座標系~ cf. http://im-lab.net/artoolkit-overview/ -- マーカー座標系: マーカーに固定された座標系 -- 画像座標系 : 画面上の座標系 -- カメラ座標系 : 物理空間の座標系 ~ ~ *** AR マーカーの作り方 [#bea9238e] マーカーは自由度高く作ることができる。しかし、既存の物をつかうこともできる。 + 既存のマーカー -- [[Utah 大学>http://www.cs.utah.edu/gdc/projects/augmentedreality/download.html]] + マーカーの作成方法 -- 参考 URL~ --- The Sixwish project [[ARマーカーの基本>http://sixwish.jp/AR/Marker/section01/]]~ --- タロタローグさん [[ARToolKit Marker Generator Online>http://flash.tarotaro.org/ar/MarkerGeneratorOnline.html]]~ ただし、画像を読み込ませる場合には、300ピクセル程度以下でないと読んでくれない。~ ~ *** Processing で AR(NyARToolkit for Processing) [#b4acd078] + NyARToolkit のインストール~ ++ ダウンロード~ github からダウンロードする。[[ここ>https://github.com/nyatla/NyARToolkit-for-Processing]]は、ソースだと思うので、[[releases(リリース)>https://github.com/nyatla/NyARToolkit-for-Processing/releases]]をクリックして、~ 実際にインストールするもの (nyar4psgで始まる名前の zip ファイル)をダウンロードする。~ 2015-08-01 (土) 17:19:22 時点で、2.1.0 が最新バージョンである。~ ~ ++ 展開・インストール~ 展開して、nyar4psg というフォルダがあることを確認する。これを、Sketch location の~ 中にある(無ければ作って)libraries というフォルダの中に入れる。これでインストールも~ 完了する。~ ~ ++ テスト~ Processing を立ち上げ、File > Examples で、Contributed libraries が表示され、その中に~ nyar4psg があることを確認する。適当なサンプルプログラムを開いて実行してみる。~ ~ + 資料 ++ API(Application Programing Intereface)の説明( つまり、プログラムするのに必要な情報 )~ --- 作者提供情報~ ・ [[Java 版リファレンスマニュアル>http://nyatla.jp/nyartoolkit/wp/?page_id=18]]~ ・ [[リファレンスマニュアル>http://nyatla.jp/nyartoolkit/doc/nyar4psg/api/1.1.6/index.html?jp/nyatla/nyar4psg/package-summary.html]]~ ~ ++ 参考になりそうなサイト --- [[工学ナビ>http://kougaku-navi.net/ARToolKit/]] --- [[画像処理速報(改二)>http://opencv.blog.jp/nyartoolkit/box_display]] --- [[Lazuli(マーカー作成方法)>http://lazuli-web.com/lzl/?p=24]] --- [[Processing による画像処理のために>http://ir.acc.senshu-u.ac.jp/index.php?action=pages_view_main&active_action=repository_action_common_download&item_id=8394&item_no=1&attribute_id=15&file_no=2&page_id=13&block_id=52]](PDF)~ --- [[パターンファイルの作成方法・利用方法>http://nakayasu.com/lecture/processing-%E6%8B%A1%E5%BC%B5%E7%8F%BE%E5%AE%9F%E6%84%9F/5292]] ~ *** プログラミング [#w5109b20] + [[惑星上での物体の落下>./AR_Planet01]] + [[速度・加速度のベクトル表示>./AR_Velocity01]] ** Kinect と Processing [#vc067b39] *** SImpleOpenNI [#xd53fcea] ** Kinect と Processing [#qaef4496] *** SImpleOpenNI [#qe9e06d6] - 概要 -- インストール方法 --- URL~ ・[[工学ナビ>http://kougaku-navi.net/backyard/archive/KinectInstallManual_130820.pdf]](pdf)~ ・[[Google Code>https://code.google.com/p/simple-openni/]] -- マニュアル・利用法 --- [[クラス階層図>https://simple-openni.googlecode.com/svn-history/r411/trunk/SimpleOpenNI/dist/all/SimpleOpenNI/documentation/SimpleOpenNI/package-tree.html]]