2007-01-01から1年間の記事一覧

メタセコイアプラグイン N-Move と UVPress

http://www.aa.alpha-net.ne.jp/kataho/mq/ 今までこっそり作って使ってたコマンドプラグインを公開します。 便利だと思ったらRoAの方で使うキャラクタモデルでも寄付してください。 プラグインへのコメントはここへどうぞ。

Yet Another Smooth Scrolling for Firefox

Firefoxのスクロールの挙動を細かく制御する拡張です。まずデフォルトで他ブラウザと比べ幅の狭いカーソルキーでのスクロール幅を調整できます。デフォルトのスムーシングは速度が一定なので、ホイールを素早く動かすと目的地までスクロールし到着するのに間…

他のskinningの手法を吟味してみる

現在採用している、ボーン同士の関節部へ両者を補間して出した中間ボーンを追加して作った行列パレットを使う手法は、正確にslerpで補間された中間ボーンのおかげで関節の屈折角度が必ず90度以下に収まり、頂点座標の線形補間によって生じるアーティファクト…

剣の軌跡の補間

動機 長い得物を振り回すと先の速度が酷く速くなってしまって60fps程度の更新頻度では動いているように見えなくなってしまうために剣の両端の点をバッファに入れて軌跡が描かれることがある。当然のことながら画面更新の頻度そのままで点をサンプリングして…

アルファテスト中

最初は本当にひどかったですが、2,3日で順調に安定してきたようです。リファレンスカウント式じゃなくて時間で消去しちゃう共有記憶が消えるのが想定していたより早過ぎてアクセス違反とか。けど新規に作ったスキンメッシュとかシミュレータのプールとかは全…

訂正?関数コンテクストについて

以前A.a() はコンテクストをAとしてAの中で"a"と名前のつけられたclosureを探して実行すると書いた。だとするとこれは期待通りに動かないのか? class Base { function set(v) { value = v; } value = 0; } class Deriv extends Base { // ↓ この部分でクラ…

「 乳_も_み 」で

yahooで11位になってるんで数アクセスあるのが一番サーチエンジンからキーワード辿って来る人で多いところかなぁ。いや。なんかNHKスペシャルでGoogleの検索順位のことやってたのでね。この人数と内容じゃ儲かりそうにもないけど。当のGoogleからは技術系の…

クラスとインスタンス

Squirrelのクラス定義は記述上ではテーブルの定義とほとんど同様である。ただし要素の動的削除はできない。追加書き込み専用である。ドキュメントにもあるとおり、クラスからインスタンスが初めて作成された時点で要素の追加や値の変更がロックされる。これ…

ちょっと変なコード

sq>s <- "aaa"; sq>print(s.len()); 3 sq>function f() { print(len()); } sq>f.call(s); 3 関数コンテクストには何でも入り得るということ。default delegateもハッシュテーブルの項目と同様の、単なる検索される要素として提供されているということ。

implicit delegation

関数コンテクストやGetの対象のSQObjectがテーブルであった場合、当然真っ先にこのハッシュテーブル内を検索するわけだが、ここで名前が見つからなかった場合にエラーとせず、あらかじめこのテーブルへ設定しておいた次の検索対象候補としての別のテーブルへ…

Get

Squirrelスクリプトの基本的で一貫したルールとして、exp_context.exp と書くことはexp_contextという名前のSQObject内に、"exp"という名前のつけられたSQObjectを探すことを指す。内部的にはこのような . 演算子はコンテクストとなるSQObjectの実際の型に関…

関数コンテクスト、thisについて

Squirrelでは関数実行には関数そのものと同時にコンテクストとなる変数(environmentとも呼ばれる)を指定する必要がある。この変数は関数内ではthisとしてアクセス可能なほか、関数内で出現する変数や関数などの名前はコンテクスト内を最優先に検索される。S…

fundamentalな部分についてまだ書くよ

前述のSQObject構造体はすべてのSquirrelが提供する型を格納できるようになっている。ハッシュテーブルや配列や文字列、プリミティブ型は当然のことながら、C++側で定義された関数の定義(native closureと呼ばれる)、squirrelで定義された関数の定義(closure…

メモリ管理とか

メモリ管理について。LuaがあくまでGCなのに対してSquirrelは基本的なメモリのライフタイムの管理にリファレンスカウンタを採用している。バリアント変数の実体のような、すべての型の共用体とその内容の型情報を保持するSQObject構造体があり、これを継承し…