カテゴリー「Flash」の8件の記事

2010年5月27日 (木)

三次元迷路 - 3D Maze

Flashの3Dライブラリ「Papervision3D」を使って、3次元の迷路をつくってみた。
また、タイトルのアニメーションに「Tweener」をつかっている。

迷路は毎回ランダムに生成される。
迷路の生成は穴掘り法をもとに行っている。

ゲームをプレイするにはFlash Playerが必要。できれば最新のバージョンがいい。
あとは、大きな迷路になるとマシンパワーが相当必要に!

3D Maze
3dmazess

ソースコードはかなり見苦しいものになっているので、公開できない…

最初は3次元の迷路を遊んでみたかっただけなのに、その他の部分を作っていたらかなり時間がかかってしまった。
制作時間はおよそ40時間程度…
もっと上手にプログラムを書くことができればなー

| | コメント (0) | トラックバック (0)

2010年4月27日 (火)

Flex 4の設定メモ

Flex 4を導入したときに設定したことメモ

編集したファイルは
Flex/framework/flex-config.xml

・mxmlcを行うと以下のエラーが出る
警告: このコンパイル単位では、設定されたランタイム共有ライブラリを読み込むための、factoryClass が Frame メタデータで指定されていませんでした。ランタイム共有ライブラリなしでコンパイルするには、-static-link-runtime-shared-libraries オプションを true に設定するか、-runtime-shared-libraries オプションを削除してください。

flex-config.xmlの380行付近にある
<static-link-runtime-shared-libraries>false</static-link-runtime-shared-libraries>を
<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>に変更
これでとりあえず警告が出なくなる。
また、アセットの埋め込みができるようになる。


・Papervision3Dへパスを通す
flex-config.xmlの30行付近にある
<source-path>・・・</source-path>
のコメントアウトを外し
<path-element>.</path-element>
<path-element>./papervision3d/trunk/src</path-element>
を追加

Papervision3Dでシェーディングをきれいにできない...

| | コメント (0) | トラックバック (0)

2009年10月24日 (土)

Flashで絵を描けるか(mouseMoveイベントを試す)

ペンタブレットを買ってみて、きれいな線を引けることに感激しているので、Flashだとどのくらいきれいな線を描けるか試してみる。
線を描く方法としては、mouseMoveイベントにlineTo関数を割り当てて、マウスカーソルが動く毎に線を描くようにしている。

↓今回作成した線を描くFlash

MouseMoveEventTest_24fps.swf(フレームレート=24)

MouseMoveEventTest_120fps.swf(フレームレート=120)

ソースコードMouseMoveEventTest.as

マウスをクリックしながら、マウスを動かすことで線が描けます。
描いた線は15秒毎に消去されます。


今回はフレームレートを変えた2つを用意して試してみた。
ブラウザでの動作だと、フレームレートによる違いが少ないが、スタンドアローン版のFlashPlayerで動作を確認すると、フレームレートの差は大きくなる。
また、mouseMoveイベントの間隔もスタンドアローン版で動作させた方が短くなり、滑らかな線を描くことができる。
ただし、フレームレートの値はmouseMoveイベントには影響していないようだ。

ブラウザ上では、ゆっくりとカーソルを動かさないと滑らかな曲線が引けないが、AIRなどで実装すれば十分に滑らかな曲線を引くことができるかも知れない。

| | コメント (0) | トラックバック (0)

2009年10月20日 (火)

疑似3Dで玉を転がす

Flash MXでは3Dモデルを作れないので、グラフィックの重ね合わせと三角関数の組み合わせで表現してみる。

出来上がったのは↓

RollingBall.swf

ソースコードRollingBall.as

グラフィックRollingBall_data.swf


Flashをクリックして、フォーカスをあげれば、後はマウスカーソルを玉が追っかけます。
玉の表面に星印の模様を表現して、玉の回転を表してみたけど、不自然に見えることが多い・・・
玉を速く回転させてしまえば、適当な表面の動きでごまかせることが解ったから、ゲームとか作る時はごまかす方向で。
星印の数を増やせば、もっと回転が伝わりそうだけど、プログラムは理不尽に長くなっていきそう。


| | コメント (0) | トラックバック (0)

2009年10月18日 (日)

swfファイルを読み込んでActionScriptで制御する

ActionScriptだけでは、グラフィックを作ることがとても大変なので、FLASHで描いた絵やアニメーションを利用する必要がある。

swfファイルを読み込む場合、
読み込むファイルがFlashPlayer8以前でパブリッシュしてあると、読み込んで表示することはできるが、ActionScriptから制御をすることができない。
FlashPlayer9以降でパブリッシュしてあると、ActionScriptから制御することができる。

flashPlayer6のパブリッシュでも、MovieClipクラスでフレームを制御することができる。

今回はFlash CS4でパブリッシュしたswfファイルを使うことにする。
Flash MX(FlashPlayer6)のバージョンしか持っていないので、Flash CS4を持っている友人にswfファイルを作ってもらった。
↓が今回使うサンプル
MC_sample.swf

↓が今回作成したサンプル
EmbedSample.swf

ソースコードEmbedSample.as

左上は、読み込んだシンボルの1フレーム目、右上は2フレーム目、左下は3フレーム目を表示している。
右下は、シンボルをクリックすることで、1→2→3→1・・・の順にフレームを移動する。

ActionScriptで外部ファイルを読み込む説明は
Flex クイックスタートのアプリケーションアセットの埋め込み
にある。

