たくあんポリポリ

勉強したことを載せていきます。最近、技術系の記事はZennに書いています。(https://zenn.dev/chittai)

Processingで書いたものをUnicessingで書き直してみた

今回はProcessingで書いたものをUnicessingで書き直してみた。基本的にProcessingで作成したものをVRとか他のプラットフォームで演出として使用できないかなと思っています。

今回つくったもの

www.youtube.com
上記の動画は、左がProcessingで描いたもので右がUnicessingで描いたものになります。

使用した環境

  • Processing 3.3.7
  • Unity 2017.3.1f1 (64-bit)

書いたコード

Processing

github.com

Unity

Processingから移すためにいろいろと頑張ったまま載せたので、きれいな状態ではないですが。
github.com

処理の内容

まずは立方体を描く。その立法体を、「経過時間を200で割った値」分、1フレームで回転させる。その立方体の中に収まるようにランダムで球を指定した数だけ描く。今回のサンプルでは100個としている。最後のはクリックした時にその球全てが蒸発していくような動きをさせました。

基本的にはParticleクラスを別で作成したのですが、このあたりが簡単には移行できなかったです。特に、Particleクラスの中にdrawメソッドを作成してCubeParticleクラスのDrawメソッドから呼び出そうとしたのですが、下記エラーが発生して結果呼び出せず。原因が不明のため、drawメソッドの中身だけDrawメソッド内に直接書くように変更しました。別クラスから呼び出し方が間違っているのかなぁ。

f:id:c_taquna:20180502092104j:plain

エラーの内容から引数と確認したのです、何がNullになっているのかわからずでGiveupしました。

変換のポイント

Processing→Unicessingでのポイント

  • PVector → Vector3 に変換
  • ArrayList の要素の呼び出しに get が不要
  • color → Color に変換。指定する引数が、0.0 - 1.0(float)に変換。

などなど、ありますが簡単なやり方はIDEに貼り付けてエラー箇所をひたすら修正するでいいと思います。今回はVisualStudioを使用しました。

感想

  • Unityに移行できたので、コライダーを着けたりしてあたり判定をつけてなにかやっても良さそう。
  • ジェネラティブアート読んで、パーリンノイズを使用してなにかできるようになったら一旦別のやりたいことやろうかな。