Beyond Interaction[改訂第3版]

書籍情報

発売日 : 2020年10月14日

著者/編集 : 田所淳

出版社 : ビー・エヌ・エヌ新社

発行形態 : 単行本

書籍説明

内容紹介

7年ぶりの大改訂、クリエイティブ・コーディングの基本書。インタラクションデザイン/メディアアート制作のためのオープンソースのツールキット、openFrameworksの解説書。かんたんな図形からアニメーション、サウンド、OpenCV、3D表現、シェーディング(陰影)など、プログラミングの初歩から応用までを丁寧に解説。

目次

はじめに
作業環境について/サンプルコードについて/ご注意
Chapter 1 openFrameworks入門
 1-1 openFrameworkについて
  1-1-1 openFrameworksって何?
  1-1-2 openFrameworks開発の歴史
  1-1-3 「糊 glue」としてのopenFrameworks
  1-1-4 openFrameworksの特徴—既存のインタラクションを超えて
 1-2 作例とコミュニティ
  1-2-1 openFrameworksを使用した作品例
  1-2-2 openFrameworks情報の入手
Chapter 2 openFrameworksプログラミング初級編
 2-1 プログラムの入手とインストール
  2-1-1 openFrameworks開発のための環境設定
  2-1-2 macOSの場合—Xcodeをインストールする
  2-1-3 Windowsの場合—Visual Studioをインストールする
  2-1-4 openFrameworksのダウンロード
  2-1-5 openFrameworksのファイル構成
  2-1-6 openFrameworksのフォルダ構造
 2-2 サンプルプログラムの起動
  2-2-1 サンプルプログラムを起動してみる
 2-3 openFrameworksプログラムを始めよう
  2-3-1 このセクションの流れ
 2-4 ProjectGeneratorで新規プロジェクトを作成
  2-4-1 ProjectGeneratorとは
  2-4-2 新規プロジェクトを作成する
  2-4-3 重要な3つのファイル
  2-4-4 関数—処理をまとめる
 2-5 図形を描く
  2-5-1 座標系について
  2-5-2 直線を描く—ofDrawLine
  2-5-3 四角形を描く—ofDrawRectangle
  2-5-4 円、楕円を描く—ofDrawCircle、ofDrawEllipse
  2-5-5 三角形を描く—ofDrawTriangle
 2-6 色の設定
  2-6-1 コンピュータ上での色の表現
  2-6-2 背景色と描画色
  2-6-3 色を塗り分ける
  2-6-4 透明度の付加
 2-7 数値の記憶と計算
  2-7-1 数値の計算
  2-7-2 変数について
  2-7-3 変数を使って図形を描く
  2-7-4 画面の幅と高さを取得
 2-8 たくさんの図形を一気に描く
  2-8-1 繰り返し—for文
  2-8-2 規則的に配置する—カウンタ変数を利用した演算
  2-8-3 繰り返しを繰り返す
 2-9 たくさんの値を記憶する―配列
  2-9-1 配列の概念
  2-9-2 繰り返しと配列の組み合せ
  2-9-3 乱数の使用
  2-9-4 乱数で位置を指定する
  2-9-5 乱数で色を指定する
 2-10 移動する—アニメーション
  2-10-1 図形を移動する
  2-10-2 アニメーションのプログラムの構造
  2-10-3 物体を直線運動させる
 2-11 条件分岐—「もし○○なら××せよ」
  2-11-1 もし画面からはみ出たら反対から出現させよ
  2-11-2 条件分岐の応用編—壁でバウンドさせる
 2-12 たくさんの図形を移動する
  2-12-1 たくさんの円を同時に動かす
  2-12-2 配列を利用してたくさんの図形をまとめてコントロールする
 2-13 図形に触れる—インタラクション
  2-13-1 インタラクションとは
  2-13-2 マウスの位置の検知
  2-13-3 マウスによるインタラクション
  2-13-4 インタラクションとアニメーションを組み合わせる
 2-14 より高度な表現へ
  2-14-1 表現に現実味を持たせる
  2-14-2 パーティクル—重力と摩擦力を導入
  2-14-3 動きの軌跡をフェード

