1DS05175M 安東遼一 1DS05213M 渡邉光寿 指導教員: 高木先生 人工生命アルゴリズムを用いたユーザ視点の造形 1DS05175M 安東遼一 1DS05213M 渡邉光寿 指導教員: 高木先生
現時点での目標達成度 オリジナル アルゴリズム 対象決め 基礎 実装 実装
セルラーオートマトン 局所的・・・単純なルール 全体的・・・我々が予想しないような複雑な動き 例)ライフゲーム この考え方を用いてオリジナルアルゴリズム「遊牧民ゲーム」を作成 入力画像の隣接画素値の差を栄養とし, 遊牧民が体力に応じて入力画像上を移動
遊牧民シミュレーション 1つの遊牧民が持つパラメータは3つ 1つの遊牧民が行う行動は2パターン 場のパラメータ(実験では入力画像の画素値) 体力 位置情報 DNA(行動パターン) 1つの遊牧民が行う行動は2パターン 移動 交差 場のパラメータ(実験では入力画像の画素値) 栄養の豊富さ
遊牧民・・・移動 自分の位置と周辺の情報を処理して 次の移動先を決める 時間とともに体力は減少するが、 うまく移動すると体力は回復する
遊牧民・・・交差 2つの遊牧民が出会うと交差を行い 次世代遊牧民が誕生 次世代遊牧民は親のDNA情報 (行動パターン)を受け継ぐ
遊牧民・・・交差 DNA情報は次の移動先を決める 関数(行動パターン) 位置情報 移動関数(DNA) 移動先
遊牧民・・・交差 親 親 D A F G C B C A B D H F E 突然変異 D A B H C 子
シミュレーション 以上の遊牧民ゲームを入力画像に適用し シミュレーション結果を観察
遊牧民・・・ルール 「栄養の豊かさ」の定義 = 移動元画素と移動先画素の輝度値の差 IF 単位時間が経過 THEN 体力が消耗 「栄養の豊かさ」の定義 = 移動元画素と移動先画素の輝度値の差 IF 単位時間が経過 THEN 体力が消耗 IF 画素間移動 THEN 栄養が減ることはない つまり,移動すると寿命が延びる可能性大
遊牧民・・・ルール 輝度の差が高い間の移動はより多くの体力が回復する 輝度の差が低い間の移動はあまり体力が回復しない
遊牧民・・・ルール 画素(輝度値a)から画素(輝度値b)へ移動すると 移動元画素の輝度値=(a+b)/2 移動の繰り返し → 栄養の枯渇
遊牧民・・・予想 移動の際に豊かな資源(輝度値)を見つけられるDNAを偶然的に持ったものは、必然的に長生きする すると、より長生きできる子孫が誕生する確率も高くなる 長い寿命を持ったものにフィールド上を遊牧してもらいたい
遊牧民・・・観察結果 たくさんの遊牧民が集落のようなものを作って行動する この集落はあるとき突然に拡散するような動きを見せ、のちに再び収束するといった動きを見せる 一定の方向に動き続ける遊牧民が現れる
更に造形要素を取り入れた アルゴリズム
↓ コンセプト(案経緯) ユーザーが自由な形を作り、動かせるようにする。 (自由に造形、思った通りの形を作る) それらを自由に組み合わせて、自由に造形を発展させてゆく
テクノロジー 影響を強く受けたテクノロジー sodaplay Crayon physics http://sodaplay.com/ http://www.kloonigames.com/crayon/
Soda constructor 各質点が、バネの物理モデルで繋がれている。 質点にはある一定の動きが与えられている ユーザーは頂点をつまんで動かしたり、物理現象を反映したゴムのような動きを楽しむことができる http://sodaplay.com/
Crayon physics 画面をドラッグすると、クレヨンの書き味を持つストロークが描かれる。 書き終えた瞬間、描かれた形は物体となり、重力によって落下し衝突する。 ゲームの目的は、この物理性質を利用して、スタートポイントに設置されたボールを星の位置まで運ぶ。 http://www.kloonigames.com/crayon/
生成過程その1
生成過程その2
物理シミュレーション
テクノロジー コンパイラ: GCC 4.0 + Xcode 言語: C/C++ グラフィック: OpenGL 1.2 + GLUT 動作環境: その他 POSIX + OpenGL 環境… タブレット推奨