2010-02-02
ラグドールその2
必要最小限のコードにまとめて、wonderfl に投稿しました。
Ragdoll Physics using Verlet Integration - wonderfl build flash online
2010-02-01
Keith Peters さんのブログ
「詳解 ActionScript 3.0 アニメーション」の原著者 Keith Peters さんのブログ BIT-101 にも紹介されていましたので、簡単に訳しておきます。
原文:http://www.bit-101.com/blog/?p=2500
“AdvancED ActionScript 3.0 Animation”が日本で出版されたよ
FiTC Tokyo に出かける直前、東京のオライリー・ジャパンで翻訳書の出版を担当している宮川直樹さんから連絡がありました。拙書“AdvancED ActionScript 3.0 Animation”の翻訳についていくつか質問を受けたのです。「そうそう、実は来週東京に行くんだよ。ランチでもいかが?」と言えるのは実にクールなことでした。それで東京では、ひとりで地下鉄に乗って無事にオライリーの事務所に着き、本書を担当している何人かのスタッフに会って、オライリー・ジャパンのクールなグッズを頂戴し、おいしいランチをいただきました。
今日、本書が出版されたとの連絡を受けました。本屋さんにも並ぶはずですが、Amazonでも注文できます。
私はまだ本を入手できていませんが、まもなく数冊入手できる予定です。家族の半分が日本人で、日本人の親戚を持ち、日本文化が生活の一部になっている私にとっては、とても重要なことなのです。
オライリー・ジャパンのオフィスでのインタビューは次に載っています。
http://www.oreilly.co.jp/community/blog/2010/01/interview-with-keith-peters.html
2010-01-28
Microphoneと音響スペクトル
「詳解 ActionScript 3.0 アニメーション」の5章では、マイク入力の扱い方を説明しています。Flash Player 10 までは、Microphone クラス単独では波形データを取得することができませんでしたが、Flash Player 10.1 では、SampleDataEvent.SAMPLE_DATAイベントのハンドラを設定すると、波形データを得ることができます。
(↑クリックすると再生。Flash Player 10.1とマイクが必要です)
ソースは続き
2010-01-26
ラグドール物理
「詳解 ActionScript 3.0アニメーション」の「6.2ベレ法」では「ラグドール物理」という用語が出てきます。
http://en.wikipedia.org/wiki/Ragdoll_physics
にあるとおり、ボロ布でできた縫いぐるみのように、力の入っていないグダグダのキャラクタの運動をシミュレーションする方法です。どんな時に使うかというと、キャラクタが気絶したり死んだときが代表的です。
6章のVerletPoint.asとVerletStick.asを利用して、ラグドール物理の例を作ってみました。
メインドキュメントは RagDoll.as です。また、点と点をバネでつなぐ VerletSpring も定義します。図で灰色で描画されているのがバネです。
(↑クリックすると再生)
マウスをクリックすると、キャラクタが跳ね上がります。上下の矢印キーで、バネが緊くなったり、緩んだりします。
最初、バネは最強になっていてVerletStickと変わりません。[↓]キーを押すと、どんどんグニャグニャになって潰れてしまいます。
一度グニャグニャになったキャラクタを、マウスとキーの操作で再び立たせることができたら、エライです。
(ソースは続きに掲載。)
2010-01-25
詳解ActionScript 3.0アニメーション正誤表
「詳解 ActionScript 3.0アニメーション」は本日発売です。
……と同時に悲しいお知らせです。
初版1刷に下記のミスがありました。謹んでお詫び申し上げます。
●P.2 18行目 【誤】 Boolen 【正】 Boolean ●P.41 と P.44 リスト アンダースコアをマイナスに訂正します。 【誤】 particle.x = stage.stageWidth _ 1; ... particle.y = stage.stageHeight _ 1; 【正】 particle.x = stage.stageWidth - 1; ... particle.y = stage.stageHeight - 1; ●P.114 脚注 typo 【誤】 tile.position = new Point3D(x * 20, 0, y * 20); 【正】 tile.position = new Point3D(x * 20, 0, z * 20); ●P.175 リスト セミコロンが抜けています。 【誤】 graphics.endFill() 【正】 graphics.endFill(); ●P.189 脚注が不正確でした。 【誤】 音響スペクトルの計算はSoundMixer.computeSpectrumを使えば可能です。 【正】 削除。(Flash Player 10.1なら、取得した音声データを再生すれば、SoundMixer.computeSpectrumを使って音響スペクトルを計算することができます)
なお、原書にあったミスは下記の通りで、日本語版では訂正してあります(が上記の通り、訂正し損ねたものもあります)。句読点や綴りの誤りなどの些細なミスは除いてあります。
(原書の正誤表は続きに掲載)
tuto0621
こんにちは、詳解ActionScript 3.0アニメーション、楽しく読ませてもらっております。
すごくいい本ですね、とても勉強になることが分かりやすく書いてあります。
ここに質問を送ってしまっていいか迷ったのですが、
読んでいて分からない部分がありましたのでご質問させて下さい。
サンプルソースで言うと、
as3anime_src/as3anime_src/Chapter06/Hinge.as
の 24, 29, 32, 37, 42, 45行目の行頭に [list--] という表記があり、
不必要な表記に見えるのですが、コンパイルエラーも起こらないし、動作に影響しません。
書籍だとP.260に当たるのですが、こちらには[list--]という表記は無いようです。
[list--]が何をしているかが分からなくて、何をしているのか知りたいと思っています。
ご教授頂けると幸いです。
それでは。
aizoaikawa
ご購読ありがとうございます。
[list--]は編集上のタグが過って残ってしまったものです。
お手数をおかけしますが、削除の上ご利用下さいますよう、よろしくお願い申しあげます。
サイトのコードは早急に修正いたします。
ご指摘に感謝申し上げるとともに、お詫び申し上げます。
tuto0621
理由が分かってすっきりしました、ありがとうございます。
※ 正直、何かを消し忘れていただけだとは思っていたのですが、
これでコンパイルが通って、しかもプログラムも正常に動作することに結構驚いています。
AS3の文法的に許されるんですね・・・・。
こちらこそ丁寧に答えて頂いてありがとうございました。
aizoaikawa
文法的には、ECMAScriptのExpression Statement になるんでしょうかね。よく調べてみないとわかりません(汗)
いずれにせよ、勉強になりました。ありがとうございました。


小川様が変更されたソースコードを見てみないとなんとも言えませんが、
・0による割り算がどこかにある。
・メモリを食いつぶしている。
といった原因が考えられます。
差し支えなければ、ソースコードをご提示ください。