互动影像设计与processing作业:Roche
一、作业展示
由于视频上传有限制所以就不上传了,搞成动图展示了
二、寓意
“天上的云,聚了又散,人生离合,亦复如斯。”
一开始的白色小球围着轨道环绕中心的橙色星球,当周围声音越大,白色小球靠近得越快,会越快地将橙色星球环绕其中,寓意着个人世界中的热闹盛况。随着时间的流逝,当白色小球散开时,声音越大,轨道扩散的速度越快,但到了一定距离后,轨道长度的变化将不再受声音的影响,一番热闹过后,就会逐渐安静下来,小球和轨道的扩散开来仿若人群散开,被别处的热闹所吸引离去,只有自己的声音回响。鼠标一点,一切又会重新开始,人生就是这样,自己参与的无数热闹或许会再来,或许不再,但无论怎样的变换,自己都应当保持一颗炽热的心去倾听和活动。
三、素材与交互点
1. 所用素材
背景音乐
由小瀬村晶的 Love Theme 纯音乐和麦克风周围收音的声音组成。纯音乐营造一种安静寂寥的氛围,显得声音比较空灵,可以使人平静下来倾听自己的声音和自己周围的声音,增加交互的沉浸感。
2. 交互点
声音、键盘、鼠标交互
- 在一定范围内,外界传入声音的大小影响轨道长度的变化。
- 点击鼠标,轨道又会回到最初的地点。
- 按下键盘上的“a”或"A"可保存图片,如同用照片记录下人生的重要瞬间。
- 戴上耳机时,可以倾听到与背景音乐融合和自身周围环境白噪声。
四、创作与源码
1.背景流星和星星的制作
参考这位博主的原文https://blog.youkuaiyun.com/QianQing_mio/article/details/103733284
大面积的静态星星和动态流星展现浩瀚的宇宙和衬托个人星球的炽热和寂寥。
//背景流星和星星
class Stars {
int star_num;//星星的数量
int meteor_num;//流星的数量
PVector[] stars_p, meteor_p, velocity;//星星和流星的位置,流星的速度
PVector acceleration;
float rms;
Stars(int num, int meteor_num) {
this.star_num = num;
this.meteor_num = meteor_num;
stars_p = new PVector[num];
meteor_p =new PVector[meteor_num];
velocity = new PVector[meteor_num];
rms = this.rms;
//星星位置初始化
float x1 = 0;
float y1 = 0;
for (int i=0; i<star_num; i++) {
float x= map(noise(x1), 0, 1, 0, width);
float y =map(noise(y1), 0, 1, 0, height);
stars_p[i] = new PVector(x, y);
y1+=30;
x1+=0.5;
}
//流星初始化
for (int i=0; i<meteor_num; i++) {
//初始化流星的位置
meteor_p[i] = new PVector(random(width), random(height));
//初始化流星的速度
float a = int(random(1, 2));
float b= int(random(1, 2));
velocity[i] = new PVector(rms, rms);
}
}
void display() {
//画星星
for (int i=0; i<star_num; i++) {
if (i%30==0) {
//大一点点的星星
stroke(#edccf7);
fill(#edccf7);
ellipse(stars_p[i].x, stars_p[i].y, 2, 2);
} else {