変人のブロマガ

最近Processingなるものを触っている

2019/09/19 19:04 投稿

  • タグ:
  • 報告
  • Processing
  • プログラミング
  • p5.js
そもそもProcessingってなんぞ?
Wikipediaさんによると…
https://ja.wikipedia.org/wiki/Processing
"電子アートとビジュアルデザインのためのプログラミング言語であり、統合開発環境である。
アーティストによるコンテンツ制作作業のために、詳細な設定を行う関数を排除している。
視覚的なフィードバックが即座に得られるため、初心者がプログラミングを学習するのに適しており、
電子スケッチブックの基盤としても利用できる"
…だ、そうだ。

公式サイトはこっち。
https://processing.org/

初見で「そういうプログラミング言語か?」と思ってたら、
APIの提供をしている統合開発環境なんだとか。
基本はJavaなんだけど、PythonやJavaScript(p5.js)に
モード切り替えして実装もできる。
とはいえp5.jsを触った感じ、APIに完全な互換性が
あるわけじゃなさそうだから、そこらへんは注意。

互換性で言うなら、Javaで実装したものを
JavaScriptで動かせるProcessing.jsってのもある模様。
ただし、2018年12月で更新が停止して使用非推奨になったとか。
OpenProcessingという、プログラム投稿サイトでも、
Processing.jsを廃止して完全にp5.jsに移行するらしい。

Processingjs Deprecation Notice | OpenProcessing FAQ
https://intercom.help/openprocessing/en/articles/3250763-processingjs-deprecation-notice

あと調べたところ、ProcessingはAndroidでも動かせるようにできるし、
もっと言えばマイコンでも動かせるらしい。
Arduinoが筆頭で、Raspberry Piでもいけるとか。
…Raspberry Pi 4 model Bの技術基準適合証明まだですか(正座待機なう


で。
自分が最近触ってるのはどっちかってとp5.js。
ExtendScript(AEスクリプト)みたいな、
特殊環境でのみ動くJavaScriptのタイプかと思いきや、
単純にライブラリをhtmlに読み込んでcanvasを更新してるだけの模様。
そういう意味じゃ、前にお世話になったthree.jsっぽくもある。
つまり普通にブラウザで再生できる。つおい。

問題はここから。冒頭にも書いた
「詳細な設定を行う関数を排除している」環境ってなんやねん、と。
まあいろいろあるんだけども、個人的に感じるところは…
MVC(Model View Controller)の概念がない、かな。

実装するのは基本setup()での初期化処理と
draw()での毎フレームの描画内容指定だけ、なんだけども、
「Spriteクラスを継承して、更新処理の後に描画処理を…」
「newしたオブジェクトのxの値を更新して移動させて…」
みたいな概念が全くない。
あるのはただ、図形の描画処理だけ、みたいな。

この座標に、この図形を描く。おわり。

一応「こいつの現在の状態はこれ」みたいな情報を持った
モデルに該当するオブジェクトを自作することはできるけど、
基本それをサポートしてない。
当たり判定?なにそれおいしいの?状態。
一般的なゲーム制作なんて以ての外。不向きオブ不向き。
キャラの存在しない抽象的なゲームなら作れなくもないかも。

さらに、描画される画面はリセットされない。
draw()の中で画面をリセットするなり、塗りつぶしなおさないと、
まるでWindowsの昔のスクリーンセーバーの如く、残像が残りまくる。
ある意味原始的。

メモリの管理はしなくてよくて、簡単な図形は描画できる。
さらに、キーボードやマウスの入力は(取れるけど)取る必要性すらなくて、
本当に「アーティストによるコンテンツ制作作業のため」という名目の下、
バグなんて存在しない無法地帯を展開できる感じ。
イイ感じの出力が得られれば、それが正義。

「亀を動かして軌跡で絵を描く」という教育向け言語のLOGOを
リッチにした感じの方がニュアンス的には正しいかもしれない。
画面を更新し続けてアニメーションさせる必要もなく、
出来上がった静止画像を作品として扱ってる人も多い模様。
というかそういう人の方がメインな模様。
ほげぇ~…異世界じゃぁ~…


で。
自分としては、2020年でFlashが終了するのに合わせて、
ActionScript3.0…AS3もサヨウナラなわけで。
研究室で使ってたメイン言語であるAS3がサヨウナラするにあたり
アレぐらいのノリで実装&公開できる
手軽な環境がないのは悲しいところではあって。

Processingはそういう意味では手軽なんだけども、
手軽すぎて心配になるレベルの代物ではある。
そもそもアニメーションがメインじゃないしなぁ…

昔、FlexBuilder3で「ブログパーツっぽいもの」っつって
Flashで1日1個何かしら作ってた時期があるんだけども…
FlexBuilderもブログパーツも今となっては
「なんだソレは」と言われそうな用語だよなぁ…?ww

今はその当時のノリに近しい感じで、
1日1個Processingで何か作るごっこをしてる。
…いや、単純に作るだけではなく、文字量はツイートできる範囲縛りで。

Processingを知ったきっかけがそもそもソレだったりする。
「つぶやきProcessing」というタグをつけて、Processingで動くコードをペタる。
ちなみに現在のツイッターの仕様上、280文字までつぶやける。
タグをつけるから実質261文字…かな。その範囲で組む。

この縛りが1日1個組む分には丁度いい分量なもんで。
作り込みもせず、マジで落書きするが如く組んでる。
たまーにちょっと真面目に組んでたりするけども。

すでに1ヶ月ぐらいは作ってて、ブツはGitHubにも上げてる。
https://github.com/SourceOf0-HTML/processing-p5.js
冒頭でちょっと取り上げたOpenProcessingってところにも投稿してみたり。
https://www.openprocessing.org/user/187469/
まあ、進捗そんな感じ。

WebSocketの使い方勉強して合体させたら、
当時研究室で作ってたハードウエア+Flashなやーつを作れて、
それはそれで面白いことできるかもなぁ。


ん。報告以上。

コメント

コメントはまだありません
コメントを書き込むにはログインしてください。

いまブロマガで人気の記事