目次
Python基礎
Pythonとは
Pythonはシンプルで読みやすく,覚えやすいプログラミング言語です.オープンソースで,手間のかかるコンパイルがない手軽さから,プログラミング初学者の教育用にも多く用いられています.
また,プロフェッショナルからも愛用され,ビッグデータ,機械学習などのデータサイエンス分野でも主要な言語として使われおり,豊富なライブラリが用意されています.
「プログラミング言語ランキング」で検索すると,その人気の度合いが見て取れると思います.
TouchDesignerではあらゆる場面でPythonスクリプトを書いて実行することができ(すでに少し書いてしまっていますが),必要な箇所でうまく使用していくことでテキストベースのほうが得意な処理はPythonで行なうというような使い分けをしていくと良いでしょう.
Text_DATで書いてみる
TouchDesignerでPythonスクリプトを書く最も原理的な方法は,Text DAT内に書く方法です.
その際Processingで出ていたコンソールウィンドウに当たるものを出すには,Textport and DATSというウィンドウを出します.
Textportにはprint関数によって文字列が出力されたり,そのままPythonのコードも書けます.また,エラーが出たときにもエラーの内容を表示します.
常にどこかに表示しておくようにすると良いでしょう.
Text DATに書いたPythonスクリプトを実行する方法は,Text DAT上で右クリック>Run Scriptか,ctrl-r or Cmd-rで実行してください.
他のscriptから実行する場合は
op('オペレータ名').run()
とすることで実行できます.
run()には引数も渡せます,今回は割愛します.
PythonとProcessingの比較
PythonとProcessingでは型の宣言の仕方から関数の書き方やクラスの書き方,インデントなどあらゆるところが似てはいますが,異なるので注意が必要です.
型
Processing:
int num; //整数型を宣言
num = 10; //10を代入
print(num); //numをコンソールに出力
Python:
num = 10
print(num) //numをコンソールに出力
Pythonは「動的型付き言語」に分類される言語で,変数の型が状況に応じて動的に決定されます.
つまり,Processingで宣言していた型を明示的に指定する必要がありません.
文末とインデント
Pythonの文末にはセミコロンが不要です.
条件分岐
Processing if文:
int num = 10;
int thre = 5;
if (num >= thre) {
print("numは" + str(thre) + "以上です");
}
else {
print("numは" + str(thre) + "未満です");
}
Python if文:
num = 10
thre = 5
if num >= thre:
print('numは' + str(thre) + '以上です')
else:
print('numは' + str(thre) + '未満です')
条件分岐の条件式にカッコは不要です.
また,条件式の後にはコロンを書きます.
次の文はタブによる空白があります.これは4文字のスペースでも代用できます.
TouchDesignerでは関数などがタブで作られているので,自分でインデントするときはタブキーで対応しましょう.
(ただ,業界全体としては業界全体としては,スペースで統一することが推奨されているようです.)
繰り返し
Processing forループ:
int num = 10;
for (int i = 0; i < num; i++) {
print(i);
}
Python forループ:
num = 10
for i in range(num):
print(i)
in range(数)によって繰り返し回数を指定できます.
pythonのforループには他にも色々なループの回し方があり,用途で使い分けられて便利です.
Script系オペレータ
Script CHOP, Script SOPなどScriptを仕込むことのできるオペレータがあります.
課題
授業内課題
図のようにairports.csvからデータビジュアライゼーションを球面上にマッピングしなさい
要件
- Script CHOPを挟むことで,x,yのデータからx,y,zの球面上データにすること
- ファイル名を学籍番号+名前(ローマ字).toe として添付して提出(例: 11111111SeiyaAoki.toe)
- csvファイルとプロジェクトファイルを同一フォルダに入れて,Zip化して添付すること
締切: 2020年7月24日15:50
提出先: Google Classroom
来週までの課題
最終作品に向けたアップデート版を提出しなさい.
要件
- ファイル名を学籍番号+名前(ローマ字).toe として添付して提出(例: 11111111SeiyaAoki.toe)
- 関連ファイルがある場合は,同一フォルダに格納後ZIP化して提出すること
締切: 2020年7月23日23:59
提出先: Google Classroom