月別アーカイブ: 2009年6月

『靴屋の小人』と言葉が通じない

090623_01

先日のセミナーで知ったjsfl
さっそく制作で使っています。
今のところ 例題であったmc原点合わせが最も使っていますが

//原点あわせ
var doc = fl.getDocumentDOM();
doc.setElementProperty("x", 0);
doc.setElementProperty("y", 0);

他にもちょっとやってみています。
選択したテキストフィールドのフォントを新ゴにする
(フォント指定のバナーをよくつくるので)

//選択したテキストフィールドのフォントを新ゴにする
var doc = fl.getDocumentDOM();
doc.selection[0].setTextAttr("face", "A-OTF 新ゴ Pro H", 0, 1);

その後、思いついて
インスタンス化していない
選択したオブジェクトを個別にmcにするスクリプトって
できるのではと 書いてみたけれど うまくいかない。

var doc = fl.getDocumentDOM();
var select = doc.selection;
for(var i=0; i < select.length; i++){
var element = select[i];
var mcName = "_" + i;
newClipWithDefaultName = element.convertToSymbol("movie clip", mcName, "top left");//エラーがでる
}

結局『靴屋の小人』に下準備をさせることができずに、自分でやるのでした...
これを書きながらセミナーで言ってた「選択したオブジェクト毎に個別の値を渡せない」ってところで引っかかってるのか? 『選択しているオブジェクトに対する処理→メソッドとselectionを使い分ける』というところが分っていないですね。

67workshop Spark02

67workshop Spark02にmonoq氏に誘われたので一緒に行ってきました。
Spark67 Part2 Edge ActionScript Libraries | ロクナナワークショップ イベント企画
(時間的な都合や観客の多さで単純に比較するのもいけないのですが)
AdobeMaxより満足しました。

【JSFL】
Javascriptで書ける flashのアクション (Photoshopでいうところの)
(昔PhotoShopをjsで動かすという記事を見かけた気がしたそれは別の話ので あとで)

flashの操作をそのままかけばいいので
昨日の仕事みたいに15個パブリッシュも 人力でしなくていい。
mcの位置合わせとかも 数値触らなくていい
→明日から作業効率があげられそう
ただ、処理速度が遅いので 汎用化できる大量な単純作業などに用いるのがよいらしい
スピードを求めるなら Cで書け。

Adobe Flash CS4 Professional * JavaScript API の操作
AdobeMAXでも Sparkの人が 
「パレットつくれます」とか「便利なもの作りました」と
説明する場面があったけれど 時間がなかったので
JSFLそのものの説明がなくて ポカンっと見ていた。
その辺りの知識が埋まった。

【FLARToolKit】

Papervision3Dにまともに触ったことなかったり、
昨日までこんな勘違いをしていた(正しくは えふえるえーあーるつーるきっと 文字情報だけで知っているからこういうことが起きる)自分でもなんかできたりするくらい説明が詳しかった。
090620_01.png

実際のswfはこちら
(要ウェブカメラ)makerをダウンロード プリント後 カメラにかざしてください。
カメラに何も写らない人は 右クリックして「設定」/一番右側のタブ「カメラ」で使うカメラを選び直してください。

ソースは

package {
import org.papervision3d.lights.PointLight3D;
import org.papervision3d.materials.WireframeMaterial;
import org.papervision3d.materials.shadematerials.FlatShadeMaterial;
import org.papervision3d.materials.utils.MaterialsList;
import org.papervision3d.objects.primitives.Cube;
import org.papervision3d.objects.primitives.Plane;
public class SimpleCube extends PV3DARApp {
private var _plane:Plane;
private var _cube1:Cube;
private var _cube2:Cube;
private var _cube3:Cube;
private var _cube4:Cube;
public function SimpleCube() {
// カメラ補正ファイルとパターン定義ファイルのファイル名を渡して初期化。
this.init('Data/camera_para.dat', 'Data/flarlogo.pat');
}
protected override function onInit():void {
super.onInit(); // 必ず呼ぶアル。
// マーカーと同じサイズを Plane を作ってみる。
var wmat:WireframeMaterial = new WireframeMaterial(0x00ff00, 1, 2); // ワイヤーフレームで。
this._plane = new Plane(wmat, 80, 80); // 80mm x 80mm。
this._plane.rotationX = 180; // 裏向いてるのでこっち向ける。
this._baseNode.addChild(this._plane); // _baseNode に addChild するとマーカーに追従する。
// ライトの設定。手前、上のほう。
var light:PointLight3D = new PointLight3D();
light.x = 0;
light.y = 1000;
light.z = -1000;
// Cube を作る。
var fmat1:FlatShadeMaterial = new FlatShadeMaterial(light, 0xff1a00, 0xab1100); // あか
var fmat2:FlatShadeMaterial = new FlatShadeMaterial(light, 0x009ec5, 0x006a84); // あお
var fmat3:FlatShadeMaterial = new FlatShadeMaterial(light, 0xffe500, 0xab9a00); // きいろ
var fmat4:FlatShadeMaterial = new FlatShadeMaterial(light, 0x69bb38, 0x467d26); // みどり
this._cube1 = new Cube(new MaterialsList({all: fmat1}), 40, 40, 40); // 40mm x 40mm x 40mm。
this._cube1.z = 60; // 立方体の高さの半分、上方向(Z方向)に移動させるとちょうどマーカーにのっかる形になる。
this._baseNode.addChild(this._cube1);
this._cube2 = new Cube(new MaterialsList({all: fmat2}), 40, 40, 40); // 40mm x 40mm x 40mm。
this._cube2.z = 160; // 立方体の高さの半分、上方向(Z方向)に移動させるとちょうどマーカーにのっかる形になる。
this._baseNode.addChild(this._cube2);
this._cube3 = new Cube(new MaterialsList({all: fmat3}), 40, 40, 40); // 40mm x 40mm x 40mm。
this._cube3.z = 260; // 立方体の高さの半分、上方向(Z方向)に移動させるとちょうどマーカーにのっかる形になる。
this._baseNode.addChild(this._cube3);
this._cube4 = new Cube(new MaterialsList({all: fmat4}), 40, 40, 40); // 40mm x 40mm x 40mm。
this._cube4.z = 360; // 立方体の高さの半分、上方向(Z方向)に移動させるとちょうどマーカーにのっかる形になる。
this._baseNode.addChild(this._cube4);
}
}
}