今回は次のように記述して、埋め込みを行っている。
[Embed(source='MC_sample.swf',symbol='movie')]
private var MC_FILE:Class;
ここで定義したMC_FILEクラスを使って
var mc1:MovieClip=MovieClip(new MC_FILE());
の用に、MovieClipクラスのオブジェクトを作成する。
あとはMovieClipクラスのメソッドを使うことで、制御することができる。

読み込むswfファイルは、シンボルを作ってリンケージの設定でActionScriptで読み込むためのクラスを作っておく必要がある。
今回はmovieというシンボルを作って利用している。
シンボルを利用しないとムービークリップとして制御することができなかった。

| | コメント (0) | トラックバック (0)

2009年10月 6日 (火)

List コントロールを使ってみる(Flex)

MXMLの勉強にと、ユーザーインターフェイスコンポーネントの一つであるListコントロールをサンプルとしてプログラムを作ってみた。
MXMLの勉強には、Adobe FlexリソースにあるFlex 3開発ガイドの最初の辺りを一通り読んだ。

↓が今回作成したサンプルプログラム

ListControlTest.swf

入力されたデータから、新しいリストの要素を追加する。(Addボタン)
リスト内の選択された要素を削除する。(Deleteボタン)
リスト内の要素を選択すると、テキストフィールドにデータを表示。

ソースコード
ユーザーインターフェイスの配置などにMXMLを使用し、処理にはActionScriptを使っている。

コンパイルは.asファイルと同じように
# mxmlc ListControlTest.mxml
で行い、.swfファイルが作成される。


MXMLは、今までソースコードの読み方がわからず触ったことが無かったが、ヘルプを最初から読むことで理解することができた。
ActionScriptだけで、インターフェイスを作ると、それなりに面倒な処理が必要になるが、MXMLとActionScriptを組み合わせると、簡単にアプリケーションが開発できる。
ただし、コンポーネントを使用すると、コンパイルの時間が長くなり、swfファイルのサイズも大きくなってしまった。

| | コメント (0) | トラックバック (0)

2009年9月30日 (水)

デバッガ版Flash Playerの設定(traceを有効にする)

Flex SDKを、そのまま使っているとtrace()を使っても、出力が得られないので、Flash Playerの設定が必要となる。

デバッガ版の Flash Player の構成(Adobe Flex 3 ヘルプ)

まずは、「mm.cfg」ファイルを作る。

Macの場合は
# vi /Library/Application¥ Support/Macromedia/mm.cfg
で以下を書き込む

ErrorReportingEnable=1
TraceOutputFileEnable=1
MaxWarnings=0

これで、エラーメッセージのログの出力、トレースログの出力、警告数の制限の撤廃を設定している。


次はtraceをテストしてみる
traceTest.as((traceTest.swf
デバッグ版のFlashPlayerでないとtraceは行われない。

ログファイルはMacの場合
/Users/username/Library/Preferences/Macromedia/Flash Player/Logs/flashlog.txt
にある。

上のtraceTest.swfを実行した結果
flashlog.txt

ログを見るためのアプリが必要になりそう


| | コメント (0) | トラックバック (0)

2009年9月24日 (木)

Funnelを使ってArduinoをActionScript3で動かす

Funnelを使うことで、標準ではシリアル通信に対応していないActionScriptでもArduinoの制御が可能となる。

まずはダウンロード(今回はfunnel_r691.zipを使ってみる)

使い方はdocumentsフォルダ内のinstallation_instructions_ja.pdfを見れば丁寧に書いてあるのでこれにそって作業していく。


ドライバのインストール
USB-to-UART 変換ブリッジチップ FT232Rのドライバは、Arduinoを使い始めるときにインストールしてあるので、今回は省略することができる。


Arduinoの準備
ArduinoにFirmataライブラリを書き込む。
まずArduinoをMacBookに接続する。
次にArduino IDEを起動する。(Arduino 0017を利用)
「File」→「Examples」→「Firmata」→「StandardFirmata」を選択

20090924_91319

「StandardFirmata」が開けたら、「Upload」を押してArduinoに書き込む。

20090924_91642


ライブラリの準備(ActionScript 3)
グローバルセキュリティ設定パネルからActionScriptがFirmata Serverと通信できるようにする。
グローバルセキュリティ設定パネル
ここで、Funnelのサンプルフォルダや、Flexのワークスペースを追加しておく。

20090924_93113

ターミナルを起動し、Funnel/libraries/actionscript3/examples/に移動する。
# mxmlc ArduinoTest.as -sp ../src/
「ArduinoTest.swf」を開いてみる。

20090924_93741


Funnel Server の設定と起動
funnleフォルダ内にある「funnel_server-mac.dmg」を開いて、ファイルを適当なフォルダにコピーする。
コピーしたファイルのArduinoフォルダ内にある、「Funnel Server」を開く。
(「setting.txt」は変更なしで行けるはず)

20090924_94406


動作確認
Funnel Serverを起動した状態で、先ほどコンパイルしたArduinoTest.swfを起動する。
この時点で、アナログピンの値が揺れていることを確認できる。

20090924_95022

アナログピンに手を近づけると、値の揺れが変化する。

今回はここまで。

| | コメント (0) | トラックバック (0)

その他のカテゴリー

Arduino | Flash | git | iPhone | Mac | Processing | PS3 | Python | その他 | 工作