サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
大そうじへの備え
keim.hatenablog.com
『wonderfl』 サービス終了のお知らせ(2017年3月末) 何というか。 Web Flash Player自体はもはや息をしていませんが、あらためて一時代が終わった感ありますね。。。 2015年末のカヤックバザーに出品された 時点でロスタイムに突入した感じはあったので、当時、簡単なサルベージングツールを組んで、自分の作品群はGithubに上げました。 github.com 特定ユーザーについて、コード、swfファイル、サムネイル、解説を抽出して、適当にReadMe.mdに変換します。Favoriteコードの抽出も可能ですので、お気に入りの作品をFavして、一括でダウンロードもできる、はずです。 サルベージングツール自体も上記レポジトリに入ってますので、自分の特定の作品群を保存したい人はお早めにどうぞ(要;Ruby & nokogiri)。ただし、素材を画像として作品に添付している場合
GIMMICK – FANTAISIE IMPROMPTU | Si+ (wonderfl.net) SiON v0.652 で MIDI データ読込に対応しました。 MIDIデータは、「音楽データとしては圧倒的に容量が小さい」という大きな特徴があります。このため、まだフロッピーがメインの外部記憶媒体だった時代から、ストレージ容量が限られていた時代、ネット回線が細かった時代、携帯電話のインフラが十分でなかった時代、それぞれの時代/場所で少しずつ形を変えながら、しぶとく長く広く普及してきました(今でもカラオケなどの領域では現役です)。 これら MIDI 普及の大きな要因は「圧倒的に容量が小さい」という特徴によるものでしたが、近年では扱える情報量が大きくなったため、このメリットはほとんど得られなくなりました。結果、所詮「楽譜」でしかない MIDI データが録音した音そのものに勝てるわけも無く(
SiON - the AS3 SoftSynth SiON v0.652 をリリースしました。 主なアップデート内容は、 version 0.64 で PCM 音源の拡張 version 0.65 で MIDI に対応 です。 これまでの「MML + 音源Chipエミュレータ」という懐古路線はそのままに、「MIDI + PCM音源」というモダン路線を導入して、一気に近代化?を図りました。そもそも v0.64 のリリースをアナウンスしなかったので、v0.64-0.65 で大きく変わった点について、概説したいと思います。 PCM音源実装の変更(v0.64) v0.64で最も大きなアップデートはmp3ファイルの取り扱いについてです。中でも、Sound オブジェクトをシンセ音として扱えるPCM音源は、v0.63まで FM 音源の拡張でしたが、v0.64 でフルスクラッチから実装し直しました。このた
Wave Shape Editor | Si+ (wonderfl.net) 7ヶ月ぶりに wonderfl りました。ついでに日記は9ヶ月ぶりの更新。今回は、波形メモリ音源向け波形編集ツール、という著しくニッチなモノを作ってみました。 ちなみにSiON ネタは実に1年2ヶ月ぶり。 ほぇー。最近、歳月が過ぎるのが早すぎて困る。 かなりマニアックなネタですが、いざ作って触ってみると波形と音の実験ツールとして中々面白いポテンシャルを持ってそうだと感じました。そこで今回は少し趣向を変えて、いつもの技術ネタではなく、簡単な音実験をしながら操作方法のチュートリアルを書いてみようと思います。 イントロダクション:波形メモリ音源って? wikipedia:波形メモリ音源 平たく言えば、1周期分の波形データだけ持っておいて音階をつけて鳴らす音源方式です。 演算がシンプル かつ 省メモリで 多様な音が作れた
4k fly-through | Si+ (wonderfl.net) 本題の前にちょっと後日談。 前回、擬似屈折率について書きますと書いたのですが、あれから色々検証してみて、投稿したコードに大きな間違えが見つかりまいまして。で、修正して無事まともな Cubemap 擬似屈折ができたんですが、正直、投稿したものよりもリアリティが出ない。何でかなと色々考えてく内に、"擬似"の部分が原因であるという結論にいたりました。 ここまでは良いんですが、問題は間違ってたコードがわりと屈折っぽかったという点。明らかに間違ってるんですが、できればこっちに何とか物理的な意味合いを見出して、新しい擬似屈折アルゴリズムにしたいなー、とかグルグル考えているうちに記事が書けなくなりました。 ここら辺、オチが見えてきたら、また別の投稿で書きたいと思います。 さて、今回はちょっと変化球ということでStage3Dで4kプロ
Boolean Crystal | Si+ (wonderfl.net) FlashPlayer11 ではステンシルバッファが使えるようになったので、お約束の立体ブーリアン演算をやってみました。ただ、コレだけだと寂しいので、incubator時代に実装したAGAL擬似屈折+反射シェーダーの改良版と組み合わせてみました。あんまり本筋と関係ないところでなかなか苦労はしたのですが、全体を通してわりと素直に実装できました。FlashPlayer11の仮想GPU、良いね! 今回はFlashPlayer11で扱えるようになった3D基本技術のごった煮みたいな感じです。擬似屈折+反射シェーダには Cube Texture を使って、ブーリアン演算にはステンシルバッファを使っています。ブレンドファンクションはまだポイントスプライト用加算演算くらいにしか使ってないですが、これで一応一通り触ってみた感じにはなる
Spirographical Ingot Cast | Si+ (wonderfl.net) 前回、PointSpriteのデモを作成した際、何か面白いパーティクルの動きは出来ないかなーと試行錯誤していました。その中でスピログラフを3次元に展開できたら面白そうだなと思って、いろいろ数式をいじってたら想像以上に面白いものができそうだったので、1つのコンテンツにしてみました。 見せ方次第でまだまだ面白くなりそうでしたが(例えば Point Sprite Particle みたいにスピログラフ上のモーションをBPMに合わせたり)、今回は色々数式をいじって形状を確認できるような方向で丁寧に作ってみました。 3D関連の技術的にはMetallic soft cube - wonderfl build flash onlineとPoint Sprite Particle - wonderfl build
Metallic Soft Cube | Si+ (wonderfl.net) ついにwonderflが、FlashPlayer11に対応しましたね。 3Dライブラリ系のFlashPlayer11対応版へのアップデートはまだなので(というか、既存3Dライブラリって過去との互換性を保ちながらアップデート可能なんだろうか?)、本格的に盛り上がるのはもう少し先かなと思ってますが、せっかく使えるようになったことだし、早速1本投稿してみました。 ついでにモルヒル時代に(wonderfl上では動かないけど)投稿してた作品も、無事動くようになったので再コンパイルしました。技術解説的なものは、ActionScript で屈折レンダリング+Molehill雑感 - Simple Inspirationあたりに書いてますので、ご参考ください。 Clear Water with refraction rende
やー、ついに Flash Player 11 が公開されましたね。Web3D 時代の到来です。WebGL がまごまごしてるうちに追い抜いてしまいました。こういう早さは、やはり一社提供の強みですね。WebGLも、もうGoogle一社提供にしちゃえばいいんじゃないかな。 Flash Player 11 Flash Player | Adobe Flash Player 11 | Overview Flash Player 11 Debug Player とか Adobe Flash Player - Downloads さて、このFlash11ですがそうとう色々変わってるっぽいので、Web版のFlashPlayer11に絞って(AIR3の変更点は除いて)軽くまとめてみようと思います。 大きな変更点 from リリースノート (via ) なんといってもStage3D!GPUアクセラレーション3
Nomltest on Flash | Si+ (wonderfl.net) ひさびさに全力でwonderfl。 もう1ヶ月ほど前ですが、wonderfl build flash onlineのデフォルトライブラリに、拙作シューティングゲーム用DSLライブラリ CannonML を追加して頂きました。すでに絶賛稼働中のソフトシンセSiONと組み合わせれば、Nomltestが移植できんじゃね?という単純な発想からはや3週間。なんとか完成にこぎつけました。 Nomltestは2005年に自分が作製した記念すべき第一作目のフリーゲームで、発表当時ごく一部のマニアに大うけだった大変マゾヒスティックな弾幕シューティングです。ここら辺もしました。 今回移植にあたって苦労したのは、オリジナルの50FPSに対して今回はブラウザゲーというで30FPSに落とした点です。昨今のFlashPlayerは、普通のス
今回はわりと本気ネタ.まじめに屈折レンダリングをやってみました. Clear Water with refraction rendering | Si+ (wonderfl.net) Fork元のネタはsaharanさんの3D水面 / Water 3D - wonderfl build flash onlineで,うまくパラメータ調節されてて非常に良い感じに水面の挙動が表現されていたので,反射マップだけではもったいないなと思い,屈折レンダリングと合成して水を表現してみました. やり方自体は頭の中にあったのですが,ちゃんとした数式にしてコードまで落とし込んだのは初めてでした.トライアンドエラーでなかなか苦労したのですが,おかげでかなりリアルな水が描画できてると思います. 今回は要素技術を解説するとエラく長くなりそうなので,概要だけ簡単に説明してみます. 無色透明な液体をレンダリングする際の要
ひらがなリッパー | Si+ (wonderfl.net) (wonderfl.net2) wonderfl に小ネタ連投. マウスジェスチャで文字(又は Graffiti)を書くと認識してその文字が切り取られて落ちていきます. それだけです. もともとは,マウスジェスチャで操る感じの音アプリを作ろうとしてたんですが,明らかにオーバスペックなマウスジェスチャエンジンが出来上がりつつあったので,そこだけ取り出して少し真面目に作りこんでみました.コンテンツ的インパクトはあんまり無いですが,技術的には結構面白かったので,ちょっとブログに書き出してみようと思います. Palm graffiti 認識 Palm graffiti ってのは Palm OS に搭載されていた,手書き文字認識専用の記号郡です.グラフィティ (Palm) - Wikipediaに詳しくのってます.基本は英語の大文字を一筆書
ちょっと仕事が落ち着いたので,ひさびさにwonderflで小ネタを投稿.3分40秒の動画データと音声データを圧縮して,465px 四方の1枚の PNG 画像に収めてみました. Movie data in one PNG image | Si+ (wonderfl.net) 元ネタは, 【東方】Bad Apple!! PV【影絵】 【第5回MMD杯本選】 Bad AApple!! ニコニコでかなり有名な動画です. という訳でブログでは技術的ネタバレ. 3分40秒の動画が1枚のpng画像にって聞くとちょっとすごそうに見えますが,実はあんまりたいした事はしてません. まず音声については SiON の MML をそのまま埋め込んでます.MML は基本的に 1音=1Ascii文字=1Byte(7bits),かつ,繰り返し指定が可能なため,データ効率が非常に良いフォーマットです.ByteArray.c
昨日FITC Tokyo 2010が開催され,大盛況の内に終了しました.かく言う自分は残念ながら参加できなかったのですが,その中でも,音生成Flash界の巨人 Andre Michelle 氏(aM Laboratory)によるプレゼン "Pulsatile Crackle(拍動クラックル)"は,かなりのインパクトがあったようです(参照:FITC Tokyo 2010 の AndreMichell 氏のデモをTLだけで妄想するためのまとめ - Togetterまとめ). 最近,ようやく音生成アプリが注目され始めてきています.この流れに便乗する感じで,今までコツコツ作ってきた音生成ミニアプリのうち人気の高かったもの7つをピックアップして,概要とSiONの要素技術をまとめてみようと思います. 1.SiON SoundObject Quartet SiON SoundObject Quartet
SiON TETRISizer | Si+(wonderfl.net) ものすごく久々にゲーム作った,といってもテトリスだけど. なんだかんだSiONの更新には半年以上費やしてしまっていて,その間にゲーム作りたい衝動がかなり高まってた.wonderflではscoreapiとか導入されたりしてるし.今回はとりあえずリハビリのつもりでテトリスにしたんだけど,連鎖の概念を導入しようとするとフィールドに落とした後もブロックの形状を覚えとかなくちゃならないとか,せっかくだからARIKAテトリスみたいにぬるぬる動かそうとするとブロック移動判定が全然変わるとか,いろいろやってたら結構面倒だった. 製作期間はテトリス本体1日+音楽1日+バランス調整2日+演出関係2日で大体1週間.意外に全盛期のスピードをいまだに保ってて自分でもびっくりした.もっともベースがテトリスとルミネスって最初から決まってて,企画やバ
前章3. SiON と DisplayObject の連携の続きです.後半では,インタラクティブな音生成Flashにおいて重要になると考えられる,音の遅延といかに上手に付き合うか,について少し考えてみようと思います. インターフェイスとの連携 クリックやキー入力といったユーザーアクションに反応して音を鳴らす場合,delayとquantize を0に設定して最速で音を生成します.音の合成は関数呼び出し後の最初のストリーミング時に行われるため,発音の遅延は一定ではありません. ユーザーアクションに対応して"音楽と同期した"音を鳴らす場合は,delay と quantize で同期タイミングを設定して呼び出します(Synchronized Sequence).この場合,音楽に同期させるための遅延が余計に発生します.この"音楽に同期させるための遅延"は,SiMMLTrack::trackStart
現バージョンで音を鳴らす方法は,全部で5種類あります.どの方法であっても,最初に SiONDriver::play() メソッドを呼び出してストリーミングを開始しておく必要があります. SiONDriver::play(data:*=null, resetEffector:Boolean=true) : SoundChannel SiONDriverクラスの play() メソッドは,SiON による音声ストリーミングを開始します.SiONで発音する場合,最初に必ずこのメソッドを呼び出しておきます. 第一引数では,SiONData, String または null を渡します.SiONData を渡した場合,ストリーミング開始と同時にそのSiONDataの演奏を開始します.SiONData は楽譜に相当し,通常 SiONDriver::compile() を使ってMML文字列から生成します
SiONをWonderflにライブラリとして登録していただいて以来,様々な方に試していただき本当にありがとうございます(Wonderf以前から試して貰ってる超ヘビー級ギークもいますが). 折角,Wonderflというすばらしい試用環境ができたのに,現状spark project wikiのしょっぼいドキュメントしか無く手探りで試して頂いている状況なので,ブログでちょこちょこと推敲中の解説エントリを書いていこうかなと思います.最終的にはどこか(多分SparkProject)にまとまった文章として置くつもりでいます.以下,予定タイトルですが随時変更していきます.また,このエントリをインデックスとして利用する予定です. 0. SiON 概要 1. SiON の主なクラス 2. SiON で音を鳴らす 3. SiON と DisplayObject の連携 4. 音と映像とインターフェイスの連携
org.si.sion.SiONDriver SiON の中核となるモジュールです.基本的な操作は全て SiONDriver のメソッド/プロパティとして提供されています. 音を鳴らす.波形データを生成する(play, noteOn, sequenceOn, render ...). MMLをコンパイル,演奏する(compile, play ...). mp3(Sound class)を読込む/再生する(setPCMSound, setSamplerSound, setBackgroundSound ...). ボリューム,パン,フェードなどの基本操作をする. エフェクタを設定する. 各種イベントを発行する. org.si.sion.SiONData シーケンスデータ(音色設定と楽譜)です.通常 SiONDriver.compile() で MML文字列 から作成します.かなり大変ですが一
MML hosting service "MMLTalks" をベータリリースします.AS3用ソフトウェア音源 SiON をエンジンに使ったMML共有サービスです. MMLTalks - Lets communicate by chiptune sound - とりあえず上記リンクに行って,曲名をクリックすれば曲が聞けます.MMLを投稿したり,タグを付けたり,favoliteリストを作成したい場合は,上段"Login"より入って,ユーザーアカウントを作成してください.Google Account(推奨)または OpenID で作成できます.詳細については後日改めて書きます. また,今までSpark project上で開発してきた,ActionScript3用ソフトウェア音源 + MMLコンパイラ/シーケンサ SiON もスタティック版をリリースします. ActionScript3用ソフトウ
SiOPM関連も少し進んでるけど,今回はWonderfl. Screen Space Ambient Occlusion - wonderfl build flash online 最近リアルタイム大域照明界隈で流行ってるらしい Depth Buffer を利用した Ambient Occlusion. 3Dエンジンに色々余計なものが導入されてるせいで行数は増えてるけど,Screen Space Ambient Occlusion計算のコードは非常にシンプルで5行しか無かったりする.ってか,これで合ってるかどうかはわからないんだけど,見た目がソレっぽいのでOKって事にしておく. 3D計算ベースではなくて,レンダリング後のBitmapDataベースなので,形状が複雑になってもそれ程計算負荷が高くならない.ただし,オブジェクト間の距離が離れるとおかしくなる.ので,密度が高くて複雑な形状で効果を
Arena Shooting in 100 Lines | Si+ 面白そうなので自分も作ってみた. 大元は,@24さんの100行でゲームっぽいものを作ってみた. これに,ABAさんがActionScript100行でゲームを作れとActionScript100行ゲー2つめ. さらに,shinichiro_hさんが兼雑記 - 100行ゲー. 一概に100行と言っても各者各様で解釈が難しいので,とりあえず,The 25-Line ActionScript Contest をwodnerfl風味にアレンジしてみた. 25Lines Flash Contest のルールは,大雑把書くと, 1) ";","{" 後は改行. 2) ただし,for/while/do-while/if/else/function の内部処理が1Lineの場合に限り,1行で書いて良い. 3) for文の初期化/判定/イテ
Ambient Occlusion Rendering | Si+(wonderfl.net) Ambient Occlusion といっても,最近リアルタイム大域照明界隈で流行ってるらしい Depth Buffer を利用した Ambient Occlusion じゃ無くて,元ネタはここ. この AObench は,古典的なレイトレーシングで,Path tracingによる大域照明計算の Diffusion の項を Ambient Occlusion で超簡略化した物(と,ソース読んで自分なりに解釈してる). んで,AObench は,実はすでにSyoyoさん本人の手で ActionScript3 実装が為されている↓. この記事を読んだ時(去年10月頃)は確かコードが公開されてて,当時軽く眺めただけだったんだけど,ActionScript3のコードとしてあまり効率が良くない印象があった
Old-skool LCD rendering - wonderfl build flash online 55行でBitmapDataをポケコンの液晶画面(っぽい何か)上に表示するレンダラを作ってみた.一発ネタ.というか↓の副産物. shmups on LCD - wonderfl build flash online 640行でポケコンの液晶画面(っぽい何か)上で作動する全6面のミニシューティングゲーム.見た目は上のと同じだけど描画ルーチンを差し替えてる.ポケコン液晶レンダラ+キーマッパー+BEEP音生成で150行位なので,ゲーム本体は約500行.TinySiOPMの時ほど無茶な圧縮表記はしてないけど,それでもまぁ,普通にはあり得ないような書き方をしてる.シューティングで肝になるスクリプトエンジンは404 Not FoundをベースにしたTinyCMLを実装した.非常に簡素なものなんだ
一応,一通りのバグフィックスと仕様改定を終えたので,最初の安定版ってことで,SiOPM ver.0.4.1をリリースします. 音が出るMMLリファレンス http://mmltalks.appspot.com/document/siopm_mml_ref_040.html ワークベンチ(データは TSSCP STGスレ 3 の 662 からお借りしました.Merci Beaucoup) http://mesudak.googlepages.com/siopm_js_poc.html ソース(Spark project) http://www.libspark.org/wiki/keim/SiOPM 曖昧だったシステムコマンドの書式を統一して,マクロに一括設定と文字列加算を追加しました.mckcとの親和性がちょっと上がったんじゃないかと思います.他にも変更点が大量にありますが,詳細はリファレ
【追記】ロード時の問題を解決.多分 自分で喋るんだ!( ゚д゚)<ペネトレイション… Site not found (データはTSSCP/STGスレ3の930-932から引用させていただきました.謝々) FlashPlayer10上で動作するチップチューン向けソフトウェア音源"SiOPM" + MMLコンパイラを公開します.本当はFlashPlayer10正式版に合わせて公開したかったんだけど,また学会発表とか引越し準備とか色々あって,かなりテンパってたのでズレました. 上記ページのテキストエリアにMMLを書いてPlayボタンでコンパイル/再生します.MML仕様はココ(ドラフト版).また,偽TSSCP用MMLをテキストエリアにコピペしてTSSボタンを押すと70%位の確率で変換できます.ただし,変換されたMMLは完全にTSSCPの音を再現する訳ではなく,また効率が悪い(非推奨コマンドを含む
自分にとってプログラムは趣味であって,仕事は全く関係ない事をやっている人なので,仕様が安定していない最新技術とかにはあんまり興味が無くて,ある程度成熟して固まってきたところで乗っかる事で,覚えることを極力最小化したいタイプなんですが. さて,今までコソコソとやってきてた事は,FlashPlayer10を想定しつつFlashPlayer9で動くように作ってて,FP10が正式リリースされるタイミングで移行しようかな,と考えていました.が,だんだんと形になって来るにしたがって,FP9上で動かすのに限界が出てきたので見切り発射でFP10を導入しました. で,せっかくなのでid:keim_at_Si:20080528と同じ事をFP10上でVectorも追加してやってみました. int vector テスト for FlashPlayer10 デバッガの結果. Windows XP/StandAlon
pAPUノイズのタイマ周期って最短で4まで指定できるみたいけど,これってpAPUのクロック数 1789773Hz / 4 = 447443.25Hz のノイズが出るって事? つまり,sampleRate=44.1kHz の wave では物理的に再現不能って理解でおk? 【追記】 VirtuaNesのソースに潜ったら,sampleRateより周波数が高い場合,出力を平均化してwaveバッファに書き込んでるっぽい 【追追記】 そもそもスピーカの振動板がその速さに追従できないだろうから,振動板が中庸な位置に居ると仮定する意味で平均をとるのは真っ当な処理かも.出力が平均化されるって事は,ロングノイズならパルスノイズからホワイトノイズに近づくと近似しても良さそう. ショートノイズはかなり特殊で,最高 1789773Hz/(4*93)=4811Hz で謎の波形が鳴る計算になる.しかも,位相(その時点
...なんて何も無い.そもそもmml自体を知っておく必要がぜんぜん無い.タイトル考えんのが面倒になったので,ホッテントリメーカーから適当にタイトル選んだだけ. mml文法について 今更mmlの骨格を知っておきたいなと思って,この1ヶ月で N88BASIC PMD FMP みゅあっぷ98 MDX(ファイルフォーマットのみ) z-music ppmck マビノギ さくら mml2midi 偽TSSCP FlMML のmml文法仕様に目を通した.あと,note.xのを読みたかったんだけど,どうにも見つからなかった.系譜を見ていると結局のところ全てのmmlはN88BASICに帰着するらしい.前回のエントリでMXDRVとN88BASICの二系統と書いたものの,MXDRVはその前身のMUDRVがmucom88を参考に作られていてmucom88はN88BASICが源流なので,結局N88BASICが全ての
次のページ
このページを最初にブックマークしてみませんか?
『Simple Inspiration』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く