Digesting Duck: Loose Navigation Grid
NavMesh ではない、「ナビゲーション・グリッド」による経路探索の可能性について。
レベルを適切な大きさのボクセルに分割し、その各々のボクセルの中でハイトフィールドによる移動可能範囲の特定を行う。あとはボクセル同士の接続情報を構築することによって、ナビゲーション情報が完成するというわけ。
Mac で動作するデモ付き。現状ではナビゲーション情報の生成まで実装が済んでいて、これを使った経路探索処理については今後実装する予定とのこと。
この手法は NavMesh…
Soft maximum 関数というものがある。簡単に言えば「なだらかな max 関数」だ。下のグラフのような曲線を描く(角張っているのが普通の max 関数)。
式も簡単だ。次のようなシンプルな式で表される。
softmax(x, y) = log(exp(x) + exp(y))これをちょっといじくって次のようにすれば “soft minimum” 関数も実現できる。
softmin(x, y) = -log(exp(-x) + exp(-y))
更にこのふたつを組み合わせれば “soft clamp” 関数も可能だ。
...
Software exoskeletons - The Endeavour
「科学者」の書くプログラムと、「プログラマー」の書くプログラムの間には、ある考え方の違いがある。
科学者にとってのプログラムとは、自分の力を増強するためにある外骨格のようなものだ。あくまでも作業の中心には自分が関わることを前提としており、その道具としてプログラムを書く。
プログラマーにとってのプログラムは、それ自体がある種の知性を含んでおり、他人に引き渡せるような状態のものだ。それはプログラマーにとっての外骨格ではなく、自立して動くロボットのようなものだ。
…
7/23/2011
Permalink
(この記事にはProcessing.jsによるスケッチがいくつか組み込まれています。環境によっては正しく再生されないかもしれません。Chrome, Safari, Firefox等の使用をおすすめします。)
「丸が1秒おきに左右に滑らか動く」というプログラムを書いてみよう。いちばん簡単なのは、線形移動を使う方法だ。
まあ、これでも十分っちゃ十分なんだけれど、動きとしてはちょっと味気ない。
いわゆるイーズアウト(ease out)を使えば、これを滑らかにすることができる。
上のスケッチでは、漸化式を使ったイーズアウトを実装している。こんな感じの式だ。
Polycodeはクリエイティブ・コードのためのフレームワーク……要するにProcessingのようなものだ。基本はC++で作られているのだけれど、Luaによるスクリプティングも使うことができるという点が、大きな特徴としてあげられる。
一通りの2D, 3D描画の機能を備えているほかに、Box2D, Bulletによる2D, 3D物理シミュレーションも使うことができる。ボーンアニメーションやパーティクルシステムなど、凝った効果を作り出すのに必要な機能を備えているのも魅力だ。
…
Rutt-Etra-lzer: Airtight Interactive
画像をドラッグ&ドロップするだけでRutt/Etraビデオ・シンセ風のエフェクトを作り出してくれるページ。WebGLを使って実装されている(ゆえにWebGL対応のブラウザじゃないと動かせない)。カッコイイ。
セットアップは少し重いけれど、その後の動きは快適。JavaScript/WebGLと言えども、いったんVBOを作ってしまえば、あとのパフォーマンスなんてどうとでもなる、といった感じか。
これを作るのに使われているthree.jsというエンジンも面白そうだ。
(via CreativeApplications.Net)