見た通り Saqooshaさんのエントリーにあるスタートアップガイドのを元に
cubeを増やしてそれぞれに色つけただけですが。

モデリングするために3Dモデリングソフトが必要で
説明では フリーの3DソフトBlenderが使われていました
それはそれでやらないといけないくらい難しげな様子。
(3D制作は STRATA Vision3Dあたりで知識が止まっているので… )

これまでCが解らなくて指をくわえて「すごいな」と ARモノの感想エントリーを書くくらいがせいぜい、今回のセミナーでやっと実際地続きなんだという感覚が得られました。

参考リンク
工学ナビ – 「攻殻機動隊」「電脳コイル」の世界を実現! – ARToolKitを使った拡張現実感プログラミング

追記:
公式サイトでのイベントリポートがアップされました。
http://event.67.org/?p=410

flashから家庭用ゲーム機に行く道は なくはないけど限りなく細い

090618_03.png
flashから家庭用ゲームへの移植ができるというミディアムウェアscaleformGFx。
その説明と導入実例の話が聞けるということで(自分のflashのレベルも鑑みず)
Adobe,Scaleformの共同セミナー 
『Flashコンテンツをゲームプラットフォームへ展開する技術、ビジネス』
を行ってきました。
以下 自分用メモ
Flashで作ったものが そのままwii、PS2,3など家庭用ゲーム機に載せることができるソフトではない。
→(技術的問題) 
ゲームインターフェイスなどのデザインにFlashで作ったものが使える=パーツとして使える ゲームそのものの処理はC。(事例紹介、wii あいうえ・おーちゃんの場合)
ゲーム内ゲームには そのまま行ける様子。

→(プラットフォーム的問題) 
アタリショックの教訓(だと思う)でむやみにソフト数を増やして、
クオリティが下がる事はゲームプラットフォームの魅力を削ることになるので、
企画段階でプラットフォーム企業に見せ ふるいにかけられる必要がある。
仮に通っても 開発には『開発キット』が必要でそれを使うには 
契約を結ぶ必要がある。
Scaleform GFx自体も使うには 登録が必要そうだし。
(iPhoneもAppleにアプリの確認をされる必要があるし、
開発に使うiPhoneは ちょっとした登録が必要と
「夢見るiPhone」で立ち読みした気がした)
iPhoneアプリのように自由に企画、制作もできない
その自由さのなさで Twitter上で がっかり感ただようコメントがいくつか見られた。
Flash使いの人がゲームの方に行くには 
ゲームの開発会社に入る/
ゲームのパブリッシャと契約をする(レベルの大きい団体を作って)
/開発会社の外注として仕事する 
しか道はなさそう。
ゲーム/iPhoneアプリ業界の話は 
前に聞いていたpodcast『アキバ系!電脳空間カウボーイズ』が参考になるかも。
もっとAS使える人には違う感想があるだろうけど 
自分のレベルが聞いていると まあそんな感じ。
(追記)
なんて 長々書いていたら
ゲーム機でFlashを動かす『Scaleform』セミナー開催――開発者が寄せる期待と現実のギャップ – ガジェット通信
http://getnews.jp/archives/19296

のエントリーを見つけた。
そっち読んだ方が わかりやすいです(笑)

ナムルうまいよ

090606_01
はてなブックマーク経由で知った 
一風堂のもやしナムルを作ってみました。
http://cookpad.com/recipe/214933
普段 味にこだわらない自分一人が食べる分くらいしか作らず
そんなに新しいレシピとか試さない。
豆板醤やごま油もなかったので
これの為にそろえましたが 
これは思った以上に一風堂。
茹でたもやしの水気をよく取るのが 大事です。
ブックマークしただけで つい やった気になります。
lifehackネタとかは 特に。
週末くらい 料理一品 
ちょっと 実際にやってみるのもいいかも知れません。
ぜひぜひ お試しを。