Chapter 3 openFrameworksプログラミング中級編
 3-1 プロジェクトの構造をより深く理解する
  3-1-1 openFrameworksのプロジェクト構造について
  3-1-2 openFrameworksとC++の関係
  3-1-3 オブジェクト指向プログラミングとは
  3-1-4 オブジェクト = 属性 + 動
  3-1-5 クラス = オブジェクトの設計図
  3-1-6 C++ でのクラスの作成
  3-1-7 ファイルを分割して管理する
  3-1-8 UMLクラス図
  3-1-9 クラスとしてofAppを捉え直す
  3-1-10 ofAppはofBaseAppの子供
  3-1-11 openFrameworksプロジェクト構造
 3-2 いろいろなメディアを扱う
  3-2-1 openFrameworksで扱うことのできるメディア
  3-2-2 音を扱う—音とは何か
  3-2-3 コンピュータで音を扱うには
  3-2-4 波形の生成—ofSoundStream
  3-2-5 サウンドの入力—ofSoundStream
  3-2-6 サウンドファイルの再生—ofSoundPlayer
  3-2-7 画像ファイルを扱う—ofImage
  3-2-8 フォントデータを扱う—ofTrueTypeFont
  3-2-9 動画の再生—ofVideoPlayer
  3-2-10 動画のキャプチャ—ofVideoGrabber
 3-3 OOOF:オブジェクト指向oFプログラミング
  3-3-1 openFrameworksでオブジェクト指向プログラミング
  3-3-2 新規クラスの生成
  3-3-3 画面の中心に円を表示する—メソッドの追加①
  3-3-4 円の大きさと場所の初期値を指定する—コントラスタの作成
  3-3-5 円の大きさと場所の情報を取得、設定する—セッターとゲッター
  3-3-6 円をアニメーションする—メソッドの追加②
  3-3-7 円が拡大縮小する動きを加える—メソッドの追加③
  3-3-8 画面をクリックすると、どんどん円が増殖する—複数のクラスの生成①
  3-3-9 円をクリックすると、細かな円に分裂する—複数のクラスの生成②
 3-4 アドオンの利用
  3-4-1 アドオンとは
  3-4-2 アドオンの使用①—ofxBox2dを使う
  3-4-3 アドオンの使用②—ofxOpenCvを使用する
  3-4-4 ofxBox2DとofxOpenCvを組み合せる
 3-5 楽器を作る
  3-5-1 ここまでの内容を統合する
  3-5-2 楽器の構想
  3-5-3 楽器の設計
  3-5-4 プロジェクトの設計
  3-5-5 実装
  3-5-6 プロジェクト完成
Chapter 4 openFrameworksプログラミング上級編
 4-1 3Dグラフィクスプログラミングの基本
  4-1-1 3Dで図形を描くということ
  4-1-2 3D基本図形
  4-1-3 視点 (カメラ) の設定
  4-1-4 光と影 (ライト、シェーディング)
  4-1-5 光と影に色をつける
  4-1-6 3D基本図形
 4-2 より自由な3D図形を描く—ポリゴンメッシュの操作
  4-2-1 より自由に3D図形を描く—ポリゴンメッシュについて
  4-2-2 3D基本図形からメッシュを生成する
  4-2-3 メッシュの頂点の座標をランダムに移動する
  4-2-4 三角関数で波打つ立体を描く
  4-2-5 ノイズによる不規則な波を描く
  4-2-6 球体をノイズで変形する
  4-2-7 ノイズで変形した球の面をレンダリング
  4-2-8 カメラからの映像をテクスチャーに
 4-3 GLSL (シェーダー) を使う—ofShader
  4-3-1 シェーダーとは
  4-3-2 レンダリングパイプラインとシェーダー
  4-3-3 GLSLのバージョン
  4-3-4 GLSLをopenFrameworksで表示する
Chapter 5 openFrameworksの現状と未来
 5-1 openFrameworksは終わったのか?
 5-2 クリエイティブ・コーディング環境の発展と進化
  5-2-1 ビジュアルプログラミング言語—Max、Pure Data、vvvv、TouchDesigner
  5-2-2 ゲームエンジンの活用—Unreal Engine、Unity
  5-2-3 もっとフィジカルにリアルタイムに—ライブコーディング
 5-3 クリエイティブ・コーディングの歴史の継承
  5-3-1 コンピュータアート黎明期のパイオニア達
  5-3-2 Muriel Cooper—Visible Language Workshop (1974)
  5-3-3 Jhon Maeda—MIT Aesthetics + Computation Group (1996)
  5-3-4 Casey Reas、Ben Fry - Processing (2001)
  5-3-5 Golan Levin, Zach Lieberman, Theo Watson—openFrameworks (2005)
  5-3-6 クリエイティブ・コーディングの歴史の中のopenFrameworks
 5-4 「ツール」ではなく「マテリアル」としてのコンピューティング
 5-5 オープンなフレームワークであること
 5-6 openFrameworksを超えて
Index

著者情報

田所, 淳
田所淳
田所 淳( たどころ・あつし)|1972年、千葉県生まれ。前橋工科大学工学部総合デザイン工学科准教授。東京藝術大学芸術情報センター非常勤講師。慶應義塾大学環境情報学部非常勤講師。アルゴリズムを用いた音響合成による音楽作品の創作、ラップトップコンピュータを用いた音と映像による即興演奏などを行う。大学では、openFrameworks、Processing、Arduino、Pure Data、SupreColliderといった「クリエイティブ・コーディング」についての講義を行う。講義資料はWebサイトhttp://yoppa.orgで公開、多くの学生やクリエイターに活用されている。