作品解説
魔法使いが魔法の薬を調合しているような、 そんな表現を模索して作ってみました。
文字数超過で、つぶやきProcessing できなかったもの。
— Koji Saito (@KojiSaito) March 15, 2020
魔法使いが薬を調合しているようなシーンを作ろうとしたんだけど、あっという間に文字数が増えてしまう。難しい。具象的なものを作ろうとするのは結構大変ですね。#Processing #creativecoding #generativeart pic.twitter.com/TRDf3XH2j4
フラスコの底から何か湧き上がってくるような 表現となってますが、実は、各パーティクルの位置制御は行っていません。 詳細は以下のセクションで説明します。
ソースコードと解説
def setup():size(500,500);smooth()
def draw():
clear()
blendMode(REPLACE)
stroke(150)
noFill()
x=250;y=250
R=400
circle(x,y,R)
randomSeed(0)
blendMode(SCREEN)
f=frameCount*.005
for i in range(4000):
u=noise(i+f)*R-R/2
v=noise(i*.1+f*5)*R*3-R/2
r=min(max(R/2-mag(abs(u),abs(v)),0),random(15)+1)
stroke(80,120,255,100)
fill(50,120,255,100)
circle(x+u,y+v,r)
上でも触れた通り、 フラスコを模した円とパーティクルとは インタラクションしていません。
接触判定などは特にせず、 大きな円を飛び出すようなパーティクルの半径は 0 となり、描画されないだけです。
この調整は r に値を代入する式によって実現されており、 ここでは、大きな円からはみ出さないようにも半径の調整が行われています。
大きな円から飛び出したパーティクルはただ描かれないだけですが、 それでもパーティクルの数が多いため、 平均値として、描かれるパーティクルが多いため、 特に違和感などは感じられないかと思います。