忍者ブログ
研究室生活のメモ・・・だった過去の遺産。移転先→http://negimochix2.blogspot.com/
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

【Step1】 ニコ動徘徊中にこんな動画を見つける。



→ ヵヮ。゚+.(・∀・)゚+.゚ィィ!! なにこれ!?かわいすぎw


【Step2】 投稿コメに貼ってある、特設サイトへアクセス。
『8 bit darling project』特設サイト :http://www.sweetvacation.jp/8bitdx/

→ あー「8 bit darling project」か。そういえば、曲はまだ聴いてなかったなぁ。
  TUTAYAで先行発売!?初回特典に『初音ミク×Sweet Vacationスリーヴ・ケース』とな。


【Step3】 ケースの画像を確認する。
ケースの画像 :http://www.sweetvacation.jp/8bitdx/img/suribu-case.jpg

→ Σ(゚Д゚) 
→ ヽ(°▽、°)ノエヘヘヘヘ


【Step4】 TUTAYAへダッシュ!ε≡≡ヘ(* ´Д`*)ノ


みごとに釣られますたw

というか、もう、PV見た時点で9割方買うつもりでしたが、何か?


----

うん、いや、実のところ、この企画自体、前から興味あったんだ。

サマバケの原曲「8bit darling」の素材を無料公開して、ボーカロイドにリミックスする企画。
しかも、ボーカロイドを使ったものに対しては、著作権使用料も気にせず、非営利で公開可能。

もともとCD化する予定なかったらしいけど、
TUTAYAで本家サマバケのアルバム先行レンタル時に収録 → さらに企画が膨らんで今回のCD発売
となった模様。

----

とても面白い試みだよね。
著作権という壁を破ったことが(破ったというより、実際には回避した)、
音楽の新しい形を提案しているように思える。

CGM、消費者が自ら曲を完成形にもっていく文化が確実に根付いてきている、ということなんだろうな。
音楽に限らず、今後、消費者が気軽にクリエイティブを楽しむ時代が来るのかと思うとワクワクする。

ミクさんにはまさにその象徴となるキャラクターになってほしい。

だからこそ、くさもちは全力で嫁を応援します。

・・・要するに、絶好のカモということですね?わかりますw
PR
GDP企画の際必要になった,ActionScriptを使ったXMLの送受信.
Flash/AIRとPHP間でXMLのやりとりをするのに使った.

試行錯誤した結果,結局こんな感じでうまくいくことがわかった.
基本的に,URLRequestで送信データ,およびその設定を行い,
URLLoaderでリクエスト(送信),Completeイベントでphpからのレスポンスが帰ってくる仕組み.
package {
	import flash.events.Event;
	import flash.events.ProgressEvent;
	import flash.events.IOErrorEvent;
	import flash.events.EventDispatcher;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.net.URLRequestMethod;
	import flash.utils.ByteArray;
	
	/**
	* ConnectPHP
	* @auther kusamochi
	*/
	public class ConnectPHP extends EventDispatcher {
		public static const COMPLETE:String = "complete";
		public static const IO_ERROR:String = "io_error";
		public static const PROGRESS:String = "progress";
		public static const FAILED:String = "failed";
		
		private var _urlRequest:URLRequest;
		private var _result:XML;
		
		private var urlLoader:URLLoader;
		
		// コンストラクタ
		public function ConnectPHP() {
		}
		
		// XMLの送信
		public function sendAndLoad_XML(url:String, xml:XML):void {
			// 送信するデータを設定
			_urlRequest = new URLRequest(url);
			_urlRequest.contentType = "text/xml";
			_urlRequest.data = xml.toXMLString();
			// データはPOSTで送信
			_urlRequest.method = URLRequestMethod.POST;
			
			// URL
			urlLoader = new URLLoader();
			urlLoader.dataFormat = URLLoaderDataFormat.TEXT;
			
			// イベントリスナー登録
			urlLoader.addEventListener(Event.COMPLETE, completeHandler);
			urlLoader.addEventListener(ProgressEvent.PROGRESS, progressHandler);
			urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			urlLoader.load(_urlRequest);
		}
		
		// データロード完了のイベントリスナー
		private function completeHandler(event:Event):void {
			urlLoader.removeEventListener(Event.COMPLETE, completeHandler);
			urlLoader.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
			urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			// reusltに格納
			try {
				_result = new XML(event.target.data);
			}
			catch(error:TypeError) {
				// イベントをブロードキャスト
				dispatchEvent(new Event(FAILED));
				return;
			}
						
			// イベントをブロードキャスト
			dispatchEvent(new Event(COMPLETE));
		}
		
		// 送信中に一定間隔で発生するイベントリスナー
		private function progressHandler(event:ProgressEvent):void {
			// イベントをブロードキャスト
			dispatchEvent(new ProgressEvent(PROGRESS));			
		}
		
		// 送信エラーのイベントリスナー
		private function ioErrorHandler(event:IOErrorEvent):void {
			urlLoader.removeEventListener(Event.COMPLETE, completeHandler);
			urlLoader.removeEventListener(ProgressEvent.PROGRESS, progressHandler);
			urlLoader.removeEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
			// イベントをブロードキャスト
			dispatchEvent(new IOErrorEvent(IO_ERROR));
		}
		
		// 参照削除
		public function deleteReference():void {
			if(urlLoader) {
				urlLoader.addEventListener(Event.COMPLETE, completeHandler);
				urlLoader.addEventListener(ProgressEvent.PROGRESS, progressHandler);
				urlLoader.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
				urlLoader.close();
			}
			_urlRequest = null;
			_result = null;
		}
		
		// getter //////////////////////////////////////////////////////
		// result
		public function get result():XML {
			if(_result) return _result;
			else        return null;
		}
	}
}
ポイントは,Content-typeを"text/xml"にして,xmlのStringを送信すること.
当初,Content-typeを"application/octet-stream"(バイナリデータの意)として,
XMLをBinaryArrayで送っていたけど,
それだと送信先でヘッダーに文字化けが起きる.

ちなみに,PHP側では,
$inputStr = file_get_contents("php://input");
$xml = simplexml_load_string($inputStr);

print "<result>";
// Flash側に送りたいデータをほげほげ
print "</result>";
というように,file_get_contents("php://input")で,
生データを丸ごと読みこんでPHPのXMLクラスに変換.
Flash側に送りたいXMLは,PHP自身にタグをprintすればいい.
原因が見えてこない・・・。
問題は起きることは予想していたが、これほどとは・・・。


とりあえず、現時点で必要な修正をします。

今日中にはどうにか。




本当に謝るしかできない、自分の能力のなさに気づく。

特に、

「ソフトウェアを広く一般の方に配布する」

という部分に関しては、それほど経験がなかったのも問題を大きくしていることの一つ。


申し訳ないと、ただこれしか言えないのは悔しい。


 ミクトロニカ。

たまには、こんなゆったりした曲もよいかも。
むしろ、こういう曲の方がミクに合ってるのかもね。


古川Pの曲は今まで聴いたことなかったけど、↓のはイントロでマイリス余裕でした。


((((;゚Д゚))))ガクガクブルブル

自分の作ったものに信頼が持てないっす(;´Д`)


