人工生命アルゴリズムを用い たユーザ視点の造形 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 環境… タブレット推奨
© Copyright 2025 ExpyDoc