人工生命アルゴリズムを用いたユーザ視点の造形

Download Report

Transcript 人工生命アルゴリズムを用いたユーザ視点の造形

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