GDP始まってしまいました.
・・・たぶんバグあります.きっとあります.

自分でもなるべく問題が起きないように最大限の努力で保守を行う所存です.
それでも,何かあったときには・・・

どうか生暖かい目で.





一応イベント告知しておく.

GDPは国内総生産ではありませんw
DTX Maniaというゲームのイベント企画の1つです.

イベント本会場

イベントIRページ

このイベントのIR(インターネットランキング)サイトの制作・運営,およびIRを行うために必要なアプリケーション制作を担当をさせて頂きました.


そう.GDPイベントの主催者さんからの突然の制作依頼を受けて,作ることになったIRシステム.
そのときは,DTXは知らなかったし,自分は就活してたし,PHPもSQLも使ったことなかったし・・・.
正直,依頼を受けるべきか本当に迷った.

でも,気合いで受けてしまったw


結果として,一応の形にはなったけれども,
やっぱり自分の力不足を感じることが多かった.

デバッグでテストプレイしたとき,音楽のクオリティの高さに驚いた(゚д゚)!
そして,到底それらを支えるに値しないほど稚拙なものしか作れない自分orz



イベント関係者の皆様へ.
なんとか始まりました・・・がまだバグがある可能性は十分あるので,
今後もデバッグをしながら,保守を中心に作業していきます.

どうにか,無事にイベントが終了するよう努力する所存ですので,
よろしくお願い致します.
公式サイト:
http://pc.animelo.jp/rebridge/whatsnew/?p=090731_artist_KdsJe

嫁がキタ━ヽ(ヽ(゚ヽ(゚∀ヽ(゚∀゚ヽ(゚∀゚)ノ゚∀゚)ノ∀゚)ノ゚)ノ)ノ━!!!!


プロデューサーさん!ライブですよ!ライブ!




・・・(冷静になり)つーか,どうゆうこと?これw

ライブでヴァーチャルっておかしくね?

中の人じゃなくて,あえて「初音ミク」だし・・・一体どうなるんでしょう?

Infomation
くさもち 【中の人】
・くさもち
・ボカロ廃大学院生
・βからのニコ厨
・もちろん非リア充
・ミクZ4 第二期個人スポンサー

【メール】
・negimochi.tabetai(゚Д゚)gmail.com
(゚Д゚)→@

【その他やってるもの】
Twitter

・これは痛いピアプロ
・過去の遺産smart.fm

【作ったもの】
・製作に参加したDTX GDPメインサイト
で,実際に作ったIRページ
カレンダー
10 2024/11 12
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Heartsnative
『Heartsnative/MOSAIC.WAV×鶴田加茂 feat.初音ミク』応援中!
VOCALOID Ranking Watcher
新曲は常にチェックすべし。
真・フルみっくすプレイヤー
おすすめ記事
jubeat ripples
今更やってみる