このところ3DCGアプリmagicavoxelの制作の投稿が多いですが、また作ったのでアップします。プログラム(shaderという)を使って立体の形を作るということに少しずつ慣れてきて「あんなのも作れるかも」というのが楽しくなってきました。


 今回作ったのは、僕が好きな植物”ヤツデの実”の形をイメージした架空の植物です。先端の実の部分は透明のマテリアルにしてガラスとか氷のようにしました。これによって幻想的で面白くなったと思います。
 ライティングは黒背景で露出もギリギリまで抑え、氷のキラキラが効果的に出るようにしました。

 このmagicavoxelというアプリはサイコロを積んで立体を作るものなので、基本的に細かく見るとサイコロの粒々が出てしまうのですが、今回の氷の粒に見立てた部分は氷の表面なので、ギザギザがあっても違和感がなくてリアルな出来映えになった。

 作成画面はこんな感じです↓


 先端の実の部分の大きさや、実の数、中心部分の「花柄(かへい)」の太さ、後ろにあるピンクのやつのような感じに開き具合の調整、などなどをパラメーターで変えることができます。

 いつも使っている3DCGのソフトMagicaVoxelですが、サイコロを積み木のように積み上げて立体物を作るというものです。基本チクチク手で積み上げていくのですが、滑らかな有機的な曲線などは手では限界があります。その場合、簡単なプログラム(shader:シェーダーと呼ぶ)を書いて、それをソフトの中で実行することで色んな数学的な曲線を持つ立体を作ることができるのです。

 今回作ってみたのが「山がいくつか連結した連峰のようなもの」。実際に使っている動画もTwitterの方に投稿したので、それを貼ってみます。




 書いてある通り、プログラムのベース部分は@mode_visという方が公開していたものを参考にさせていただきました。

 シェーダーはglslというプログラム言語で書きます。割と短いプログラムでできるので、思ったよりも難しくはありません。記述にミスがあってもいわゆる暴走するなんてことはほとんどなく最初から動かないだけで怖くない。今回は参考にさせていただいた元のプログラムの中の「球体を作れ」という部分を「正規分布曲線の山を作れ」という式に変えたのですが、ホントに割とすんなり成功した。

 そもそも(理想上の)山の形がどのような式で表されるのか?という疑問があったのですが、知っている中で山型の曲線といえば正規分布ぐらいしか思いつきません。
そこで一応AI(ChatGPT)に聴いてみると・・・


山の形状は

  • Bagnoldのプロフィール
  • ロジスティック関数
  • ガウス分布

などの形状でモデル化されることがあります。


ということです。3つ目の「ガウス分布」というのが正規分布のことなので「大丈夫だ!」と採用しました。

 今のところ、作った画像(一番上の画像)は色味を白っぽくして山水画の雰囲気にしています。