<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>pxsta&#039;s Memo</title>
	<atom:link href="http://www.pxsta.net/blog/Index.php?feed=rss2" rel="self" type="application/rss+xml" />
	<link>http://www.pxsta.net/blog</link>
	<description>毎日の生活をメモる。</description>
	<lastBuildDate>Mon, 02 Jan 2012 14:08:14 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/Index.php" />

				<item>
		<title>2012年の目標</title>
		<link>http://www.pxsta.net/blog/?p=3281</link>
		<comments>http://www.pxsta.net/blog/?p=3281#comments</comments>
		<pubDate>Mon, 02 Jan 2012 14:08:14 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[雑記]]></category>
		<category><![CDATA[目標]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=3281</guid>
		<description><![CDATA[
あけましておめでとうございます。

C81の1日目以降ばーちゃん家に泊まってまったりとすごしています。
それでも電気外とC81は4日連続で行って参りました。

早朝に家出る本当の理由をばーちゃんに言えなくてすごく複雑で [...]]]></description>
			<content:encoded><![CDATA[<p>
あけましておめでとうございます。<br />
<br />
C81の1日目以降ばーちゃん家に泊まってまったりとすごしています。<br />
それでも電気外とC81は4日連続で行って参りました。<br />
<br />
早朝に家出る本当の理由をばーちゃんに言えなくてすごく複雑でした・・・ｗ<br />
<br />
<br />
相変わらずくそな生活を送っていますが今年もよろしくお願いします。<br />
<br />
<br />
<br />
<h3>2011年</h3>
2011年は大学2年生になったこともあって、中だるみやばす＼／な年でした。<br />
そしてとりたてて何かをしたわけでもありませんでした。<br />
<br />
無理やり捻り出すとすれば<br />
<br />
2月にプログラミングのバイトを友達に紹介してもらいました。<br />
5月にAndroid向けアプリ <a href="http://www.pxsta.net/blog/?p=2637">アニメ見てるなう(アニメ番組表)</a>を公開しました。<br />
その他川田まみライブ×2とC80,C81電気外<br />
<br />
あとは27インチディスプレイと机と自宅鯖とMBA購入でだいぶ部屋の環境が良くなりました！<br />
<br />
<br />
今となっては起きる→大学→バイト→アニメ消化→寝るのサイクルがすっかり定着していますが、<br />
プログラミングのバイトを紹介してもらったことはかなり大きかったと思います。<br />
<br />
バイト中にAndroidアプリの作り方とかnode.jsについて勉強させてもらったお陰で<br />
「アニメ見てるなう」のリリースに繋がったり趣味方面でのnode.jsの勉強が捗ったり<br />
<br />
その他、今まではフォルダをコピーしてバックアップ代わりにしていたけど<br />
gitがバイト先で流行って(？)いたのでそれを真似して使うようになったり<br />
<br />
そしてそもそもMacに触れたのも初めてだしMBA買う後押しにもなったし<br />
MBA買ってnode.jsやらRubyやらのモチベーションも上がったので、何だかんだでいい刺激を受けられたかなあと。<br />
<br />
<br />
社員さんにメイド喫茶連れて行ってもらったのもなにげに良かったかも。<br />
1人じゃさすがに入る勇気ないです・・・＼／<br />
<br />
<h3>とりあえず2012年の目標！</h3>
<ul>
	<li>Ruby on RailsでPV50000/day以上またはGoogleAdSense収益3万/月以上のWebサービス作る！</li>
	<li>「まともな」Androidアプリを公開する</li>
	<li>勉強会に参加してみる</li>
</ul>
<br />
<a href="http://sstter.net">SSったー！</a>はASP.NETでできていますが<br />
C#だとどうしてもWindowsServerに限られてしまうので<br />
この際一般的な環境で動くWebアプリも作れるようになろう、という魂胆。<br />
<br />
そしてIISでもnode.jsは使えるみたいですが、まあこの際node.jsとrubyでどこか適当なVPSで何かを作ってみよう、という魂胆。<br />
<br />
<br />
サーバとやりとりするAndroidアプリも作ってみたいです。<br />
ついでに言うと、「アニメ見てるなう」は「アニメ」だけに大きな声で公開できるようなものじゃないので<br />
普通に公開できるようなアプリを作りたいなあと。<br />
<br />
<br />
そしてつい先日、大学やら高専やらの情報系サークル同士の交流会に行って来ましたが<br />
「勉強会試しに行ってみなよ！！」とかやたらと勧められたので「じゃあ・・・ｗ」ということで。<br />
<br />
<br />
<br />
今年があと363日もあると思うと何でも出来る気しかしないのですが<br />
そうはいいつつ去年は大したことせずに終わってしまったので<br />
今年こそはやってやるです！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=3281</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=3281" />
	</item>
				<item>
		<title>Canvas+node.js+socket.ioで簡易オンラインゲーム作ってみた</title>
		<link>http://www.pxsta.net/blog/?p=3208</link>
		<comments>http://www.pxsta.net/blog/?p=3208#comments</comments>
		<pubDate>Sun, 18 Dec 2011 17:16:29 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[node.js]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[socket.io]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=3208</guid>
		<description><![CDATA[
Canvas+node.js+socket.ioで簡易オンラインゲーム作ってみました！
ほんとに簡易！



もともとはサークルの交流会のLTデモのためにちょちょっと作ったものなのでゲーム性はほとんどないです。
作成時 [...]]]></description>
			<content:encoded><![CDATA[<p>
Canvas+node.js+socket.ioで簡易オンラインゲーム作ってみました！<br />
ほんとに簡易！<br />
<p style="margin-top: 2em;">
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/12/OnlineBallAtack03.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/12/OnlineBallAtack03-1024x554.png" alt="" title="OnlineBallAtack03" width="650" height="352" class="alignnone size-large wp-image-3209" /></a><br />
<p style="margin-top: 3em;">
もともとはサークルの交流会のLTデモのためにちょちょっと作ったものなのでゲーム性はほとんどないです。<br />
作成時間は半日くらい。その後の細かな手直しに4時間くらい。<br />
<p style="margin-top: 2em;">
js暦2ヶ月、node.js暦1ヶ月という短さですが、node.jsとsocket.ioの手軽さには本当に感服です！<br />
<p style="margin-top: 3em;">
<h3>サンプル</h3>
とりあえず<a href="http://49.212.107.207:8080/" target="_blank">ブラウザでアクセス</a>。<br />
Chrome16、Firefox7で動作確認。表示だけならAndroid2.3でも可。<br />
<span style="font-size: small; color: rgb(255, 102, 0);">※Avastなどのウイルス対策ソフトが動いてるとサーバーと接続できないみたいです</span><br />
<p style="margin-top: 2em;">
2chのプログラミングスレで晒してもなんとか動いてたので、たぶん、普通に動くはずです。<br />
<p style="margin-top: 3em;">
<h3>操作方法</h3>
矢印キーで移動、スペースキーで加速<br />
物理をすっかり忘れてしまって未知なる力で動かしてるので、加速回りは怪しいかも<br />
<p style="margin-top: 2em;">
CPUもいますが勝手に自殺しちゃうので、<br />
Chromeのタブ+シークレットウィンドウ使うか、Firefox+Chromeでアクセスすれば自分対自分ができます。<br />
<p style="margin-top: 3em;">
<h3>開発環境</h3>
node.js 0.6.0<br />
socket.io 0.8.7<br />
express 2.5.1<br />
<p style="margin-top: 3em;">
<h3>ソース</h3>
最近git使い始めたので、なんとなくgithubにもあげてみました。<br />
<a href="https://github.com/pxsta/OnlineBallAtack-socketio">https://github.com/pxsta/OnlineBallAtack-socketio</a><br />
<p style="margin-top: 3em;">
<h3>仕様</h3>
サーバ側でゲームのメインループまわして移動量計算・あたり判定、<br />
クライアント側は定期的にボールの位置情報を受信してCanvasに描写してるだけです。<br />
<p style="margin-top: 3em;">
ユーザーの識別にはSocket.ioのセッションIDを使用。<br />
再接続/リロード時のためにExpressのセッションIDとSocket.ioのセッションIDを紐つけています。<br />
ExpressのセッションIDはサーバのみが保持して、クライアント側には他クライアントのセッションIDは知らせていません。<br />
<p style="margin-top: 3em;">
<h4>サーバ(メインループ部のみ)</h4>
<a href="https://github.com/pxsta/OnlineBallAtack-socketio/blob/master/src/server.js" tartget="_blank">src/server.js</a><br />
<pre class="brush: jscript; title: ; notranslate">
//メインループ
var run = function()
{
    setInterval(function(){
           update();
           sync();
        },1000.0/MyApp.config.FPS);
};

//ゲームデータの更新
var update = function()
{
    var ballArray = MyApp.ballList.toArray();
    for(var i=0;i&lt;ballArray.length;i++){
        //ここであたり判定とかボールが落ちてないかの確認とか
    }
    
    //各ボールを現在のスピード等に基づいて移動させる
    MyApp.ballList.update(param);
};

//クライアントに同期させる
var sync = function(){
    var ballArray = MyApp.ballList.toArray();
    var sendMessage = {ballList:MyApp.ballList.toJSON()};
    
    for(var i=0;i&lt;ballArray.length;i++){
        //各クライアントにすべてのボールの位置情報を送る
        var socketID = ballArray[i].getSocketID();
        io.sockets.socket(socketID).volatile.emit(&quot;updateBallInfo&quot;,JSON.stringify(sendMessage));
    }
}

</pre>
サーバ側で、updateとdrawを定期的に実行というありがちなメインループをまわす。<br />
今回はdrawをsyncに変えて、描写の代わりにクライアントにゲームの状態を送信。<br />
<p style="margin-top: 3em;">
<h4>クライアント</h4>
<a href="https://github.com/pxsta/OnlineBallAtack-socketio/blob/master/src/client/client.js">src/client/client.js</a><br />
<pre class="brush: jscript; title: ; notranslate">
//サーバからボールの情報を受信したときのイベントハンドラ
connection.on('updateBallInfo', function (msg) {
    var messageJson = JSON.parse(msg);
    
    //ボールの状態を更新する
    MyApp.ballList.get(messageJson.ballList[i].socketID).updateValue(messageJson.ballList[i]);    
});

//メインループ
var run = function()
{    
    MyApp.mainLoopID=setInterval(function()
    {
        update();
        draw();
    },1000.0/MyApp.config.FPS);
};

var update = function(){
    //落ちたボールをリストから削除したり
    //自分に落ちてるフラグがセットされてたら画面メインループ停止させたり
    //サーバから受信した各ボールの情報をもとにゲームオーバー判定とかするだけ。
};

//canvasに描写する
var draw = function()
{
    var ctx = MyApp.context;
    var offset = MyApp.getOffset();
    
    //Canvasをゼロクリアする
    ctx.clearRect(0,0,MyApp.canvasSize.width,MyApp.canvasSize.height);


    //マップを描写
    MyApp.map.draw(ctx,MyApp.getOffset());
    
    // ボールを描写
    MyApp.ballList.draw(ctx,MyApp.getOffset());
     
};
</pre>
&#8220;updateBallInfo&#8221;としてサーバから定期的に送られてくるボール情報を受信して、ローカルに各ボールの状態を更新・保存、<br />
その状態を元にボールを描写。<br />
<br />
<h4>ボールの移動</h4>
<a href="https://github.com/pxsta/OnlineBallAtack-socketio/blob/master/src/client/client.js">src/client/client.js</a><br />
<pre class="brush: jscript; title: ; notranslate">
$(window).keydown(function(e){
    //サーバにキー押下情報を送る
    connection.emit(&quot;keydown&quot;,code);
}
</pre>
ボールの移動は、<br />
クライアント側はキーイベントを監視して押されたボタンの情報をサーバに送るのみ。<br />
<p style="margin-top: 3em;">
<a href="https://github.com/pxsta/OnlineBallAtack-socketio/blob/master/src/server.js" tartget="_blank">src/server.js</a><br />
<pre class="brush: jscript; title: ; notranslate">
//クライアントがキーを押した時
connection.on('keydown',function(code){
    var moveVector={x:0,y:0,mode:&quot;normal&quot;};
    if(37&lt;=code&amp;&amp;code&lt;=40||code==32){
        if(code==37){
            moveVector.x+=(-1);
        }
        else if(code==39){
            moveVector.x+=1;
        }
        else if(code==38){
            moveVector.y+=(-1);
        }
        else if(code==40){
            moveVector.y+=1;
        }
        else if(code==32){
            //ターボ
            moveVector.mode=&quot;tarbo&quot;;
        }
    }
    //ボールの行動バッファに加える
    MyApp.ballList.get(connection.id).setActionBuffer(function(){
        MyApp.ballList.get(connection.id).addSpeed(moveVector);
        MyApp.ballList.get(connection.id).setMode(moveVector.mode);
    });
});
</pre>
サーバ側は受信したキー押下情報を元にスピードの上げ下げ。<br />
バッファに1つだけ保存して、次のupdate内で実行。<br />
<p style="margin-top: 3em;">
クライアントからkeydownメッセージ受信した時点でスピード更新してもいい気がしたけど、<br />
あるクライアントはメッセージ送信が1ms/回、あるクライアントは500ms/回とかだとまずい気がしたのでバッファに1つだけ保存して、updateで定期的に実行するようにしました。<br />
<p style="margin-top: 4em;">
<h3>とりあえず</h3>
updateとdrawの定期実行というよくあるメインループをサーバ側でやらせて、<br />
drawをsyncに変えて描写の変わりにクライアントにゲーム状態を送るようにして、<br />
クライアントではupdateの代わりにイベントハンドラでゲームの状態を受信して、それをdrawで定期的に描写してるだけです。<br />
<p style="margin-top: 3em;">
チート的なことをされないために、あたり判定などのメインループのコードはサーバ側だけに書いてます。<br />
ボール移動の際も、クライアントからキーコードを送ってもらうだけで、具体的な処理はサーバ側で行っています。<br />
<p style="margin-top: 3em;">
<a href="https://github.com/pxsta/OnlineBallAtack-socketio/blob/master/src/client/ballAtack.js">ballAtack.js</a>でボールの基本的なクラスを定義して、<a href="https://github.com/pxsta/OnlineBallAtack-socketio/blob/master/src/serverBallAtack.js">serverBallAtack.js</a>でballAtack.jsの各クラスを継承して、ExpressのセッションID・ボール移動処理などのサーバのみに必要な値・メソッドを追加しています。<br />
<p style="margin-top: 4em;">
<h3>問題点</h3>
<ul>
	<li>サーバは60FPSでゲームの状態を送信してますが、それに通信速度が追いつかないと問答無用でカクカクします。</li>
	<li>通信途切れたら動けません(再接続はできます)</li>
	<li>クライアントからsocket.emit(&#8220;hoge&#8221;,&#8221;あばばばば・・・(1MB分続く・・・)&#8221;)みたいなの実行されて巨大なデータ送られ続けたらどうなるんだろう？</li>
</ul>
これでも読めば何か変わるんでしょうかね。<br />
<iframe src="http://rcm-jp.amazon.co.jp/e/cm?lt1=_blank&#038;bc1=000000&#038;IS2=1&#038;nou=1&#038;bg1=FFFFFF&#038;fc1=000000&#038;lc1=0000FF&#038;t=svkinfo-22&#038;o=9&#038;p=8&#038;l=as4&#038;m=amazon&#038;f=ifr&#038;ref=ss_til&#038;asins=4774145807" style="width:120px;height:240px;" scrolling="no" marginwidth="0" marginheight="0" frameborder="0"></iframe><br />
<br />
<p style="margin-top: 4em;">
<h3>敷居の低さ</h3>
そもそもこれを作ったのは大学のサークル同士の交流会のLTのためなのですが、<br />
<br />
前日になって、<br />
スライドできてない＞＜→node.js+socket.ioのことでも話すか！→デモでも作って穴埋めしよう→これならサクッと作れそう！<br />
という単純な動機で作りました。<br />
<p style="margin-top: 3em;">
js暦2ヶ月、node.js暦1ヶ月ちょいの自分ですが、それでも半日程度で作ることができました。<br />
そもそも、通信部分はサーバ/クライアント合わせてわずか100行ちょっとで、その他は普通のゲームと同じです。<br />
<p style="margin-top: 3em;">
ゲームに限らず、webサービスでリアルタイムなコンテンツをサクッと追加するのにも使えそうです！<br />
何かおもしろいものないかなあ。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=3208</wfw:commentRss>
		<slash:comments>3</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=3208" />
	</item>
				<item>
		<title>土日なにしてるの？</title>
		<link>http://www.pxsta.net/blog/?p=3176</link>
		<comments>http://www.pxsta.net/blog/?p=3176#comments</comments>
		<pubDate>Sun, 04 Dec 2011 19:36:37 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[雑記]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=3176</guid>
		<description><![CDATA[

クリスマスが近いというのに最近の胸キュン体験がましろ色シンフォニーと世界一初恋だけで割りと死にたい
そして最近ふとTwitter開くとハルbotのツイートがしばしば目に入ってなんかハルやっぱり性格よすぎて辛い、最近遅 [...]]]></description>
			<content:encoded><![CDATA[<p>
<p style="margin-top: 2em;">
クリスマスが近いというのに最近の胸キュン体験がましろ色シンフォニーと世界一初恋だけで割りと死にたい<br />
そして最近ふとTwitter開くとハルbotのツイートがしばしば目に入ってなんかハルやっぱり性格よすぎて辛い、最近遅刻しすぎてじゃっかんくそ状態。穹ちゃんむぎゅうー。<br />
<p style="margin-top: 5em;">
それはともかく<br />
バイト先で、新しい人とのGoogleドキュメントの共有がスタート。<br />
<p style="margin-top: 2em;">
で、おそらくgmailのアドレスからGoogle+の「友達候補」とかに表示されて、G+のアイコンがシオンだけに怪しまれたんですかね。<br />
<p style="margin-top: 2em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">「俺君ってアニメとか好きなの？」</span><br />
「アニメはどちらかと言えば見ないほうだと思いますよー(学科の中だと少ないほう)」<br />
<p style="margin-top: 1em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">「じゃあ土日とかってなにしてるの？」</span><br />
<p style="margin-top: 2em;">
　<span style=" font-size: medium; color: rgb(0, 128, 0);">俺「ぐぬぬ…」</span><br />
<p style="margin-top: 4em;">
別にやましいことしてるわけじゃないんだけど、特にこれといって何かをしてるわけじゃないんですよね。<br />
<p style="margin-top: 2em;">
たとえば先週は川田まみのライブにいったけど、先々週はたしか引き篭もりニートしてた気がするし。<br />
<p style="margin-top: 4em;">
この土日はと言えば、<br />
<p style="margin-top: 2em;">
金曜深夜<br />
シャナ,世界一初恋,若干作業ゲーなプログラミング<br />
<br />
土曜<br />
15時起床,作業ゲーなプログラミング続き,UN-GOやらギルティやら消化<br />
<br />
日曜<br />
13時起床,デバッグ,ななとき体験版2,アニメ見つつプログラミング<br />
<p style="margin-top: 4em;">
やっぱりシャナはおもしろい。<br />
世界一初恋もましろもキュンキュン出来ていい。リアルでできない分ここでキュンキュンするしかない。<br />
<br />
作業ゲーなプログラミングは<a href="http://sstter.net">SSったー！</a>の手入れ。久しぶり。<br />
ちょっとはレスポンスの遅さ改善されるかと思って、データベースをxmlからsqlite3に変えた。気持ち軽くなったかな？<br />
<br />
Rubyの基礎少し。<br />
<br />
ななときは期待度MAX。不思議展開バトル展開ハラハラ。しかもOP川田まみ！！<br />
<p style="margin-top: 5em;">
なんだけど、とりたてて何かしたわけじゃないし<br />
おそらく来週また「土日なにしてたの？」って聞かれてもこれだ！とは言えないんだなあ。<br />
<p style="margin-top: 5em;">
いま個人で稼働中のプロジェクトが特になくてなんか退屈。<br />
HTML5でノベルゲーうんぬんを再開しようかと思いつつも諦め半分<br />
<p style="margin-top: 2em;">
<a href="http://twister.cc/">Twister</a>すごい。node.js+socket.io。見た目も機能もTwitterそのまんま。<br />
<a href="http://logsoku.com/thread/hibari.2ch.net/news4vip/1321705651/">5時間×2ヶ月の作業時間で開発</a>とかどこのニートｗｗｗｗかと思ったらまさかの大学生ｗｗｗｗ<br />
2ヶ月もの間、途中で投げ出さずに最後まで作りきったのすごいです。<br />
<p style="margin-top: 3em;">
こんな風にVIPで堂々と公開出来るクオリティーのもの作れるようになりたいです。<br />
なんか学祭終わってからノベルゲーうんぬんの熱が覚めてしまって結局完成させられず。<br />
<p style="margin-top: 5em;">
よくわからないけど<br />
実を言うとこの土日の半分近くはだらだらしてたんじゃないかって感じで、<br />
SSったーも、ASP.NETやってて意味あるのかなあとか消極的になりながらの更新で、<br />
こうなったらはやくrubyの基礎覚えて、あとは実際に作りながら覚えて行こう、<br />
とか寝る前にふと湧きでたやる気を明日も思い出すための記事でした。<br />
<p style="margin-top: 4em;">
というか休みが3日あれば<br />
1日目：アニメ＋惰眠<br />
2日目：プログラミング<br />
3日目：えｒｇ<br />
ってやりたいこと全部できるのにね！<br />
<br />
だらだらして結局ダメな予感しかしませんけど！<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=3176</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=3176" />
	</item>
				<item>
		<title>MacBook Air11インチ届きました</title>
		<link>http://www.pxsta.net/blog/?p=3146</link>
		<comments>http://www.pxsta.net/blog/?p=3146#comments</comments>
		<pubDate>Sun, 27 Nov 2011 18:14:02 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[雑記]]></category>
		<category><![CDATA[感想]]></category>
		<category><![CDATA[購入]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=3146</guid>
		<description><![CDATA[
ということでMBA11インチ特盛り届きました！先週の月曜に。



前々からほしいと思っていたのですが、まあうだうだ悩んでるなら欲しいと思ったうちに買ってしまおうということで！
DHDのときもそうでした。

Pro/M [...]]]></description>
			<content:encoded><![CDATA[<p>
ということでMBA11インチ特盛り届きました！先週の月曜に。<br />
<p style="margin-top: 2em;">
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/11/MBA11_1.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/11/MBA11_1-1024x768.jpg" alt="" title="MBA11_1" width="586" height="440" class="alignnone size-large wp-image-3147" /></a><br />
<p style="margin-top: 4em;">
前々からほしいと思っていたのですが、まあうだうだ悩んでるなら欲しいと思ったうちに買ってしまおうということで！<br />
DHDのときもそうでした。<br />
<p style="margin-top: 2em;">
Pro/Mini持ってないゆえん、スペックは特盛り(i7/4GB/256GB)にしました。<br />
この1週間ちょびちょびと使ってみましたが、やはり買ってよかったです！<br />
<p style="margin-top: 4em;">
当然のことながら軽い、軽すぎる。そして小さい！(そして地味に今までの白MB13インチよりも解像度高いのね)<br />
<p style="margin-top: 3em;">
かばんにスッと入ってスッと出せてそもそも背負ってるのか分からないくらいの重さに感動<br />
「あーどうして動かなかったんだろう」、ってモヤモヤしてる時とかも帰りのバスでスッとだせて便利です。<br />
<p style="margin-top: 4em;">
メモリ4GBなのは気になったけどSSDのおかげか、スワップも気にならず。<br />
MB13インチ、メモリ2GBのときは死ぬ思いしてました。まじで。<br />
<p style="margin-top: 4em;">
バッテリーは公称5時間で正直、短め。<br />
EclipseでやらMonoDevelopで作業して4時間前後でしょうか。<br />
<p style="margin-top: 2em;">
まあそこらへんは<a href="http://www.act2.com/hyperjuice">hyperjuice</a>で補えそう。<br />
モバイルブースター3つ持ち歩くのと同じくらいの重さですかね。普段2つゆえんまあそこは気にならないかな。<br />
<p style="margin-top: 4em;">
そして家ではコスパ抜群のDELLの27インチIPS液晶に繋ぐことでかなり捗ります。2560×1440。<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/11/MBA11_2.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/11/MBA11_2-1024x767.jpg" alt="" title="MBA11_2"　width="586" height="440"class="alignnone size-large wp-image-3156" /></a><br />
<p style="margin-top: 4em;">
気になるのは、重たい作業させたときに熱くなってファンもうるさくなったり、(クリアカバーで覆ってるせいもある？)<br />
そして本体が薄い分、もちろんキーボードも浅い。<br />
<br />
でもその他動作面ではかなり満足！<br />
<p style="margin-top: 4em;">
そして実は11インチと13インチで1週間くらい迷っていました・・・ｗ<br />
<br />
が、ProならまだしもAirで13インチは大きくもなく小さくもなく中途半端な気がしたのと、<br />
近くの電気屋で何度か実機触ってみて、11インチの小ささに改めて憧れてしまって最終的に11にしました。<br />
<p style="margin-top: 3em;">
そしてやはり11インチにしてよかったです！かばんにスッと入ってスッと出せるし重さを感じさせないのは本当に驚きでした。<br />
まだ買ってから1週間ですが、動作に不満もなし。買ってよかったです！<br />
<p style="margin-top: 4em;">
これでnode.jsとruby捗るで！！乞うご期待<br />
</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=3146</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=3146" />
	</item>
				<item>
		<title>MAMI KAWADA m.a.l.l LIVE 2nd stage 1日目行ってきました</title>
		<link>http://www.pxsta.net/blog/?p=3128</link>
		<comments>http://www.pxsta.net/blog/?p=3128#comments</comments>
		<pubDate>Sun, 27 Nov 2011 18:12:18 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[イベント]]></category>
		<category><![CDATA[ライブ]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=3128</guid>
		<description><![CDATA[
ということで半年ぶりの川田まみのライブに行ってまいりました。

今回はバラードも多かったし新曲もあって、やっぱりやっぱり川田まみすごくよかった！！
そして聞きたかったIMMORALも聞けて文句なしでした！！

そして今 [...]]]></description>
			<content:encoded><![CDATA[<p>
ということで半年ぶりの川田まみのライブに行ってまいりました。<br />
<p style="margin-top: 2em;">
今回はバラードも多かったし新曲もあって、やっぱりやっぱり川田まみすごくよかった！！<br />
そして聞きたかったIMMORALも聞けて文句なしでした！！<br />
<p style="margin-top: 3em;">
そして今回もまさかの3列目というね！！<br />
<p style="margin-top: 2em;">
となりは身長低めのおにゃのこだったけどマスクしてて顔が見えなかったｗそして低いながらジャンプしまくっててちょっと驚いたｗ<br />
<p style="margin-top: 5em;">
序盤はバラード多めな感じ。<br />
風と君を抱いてとか明日への涙とか雨とか。<br />
<p style="margin-top: 2em;">
最初は8曲くらい連続で来た気がする。長いｗｗ<br />
<p style="margin-top: 4em;">
で、MC。<br />
OUT FLOWリリース後の打ち上げで、トイレで寝てしまったんだとか。なんだかツンとしたイメージとあわなくてふひひｗｗ<br />
<p style="margin-top: 3em;">
そしてこの11月で「川田まみ」としてデビューしてからちょうど10年、<br />
これからも新しいことにどんどん挑戦していくつもりなんだとか。<br />
<p style="margin-top: 3em;">
ということで、自らギター持ちつつ弾き語り！ｗ<br />
<p style="margin-top: 3em;">
緋色の空やらSee visionSやらNo buts!来てそれはもう激アツｗｗ<br />
緋色の空は何度聞いてもやっぱりいいですね！！<br />
<p style="margin-top: 4em;">
とか思ってたらあっという間に<br />
「その次これで最後になります。これからもよろしくお願いしますー。」<br />
<p style="margin-top: 4em;">
まじですかー！もうそんな時間ですかい<br />
といいつつももちろんアンコール<br />
<p style="margin-top: 4em;">
そしてアンコールでまさかのIMMMORAL！！！<br />
<iframe width="420" height="315" src="http://www.youtube.com/embed/3Ugunb2nRFg" frameborder="0" allowfullscreen></iframe><br />
<p style="margin-top: 2em;">
これが一番聞きたかったゆえん<br />
なんか思わず鳥肌立ってしまったｗｗ<br />
<p style="margin-top: 2em;">
しかも服装がなんか露出度高くなってたｗ<br />
その格好で「インモラル・・・インモラル・・・」とかボソボソ言うのはなんかえろかったｗ<br />
<p style="margin-top: 4em;">
そしてまあなんと今回のライブ初出の新曲もありまして！！<br />
しっとり系の流れる感じでですごくよかったですね。<br />
<p style="margin-top: 5em;">
バラードの分量多目でしたがやはり川田まみのしっとり系はいいですね。<br />
寒い中行ってよかった！来年もぜひぜひワンマンライブを！<br />
<p style="margin-top: 2em;">
そしてななときのOPフル、EDに期待！<br />
<br />
<p style="margin-top: 6em;">
&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br />
ちなみにこんな感じでした。<br />
<br />
風と君を抱いて<br />
明日への涙<br />
intron tone<br />
Beehive<br />
TRILL<br />
雨<br />
空の森で<br />
a frame<br />
<br />
-ギター弾き語り-<br />
dilemma<br />
緋色の空<br />
sence<br />
<br />
See visionS<br />
masterpiece<br />
No buts!<br />
portamento<br />
<br />
アンコール<br />
IMMORAL<br />
Half way（新曲）<br />
CARPE DIEM</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=3128</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=3128" />
	</item>
				<item>
		<title>もっとゆとりたいもっとニートしたい</title>
		<link>http://www.pxsta.net/blog/?p=3077</link>
		<comments>http://www.pxsta.net/blog/?p=3077#comments</comments>
		<pubDate>Sun, 30 Oct 2011 16:11:50 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[雑記]]></category>
		<category><![CDATA[そっち]]></category>
		<category><![CDATA[エロゲ]]></category>
		<category><![CDATA[日記]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=3077</guid>
		<description><![CDATA[
金曜はそもそも授業1コマしかないわけだが、まさかの休校でまるまる1日休み。
で、事実上の3連休だったわけですが、

大学休みだとこんなにもゆとりが出来るんですね！！！

・今更ながらGUNSLINGER GIRL1~1 [...]]]></description>
			<content:encoded><![CDATA[<p>
金曜はそもそも授業1コマしかないわけだが、まさかの休校でまるまる1日休み。<br />
で、事実上の3連休だったわけですが、<br />
<p style="margin-top: 2em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">大学休みだとこんなにもゆとりが出来るんですね！！！</span><br />
<p style="margin-top: 4em;">
・今更ながらGUNSLINGER GIRL1~12読了<br />
・翠の海フルコン<br />
・「JavaScriptパターン ―優れたアプリケーションのための作法」半分くらい了<br />
・平均睡眠時間7時間<br />
・その他ずっとニート！！！<br />
<p style="margin-top: 2em;">
なんというかひさびさにニート満喫できたっていうか、毎週3連休にしてほしいです。<br />
<p style="margin-top: 4em;">
木曜日はゴルフ部の代替＆引継ぎの飲み会だったわけだが特に変わったことなしｗ。<br />
<p style="margin-top: 2em;">
で、終わった後は1年生も含めてカラオケに行く予定だったけど<br />
次の日1限から実験らしいから2人で近くの満喫。<br />
<p style="margin-top: 4em;">
メジャーなもの読んでおくか、ということでGUNSLINGER GIRLをテキトウに。7時間かけて12巻しか読めなかったけどｗｗ<br />
ほとんど漫画読まないゆえん比較対象なくてあれだけど、まあ普通にすらすら読めてよかったのかな。<br />
<p style="margin-top: 4em;">
で、帰宅、睡眠。<br />
<p style="margin-top: 3em;">
でまあもちろん寝てる間にヤマトがやってくるも気づくわけもなく不在通知。<br />
お届けものです！！ﾄﾞﾝﾄﾞﾝﾄﾞﾝﾄﾞﾝとかやってくれれば起きれたかもしれないのにねｗ<br />
<p style="margin-top: 3em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">ということで、インターホンの音あらかじめ登録しておいて、それが聞こえたら大音量でアラーム鳴らす的な、昼寝時の対通販用Androidアプリだれかお願いします、ほんとに。</span><br />
<p style="margin-top: 4em;">
ということで再配達依頼、翠の海到着！！<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/10/434837722.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/10/434837722-300x225.jpg" alt="" title="434837722" width="300" height="225" class="alignnone size-medium wp-image-3091" /></a><br />
<p style="margin-top: 2em;">
で、金土とやってフルコン。体験版部分スキップで10時間ちょい、短かったような気もする・・・ｗ<br />
<p style="margin-top: 3em;">
とりあえずOPとBGMはほんとによかったですね。<br />
<iframe width="560" height="315" src="http://www.youtube.com/embed/IbDwODNmPSU?hd=1" frameborder="0" allowfullscreen></iframe><br />
<p style="margin-top: 4em;">
<span style=" font-size: medium; color: rgb(0, 128, 0);">昼間は可愛いキャラでも、たまに現れる黒い本性がなんとも良かった。<br />
なんというか、みんな黒い性格もってたり前半BADエンドラッシュだったのがゾクゾクしてよかったかな。</span><br />
<p style="margin-top: 3em;">
そりゃあ一日中いい顔なんてしてられないし人前では言えないこともありますよね。なんてｗ<br />
<br />
<p style="margin-top: 4em;">
BADのゾクゾクからの個別イチャラブのギャップ、なんの躊躇いもなく人殺しちゃう2人、そして「コイツ明らか悪いやつじゃねえかｗｗｗ」って人が個別入ったら「まあしょうがないのかな・・・」なんて思えちゃうあたりがよかったかな。<br />
<p style="margin-top: 2em;">
まとまってたしOPED・BGMよかったし一応殺り合ってはくれたしまあ買ってよかったんじゃないかなと。<br />
<p style="margin-top: 5em;">
でまあ日曜日はいつもどおり13時起床。<br />
こんな生活ダメだ、って分かっててもそう簡単には変えられないんですよね。<br />
<p style="margin-top: 3em;">
で、なんか体だるいし商業のやった後に学際向けの適当なノベルゲーの作業するモチベーションも上がらず、<br />
なんとなく<a href="http://www.amazon.co.jp/gp/product/4873114888/ref=as_li_ss_tl?ie=UTF8&#038;tag=svkinfo-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=4873114888">JavaScriptパターン ―優れたアプリケーションのための作法</a><img src="http://www.assoc-amazon.jp/e/ir?t=svkinfo-22&#038;l=as2&#038;o=9&#038;a=4873114888" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />をちょこちょこと。<br />
<p style="margin-top: 2em;">
JavaScriptの文法やら定石やらはさっきのと<a href="http://www.amazon.co.jp/gp/product/477414813X/ref=as_li_ss_tl?ie=UTF8&#038;tag=svkinfo-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=477414813X">パーフェクトJavaScript</a><img src="http://www.assoc-amazon.jp/e/ir?t=svkinfo-22&#038;l=as2&#038;o=9&#038;a=477414813X" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />で終わりにしようかと。<br />
<p style="margin-top: 5em;">
・<a href="http://www.223soft.net/54">Rubyを始めたい方向けまとめ(2011年秋版)</a><br />
なんて記事もちょうど上がってきたゆえんこの暇な後期はいろいろやりたいですね。<br />
<p style="margin-top: 4em;">
まずは学際をテキトウに！そしていいかげんリセリシアス以外の√と夏空カナタを消化せねば。<br />
<p style="margin-top: 4em;">
当然のことながら明日はくそめんどうな大学なわけですが<br />
もっとニートしたかったです！！！！！</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=3077</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=3077" />
	</item>
				<item>
		<title>今後の予定</title>
		<link>http://www.pxsta.net/blog/?p=3056</link>
		<comments>http://www.pxsta.net/blog/?p=3056#comments</comments>
		<pubDate>Sun, 23 Oct 2011 19:37:20 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[雑記]]></category>
		<category><![CDATA[目標]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=3056</guid>
		<description><![CDATA[
ということで学祭に向けてテキトウに製作中のHTML5とJavascriptでギャルゲーを作ろうというあれですが、

まあそもそも大学もゆとりでくそ楽な時間割なわけで、それでもくそ面倒な授業ばかりなのですが、

まあ何だ [...]]]></description>
			<content:encoded><![CDATA[<p>
ということで学祭に向けてテキトウに製作中の<a href="http://www.pxsta.net/blog/?p=2971">HTML5とJavascriptでギャルゲーを作ろうというあれ</a>ですが、<br />
<p style="margin-top: 2em;">
まあそもそも大学もゆとりでくそ楽な時間割なわけで、それでもくそ面倒な授業ばかりなのですが、<br />
<p style="margin-top: 3em;">
まあ何だかんだで今期は世界一初恋2・ましろ・ギルティクラウン・シャナFINALが面白そうでして、<br />
<p style="margin-top: 3em;">
シャナFINALは期待してただけにOP/EDの残念感は正直あるんだな、これ。<br />
<p style="margin-top: 3em;">
<a href="http://www.youtube.com/watch?v=GYLpQuegpEA">ななときのOP</a>がついに公開されたわけですが、まあ安定の川田まみクオリティでして、EDもわくてか。<br />
<p style="margin-top: 3em;">
先週は応用情報受けてきたわけですが春はノー勉強で当然ながら撃沈したゆえんまあ今度こそ受かりたいわけでして、<br />
まあ午後はハッシュ法のオープンアドレス法が出たわけで「あ！これ授業でやったところ！！」となったようなならなかったようなあれでして、<br />
<p style="margin-top: 3em;">
ほとんど毎日午後登校ゆえん、くそみたいな新学期を過ごしてまいりました。<br />
<p style="margin-top: 4em;">
<h3>今後の予定</h3>
<ol>
	<li>キスまおコンプ</li>
	<li>フェードイン/フェードアウトの使い道考える</li>
	<li>足りないもの探す</li>
	<li>「localStorage」「Application Cache」を使ってみる</li>
	<li>翠の海</li>
	<li>2chスレから辞書作る</li>
	<li>学祭、そしてβ版公開</li>
	<li>夏空カナタ</li>
	<li>どこかにnode.js使った機能をねじ込む</li>
	<li>ついでにruby始める</li>
</ol>
<p style="margin-top: 3em;">
そもそもなんで学祭の製作物をHTML5のノベルゲーにしたかといえば、node.jsのためにJavaScriptの練習したかったのと、<br />
なんかHTML5が流行ってるっぽかったからでして<br />
<p style="margin-top: 3em;">
最近の記事だけどnode.jsやらHTML5やらこれから激アツなんじゃないのとかなんてわくてか。<br />
・<a href="http://www.atmarkit.co.jp/fwcr/design/ux/d89clip28/01.html">【第21回 HTML5とか勉強会】ゲーム開発はHTML5+スマホベースが新潮流 &#8211; ＠IT</a><br />
・<a href="http://ameblo.jp/ca-1pixel/entry-11009598050.html">HTML5 Web Applicationのつくりかた</a><br />
・<a href="http://www.slideshare.net/sousk/javascript-7989613">JavaScriptでゲーム制作＠実務現場レポ</a><br />
・<a href="http://d.hatena.ne.jp/hiratara/20110823/1314077158">今日は JavaScript ゲーム製作勉強会 Vol.2 の日です &#8211; a geek born in Tomakomai</a><br />
<p style="margin-top: 1em;">
これに比べたらノベルゲーとかしょぼすぎて話しにならないレベル。画像やらシナリオやら抜き放題ですし、<br />
そして今は個人的には今リセリシアスの可愛さが熱い。<br />
<p style="margin-top: 5em;">
でまあ大学行くのがめんどうといっても今期はなんだかんだでゆとりの午後登校ばっかりでして、<br />
<p style="margin-top: 3em;">
部屋の片隅でいつぞや組み立てた録画用鯖が延々と動いてるわけなのですが、<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/10/IMAG1041.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/10/IMAG1041-225x300.jpg" alt="" title="IMAG1041" width="225" height="300" class="alignnone size-medium wp-image-3070" /></a><br />
<p style="margin-top: 2em;">
深夜アニメしか録画しないのに日中も全力で稼動しててなんかもったいない。<br />
ついでに、いつまでもC#＆ASP.NETで環境がWindows限定なことをやってるわけにもいかないので<br />
<p style="margin-top: 4em;">
暇ないま、Rubyをやってみようかと！あわよくばrailsも！<br />
<p style="margin-top: 3em;">
PythonはGAE使えるくらいしかメリットなさそうだし、PHPは、まあいいかな。という感じで。<br />
<p style="margin-top: 5em;">
どうでもいいけど世界一初恋2、どうして男同士の三角関係できゅんきゅんしなきゃいけないんだｗｗｗｗｗｗ</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=3056</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=3056" />
	</item>
				<item>
		<title>HTML5でノベルゲーα版v1.0</title>
		<link>http://www.pxsta.net/blog/?p=2971</link>
		<comments>http://www.pxsta.net/blog/?p=2971#comments</comments>
		<pubDate>Sun, 23 Oct 2011 19:02:16 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[ゲーム製作]]></category>
		<category><![CDATA[2ch]]></category>
		<category><![CDATA[HTML5]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[SSNovel]]></category>
		<category><![CDATA[ギャルゲー]]></category>
		<category><![CDATA[大学]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=2971</guid>
		<description><![CDATA[
HTML5でノベルゲー α1

なんとなく始めたHTML5とJavascriptでギャルゲーを作ろうというあれですが、
学際があと2週間ちょい？で案外時間ないということで実働サンプル。右下のボタンで画面サイズ変更可能。 [...]]]></description>
			<content:encoded><![CDATA[<p>
<h3>HTML5でノベルゲー α1</h3>
<p style="margin-top: 2em;">
なんとなく始めた<a href="http://www.pxsta.net/blog/?p=2842">HTML5とJavascriptでギャルゲーを作ろうというあれ</a>ですが、<br />
学際があと2週間ちょい？で案外時間ないということで実働サンプル。右下のボタンで画面サイズ変更可能。<br />
<p style="margin-top: 3em;">
<a href="http://pxsta.net/test/SSNovel/a1/" target ="_blank">HTML5でノベルゲーα v1.0　サンプル</a><br />
<p style="margin-top: 1em;">
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/10/SSNovel_a1_01.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/10/SSNovel_a1_01-1024x644.jpg" alt="" title="SSNovel_a1_01" width="347" height="218" class="alignnone size-large wp-image-2972" /></a>　<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/10/SSNovel_a1_02.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/10/SSNovel_a1_02-1024x644.jpg" alt="" title="SSNovel_a1_02" width="347" height="218" class="alignnone size-large wp-image-2973" /></a><br />
<p style="margin-top: 3em;">
肝心のスクリプト部分は、まだ1スレしか変換してないゆえんスクリプトに直接埋め込むくそっぷり<br />
最終的にはSSったー！のコンテンツにする予定。<br />
<p style="margin-top: 2em;">
Google Chrome14,Firefox7,iOS4のsafari、Android2.2/2.3のデフォルトブラウザで動作確認。<br />
ちなみに<a href="http://stackoverflow.com/questions/3069124/playing-html5-audio-in-android-browser" target="_blank">Android2.2以下はAudioタグ非対応</a>のため、Android2.2以下では音が出ません。<br />
<p style="margin-top: 2em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">そして、ついさっきIE8で開いたらいつもどおり動きませんでした＼／</span><br />
<p style="margin-top: 5em;">
じつは<a href="http://pxsta.net/test/SSNovel/a0/" target="_blank">α v0.0？</a>がだいぶ前に出来ていたのですが、AndroidやらiPodTouchで重かったり、<br />
JavaScriptもHTML5もイマイチな頃にやっつけで書いていたのでまた書き直しました。<br />
<p style="margin-top: 5em;">
スクリプトの書式はうぃんどみるの<a href="http://cs2.suki.jp/index.html">CatSystem2</a>をチラ見してから決めました。<br />
いやあ、さすがホンモノ。すごいですなあ。<br />
<p style="margin-top: 2em;">
今回サポートしたのは<br />
<ul>
	<li>背景の描写</li>
	<li>立ち絵の表示/削除[位置,フェードイン,フェードアウト]</li>
	<li>キャラアイコンの描写/削除</li>
	<li>メッセージの表示</li>
</ul>
<br />
<br />
エンジン自体の機能は<br />
<ul>
	<li>画面サイズにフィット</li>
	<li>バックログ</li>
        <li>バックログからシーンジャンプ<span style="color: rgb(0, 128, 0);">←簡単だけどこれ個人的に欠かせないｗ</span></li></li>
	<li>マウスホイールで進む/ログ<span style="color: rgb(0, 128, 0);">←これも個人的に欠かせないｗ</span></li>
	<li>BGM</li>
</ul>
<p style="margin-top: 3em;">
のみ。<br />
最低限これさえあれば動くだろ的な。<br />
<p style="margin-top: 3em;">
ログからボイスの再生だけじゃなくてジャンプできるエンジンすーき！！<br />
<p style="margin-top: 4em;">
<h3>α2やらβ1やらに向けて。</h3>
α1ではキャラの表情はどうやって決めてるのかというと、<br />
<p style="margin-top: 2em;">
<ol>
	<li>既存のギャルゲー(しぇいむ☆おん[初出VIP])からシナリオ抽出</li>
	<li><a href="http://www.pxsta.net/blog/?p=2878">OpenCVでゲーム画面キャプチャ</a>＆立ち絵特定</li>
	<li>その立ち絵の感情とそのときのテキスト中の単語を紐付ける</li>
	<li>自動クリックでゲーム進行</li>
	<li>・・・繰り返し</li>
</ol>
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/10/CaptureSheimuOnByOpenCV.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/10/CaptureSheimuOnByOpenCV-1024x540.jpg" alt="" title="CaptureSheimuOnByOpenCV" width="400" height="211" class="alignnone size-large wp-image-3017" /></a><br />
<p style="margin-top: 2em;">
とかやって、「その単語がどんな感情のときに使われやすいか」という辞書を作成、<br />
あとはSS中のセリフをその辞書使って分析→感情推定<br />
<p style="margin-top: 2em;">
とかやってたけど、<span style="font-size: medium; color: rgb(255, 102, 0);">圧倒的に単語数が少ないんだなこれ！！！！！</span><br />
<p style="margin-top: 2em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">「わたし・・・脱ぐね・・・。」とか満面の笑みよりも微照れの方が萌えますからｗｗｗｗｗ。</span><br />
<p style="margin-top: 5em;">
ということで画期的なアイデアをだな。<br />
<span style="font-size: medium; color: rgb(0, 128, 0);">2chのひたすらネガティブやら浮かれてるスレを監視<br />
↓<br />
その書き込み内容は全部ネガティブやら嬉しいときのものだと決め付けて辞書作成</span><br />
<p style="margin-top: 3em;">
最低でも嬉しいと悲しいくらいは判断してくれないと困るっす。評価極性辞書なんて物もあるみたいですがまあとりあえず。<br />
辞書の作成方法はここら辺を参考に→<a href="http://www.atmarkit.co.jp/fjava/rensai4/hadoop_tm02/01.html">実践！ 「MapReduceでテキストマイニング」徹底解説 (1/3) &#8211; ＠IT</a>。<br />
<p style="margin-top: 5em;">
で、まあその他、<br />
<p style="margin-top: 2em;">
【問題点】<br />
・バックログがやっつけの実装<span style="color: rgb(0, 128, 0);">←Canvas大量生成につきAndroidではメモリ不足で落ちるときがありますｗ</span><br />
・そもそもバックログの挙動がおかしい<br />
・Androidだとタッチしたときに色付いてじゃま。<br />
・立ち絵小さい、少ない<br />
・背景固定<br />
・<span style="color: rgb(255, 102, 0);">HTML5には「localStorage」「Application Cache」なるものがあるらしい。が、未使用。</span><br />
・<span style="color: rgb(255, 102, 0);">なんかつまんない</span><br />
・<span style="color: rgb(255, 102, 0);">フェードイン/フェードアウトの使い道が思い浮かばない</span><br />
<p style="margin-top: 5em;">
辞書が完成しないとシナリオのスクリプトが作れないゆえんこれは一番最後。<br />
<p style="margin-top: 3em;">
なんとなく昨今のワイド対応意識して1280×780にしたけど、立ち絵が明らかに小さい。まあこれはどうにも。<br />
<p style="margin-top: 3em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">あと、あきらかに著作権の問題があるけど、けいおんのSSスレ用にあずにゃんとかけいおんメンバーの立ち絵用意したらすごく面白い気がする。</span><br />
まさにきゃっきゃうふふ、なんですかね。<br />
<p style="margin-top: 3em;">
Application Cache、ローカルにデータ保存できるのはいいですね。<br />
<p style="margin-top: 3em;">
そしておまけ程度にフェードイン/フェードアウト追加したけど用途不明なんだなこれ。どういうときに使うんでしたっけ？ｗｗｗ<br />
<p style="margin-top: 4em;">
ということで、2週間ほど前に2つほど届いたのですがいまだ消化しきれててないんだなこれ。どうでもいいですが先週はAPでしたので。受かれ。<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/10/419211556.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/10/419211556-300x225.jpg" alt="" title="419211556" width="300" height="225" class="alignnone size-medium wp-image-3033" /></a><br />
<p style="margin-top: 4em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">まあ、なんだ、今回ばかりは商業のものやるとすっごくモチベーション下がるのはどうしてなんでしょうね？？？ｗ</span><br />
<br />
まあ、なんだ、システムうんぬんよりもやっぱりCGやらBGMが重要なんだなあと<br />
リセリシアスかわいすぎてああ、なんかもうだめだｗ<br />
<br />
<br />
学祭まであと2週間ちょい。<br />
「クオリティアップのため公開を2週間延期させていただくことをご報告申し上げます」とは言えないのですｗｗ。おうふ。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=2971</wfw:commentRss>
		<slash:comments>2</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=2971" />
	</item>
				<item>
		<title>寄す処</title>
		<link>http://www.pxsta.net/blog/?p=2932</link>
		<comments>http://www.pxsta.net/blog/?p=2932#comments</comments>
		<pubDate>Sun, 25 Sep 2011 16:11:38 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[雑記]]></category>
		<category><![CDATA[リア友]]></category>
		<category><![CDATA[休日]]></category>
		<category><![CDATA[大学]]></category>
		<category><![CDATA[日記]]></category>
		<category><![CDATA[遊び]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=2932</guid>
		<description><![CDATA[
夏休み中の平日＆ここらへんの三連休は意味もなくIDEに向かったりだらだらしたりしてたのですが、

先週？先々週だかは河口湖に大学の友達と行ってきまして
夏休み中初の東京脱出＆自然すげーｗｗｗとか感傷に浸ってきました。
 [...]]]></description>
			<content:encoded><![CDATA[<p>
夏休み中の平日＆ここらへんの三連休は意味もなくIDEに向かったりだらだらしたりしてたのですが、<br />
<p style="margin-top: 2em;">
先週？先々週だかは河口湖に大学の友達と行ってきまして<br />
夏休み中初の東京脱出＆自然すげーｗｗｗとか感傷に浸ってきました。<br />
<p style="margin-top: 3em;">
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0792.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0792-1024x768.jpg" alt="" title="IMAG0792" width="652" height="489" class="alignnone size-large wp-image-2937" /></a><br />
<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0793.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0793-300x225.jpg" alt="" title="IMAG0793" width="300" height="225" class="alignnone size-medium wp-image-2938" /></a>　<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0818.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0818-300x225.jpg" alt="" title="IMAG0818" width="300" height="225" class="alignnone size-medium wp-image-2939" /></a><br />
<p style="margin-top: 3em;">
友達の高速の運転の慣れてる感も尋常じゃなくてあれだったわけですが、<br />
<p style="margin-top: 2em;">
<span style="font-size: medium; color: rgb(255, 102, 0);">なんというか自然やべえｗｗｗｗｗなんだろうこのわくわく感ｗｗｗｗｗ</span><br />
<p style="margin-top: 2em;">
とか勝手に感傷に浸っておりました。<br />
<p style="margin-top: 4em;">
毎日毎日IDEに向かってるとたぶん無意識にストレス溜まるというか<br />
同じことの繰り返しで疲れるというかで<br />
<p style="margin-top: 4em;">
企画やら運転やらありがとうございました。<br />
<p style="margin-top: 3em;">
久しぶりにリフレッシュできてよかったかなあなんて<br />
<p style="margin-top: 3em;">
高速の左右も山ばっかりでなんか和みました。<br />
<p style="margin-top: 5em;">
<a href="http://www.butai.tk/kiroku/yosuga">ヨスガノソラの聖地</a>が車でいけそうな距離？なので早く高速とか余裕だしｗｗｗｗってなりたいですね。<br />
<p style="margin-top: 3em;">
ということで<a href="http://www.amazon.co.jp/gp/product/B00359EYYG/ref=as_li_ss_tl?ie=UTF8&#038;tag=svkinfo-22&#038;linkCode=as2&#038;camp=247&#038;creative=7399&#038;creativeASIN=B00359EYYG">春日野 穹 1/6すくみず</a><img src="http://www.assoc-amazon.jp/e/ir?t=svkinfo-22&#038;l=as2&#038;o=9&#038;a=B00359EYYG" width="1" height="1" border="0" alt="" style="border:none !important; margin:0px !important;" />届きました。<br />
<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0830.jpg"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/IMAG0830-1024x768.jpg" alt="" title="IMAG0830" width="652" height="489" class="alignnone size-large wp-image-2933" /></a><br />
<br />
あの山並みやら、<br />
・<a href="http://mamesoku.com/archives/2921669.html">高校の時に家出してパキスタンに行った話書いてく</a><br />
・<a href="http://mamesoku.com/archives/3044836.html">35カ国くらい旅行してきたから写真うｐする</a><br />
・<a href="http://blog.livedoor.jp/wordroom/archives/51592196.html">なんでエロゲー・ギャルゲーの舞台ってド田舎が多いの？</a><br />
やら見てたら<br />
<p style="margin-top: 2em;">
田舎やら海外やらの一人旅したい欲が再燃してまいりました。<br />
<p style="margin-top: 3em;">
そして先週、ようやく初心者マークなしで運転しても違法じゃなくなりました。さあ高速の練習をば！<br />
冬休みこそはどこか一人旅行きたいですな。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=2932</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=2932" />
	</item>
				<item>
		<title>OpenCVで虹顔の識別(※ただし表情がとぼしくて可愛いおにゃのこに限る)</title>
		<link>http://www.pxsta.net/blog/?p=2878</link>
		<comments>http://www.pxsta.net/blog/?p=2878#comments</comments>
		<pubDate>Sun, 25 Sep 2011 13:56:13 +0000</pubDate>
		<dc:creator>すた</dc:creator>
				<category><![CDATA[C#]]></category>
		<category><![CDATA[OpenCV]]></category>
		<category><![CDATA[プログラミング]]></category>

		<guid isPermaLink="false">http://www.pxsta.net/blog/?p=2878</guid>
		<description><![CDATA[
はい、ちょっと***な諸事情で、画像中に全く同じ画像が含まれているかを調べる必要があったのですが、自力ではうまく行かず、
OpenCV使ったら一瞬で出来てしまって不覚にも感動してしまいました。
、という更新。

こんな [...]]]></description>
			<content:encoded><![CDATA[<p>
はい、ちょっと***な諸事情で、画像中に全く同じ画像が含まれているかを調べる必要があったのですが、自力ではうまく行かず、<br />
OpenCV使ったら一瞬で出来てしまって不覚にも感動してしまいました。<br />
、という更新。<br />
<p style="margin-top: 4em;">
こんな紛らわしい画像(<span style="color: rgb(255, 102, 0);">右側は微妙に口の形が違う</span>)も「違う」と判断してくれてさすがです。<br />
<p style="margin-top: 3em;">
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/OpenCV_AnimeFaceDetect01.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/OpenCV_AnimeFaceDetect01-300x292.png" alt="" title="OpenCV_AnimeFaceDetect01" width="300" height="292" class="alignnone size-medium wp-image-2885" /></a>　<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/OpenCV_AnimeFaceDetect02.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/OpenCV_AnimeFaceDetect02-300x285.png" alt="" title="OpenCV_AnimeFaceDetect02" width="300" height="285" class="alignnone size-medium wp-image-2886" /></a><br />
<br />
<p style="margin-top: 3em;">
<span style="font-size: large; color: rgb(0, 0, 255);">で</span>、何がしたかったのかというと、虹画像の表情を判断したかったわけで、<br />
<span style="color: #339966; font-size: medium;">さらにその表情ごとの画像は一意に決まってるというまあなんともレアケース。</span><br />
<p style="margin-top: 2em;">
笑ってるときは画像01、泣いてるときは画像02、みたいに。<br />
表情が乏しいとも言います、はい。<br />
<p style="margin-top: 2em;">
むすっとした顔の穹ちゃんはかわいいけどね！！<br />
<p style="margin-top: 3em;">
<span style="font-size: large; color: rgb(0, 0, 255);">で</span>、これらの画像から、下のおにゃのこの表情が何なのかを調べてみますと、<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template.png" alt="" title="template" width="82" height="56" class="alignnone size-full wp-image-2879" /></a>　<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template2.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template2.png" alt="" title="template2" width="83" height="61" class="alignnone size-full wp-image-2880" /></a>　<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template3.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template3.png" alt="" title="template3" width="86" height="61" class="alignnone size-full wp-image-2881" /></a>　<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template4.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template4.png" alt="" title="template4" width="86" height="57" class="alignnone size-full wp-image-2882" /></a>　<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template5.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/template5.png" alt="" title="template5" width="79" height="51" class="alignnone size-full wp-image-2883" /></a><br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/target.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/target-225x300.png" alt="" title="target" width="225" height="300" class="alignnone size-medium wp-image-2894" /></a><br />
<p style="margin-top: 3em;">
まあよく分かりませんが「一番左の画像が完全に一致」、と判定してくれるわけです。<br />
OpenCV便利すぎくそわろうた、です。<br />
<a href="http://www.pxsta.net/blog/wp-content/uploads/2011/09/OpenCV_AnimeFaceDecide.png"><img src="http://www.pxsta.net/blog/wp-content/uploads/2011/09/OpenCV_AnimeFaceDecide-300x217.png" alt="" title="OpenCV_AnimeFaceDecide" width="300" height="217" class="alignnone size-medium wp-image-2884" /></a><br />
<p style="margin-top: 5em;">
今回はなんとなくC#で<a href="http://code.google.com/p/opencvsharp/">OpenCvSharp</a>使いました。<br />
OpenCv:2.1<br />
.NET:4.0<br />
公式のサンプル引っ張ってきただけです、はい。<br />
<p style="margin-top: 2em;">
要なのはこの2行だけで、<br />
<br />
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:90%;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">MatchTemplate</span><span style="color: #008000;">&#40;</span>target, template, dst_img, MatchTemplateMethod<span style="color: #008000;">.</span><span style="color: #0000FF;">CCorrNormed</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">MinMaxLoc</span><span style="color: #008000;">&#40;</span>dst_img, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;min_val, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;max_val, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;min_loc, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;max_loc, <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span></div></div>
<br />
MatchTemplateで各点の相関係数をdst_imgに、<br />
MinMaxLocで相関係数の最大値と最小値とそれぞれの位置を取得できるみたいです。<br />
<p style="margin-top: 2em;">
相関係数が1に近いほど正の相関があるので1に近ければ近いほど、類似の画像が含まれているということになります。<br />
相関係数が1のときは完全に一致。<br />
<p style="margin-top: 1em;">
似たような画像でも0.998とか高めの値が出たので今回はしきい値を0.999にしました、テキトウｗ<br />
<br />
<div class="codecolorer-container csharp default" style="overflow:auto;white-space:nowrap;border:1px solid #9F9F9F;width:90%;"><div class="csharp codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System</span><span style="color: #008000;">;</span><br />
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Collections.Generic</span><span style="color: #008000;">;</span><br />
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.Linq</span><span style="color: #008000;">;</span><br />
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">OpenCvSharp</span><span style="color: #008000;">;</span><br />
<span style="color: #0600FF; font-weight: bold;">using</span> <span style="color: #008080;">System.IO</span><span style="color: #008000;">;</span><br />
<br />
<span style="color: #0600FF; font-weight: bold;">namespace</span> CVSharpTest<br />
<span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">class</span> Program<br />
&nbsp; &nbsp; <span style="color: #008000;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">void</span> Main<span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&#91;</span><span style="color: #008000;">&#93;</span> args<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//templateフォルダ以下にテンプレート画像を入れておく。</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IEnumerable<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span><span style="color: #008000;">&gt;</span> tempFiles <span style="color: #008000;">=</span> Directory<span style="color: #008000;">.</span><span style="color: #0000FF;">EnumerateFiles</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;./template&quot;</span>,<span style="color: #666666;">&quot;*&quot;</span>,SearchOption<span style="color: #008000;">.</span><span style="color: #0000FF;">TopDirectoryOnly</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">double</span><span style="color: #008000;">&gt;</span> NCCPair <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> Dictionary<span style="color: #008000;">&lt;</span><span style="color: #6666cc; font-weight: bold;">string</span>, <span style="color: #6666cc; font-weight: bold;">double</span><span style="color: #008000;">&gt;</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IplImage target <span style="color: #008000;">=</span> IplImage<span style="color: #008000;">.</span><span style="color: #0000FF;">FromFile</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;target.png&quot;</span>,LoadMode<span style="color: #008000;">.</span><span style="color: #0000FF;">Unchanged</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IplImage template<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">foreach</span> <span style="color: #008000;">&#40;</span><span style="color: #6666cc; font-weight: bold;">string</span> file <span style="color: #0600FF; font-weight: bold;">in</span> tempFiles<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; template <span style="color: #008000;">=</span> IplImage<span style="color: #008000;">.</span><span style="color: #0000FF;">FromFile</span><span style="color: #008000;">&#40;</span>file, LoadMode<span style="color: #008000;">.</span><span style="color: #0000FF;">Unchanged</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">double</span> ncc <span style="color: #008000;">=</span> GetNCCMax<span style="color: #008000;">&#40;</span>target,template<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//対象画像からテンプレート画像を検索して表示する</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; TemplateMatch<span style="color: #008000;">&#40;</span>target, template<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; NCCPair<span style="color: #008000;">.</span><span style="color: #0000FF;">Add</span><span style="color: #008000;">&#40;</span>file, ncc<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;{0}:{1}&quot;</span>, file, ncc<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//「相関係数の最大値が一番高いもの」が一致画像の可能性が高い</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; var result <span style="color: #008000;">=</span> NCCPair<span style="color: #008000;">.</span><span style="color: #0000FF;">OrderByDescending</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#40;</span>val<span style="color: #008000;">&#41;</span> <span style="color: #008000;">=&gt;</span> val<span style="color: #008000;">.</span><span style="color: #0000FF;">Value</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">.</span><span style="color: #0000FF;">First</span><span style="color: #008000;">&#40;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Console<span style="color: #008000;">.</span><span style="color: #0000FF;">WriteLine</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;MAX:{0} {1}&quot;</span>,result<span style="color: #008000;">.</span><span style="color: #0000FF;">Key</span>,result<span style="color: #008000;">.</span><span style="color: #0000FF;">Value</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 相関係数の最大値を計算する</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">double</span> GetNCCMax<span style="color: #008000;">&#40;</span>IplImage target, IplImage template<span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IplImage dst_img<span style="color: #008000;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">double</span> min_val, max_val<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CvPoint min_loc, max_loc<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CvSize dst_size<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dst_size <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> CvSize<span style="color: #008000;">&#40;</span>target<span style="color: #008000;">.</span><span style="color: #0000FF;">Width</span> <span style="color: #008000;">-</span> template<span style="color: #008000;">.</span><span style="color: #0000FF;">Width</span> <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span>, target<span style="color: #008000;">.</span><span style="color: #0000FF;">Height</span> <span style="color: #008000;">-</span> template<span style="color: #008000;">.</span><span style="color: #0000FF;">Height</span> <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dst_img <span style="color: #008000;">=</span> Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">CreateImage</span><span style="color: #008000;">&#40;</span>dst_size, BitDepth<span style="color: #008000;">.</span><span style="color: #0000FF;">F32</span>, <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">MatchTemplate</span><span style="color: #008000;">&#40;</span>target, template, dst_img, MatchTemplateMethod<span style="color: #008000;">.</span><span style="color: #0000FF;">CCorrNormed</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//相関係数の最大値と最小値を取得</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">MinMaxLoc</span><span style="color: #008000;">&#40;</span>dst_img, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;min_val, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;max_val, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;min_loc, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;max_loc, <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">ReleaseImage</span><span style="color: #008000;">&#40;</span>dst_img<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">//相関係数の最大値を返す</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> max_val<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;summary&gt;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// 対象画像からテンプレート画像の位置を探す</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008080; font-style: italic;">/// &lt;/summary&gt; &nbsp; &nbsp; &nbsp; &nbsp;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">private</span> <span style="color: #0600FF; font-weight: bold;">static</span> <span style="color: #6666cc; font-weight: bold;">double</span> TemplateMatch<span style="color: #008000;">&#40;</span>IplImage target, IplImage template, <span style="color: #6666cc; font-weight: bold;">double</span> limen<span style="color: #008000;">=</span><span style="color: #FF0000;">0.999</span><span style="color: #008000;">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; IplImage dst_img<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #6666cc; font-weight: bold;">double</span> min_val, max_val<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CvPoint min_loc, max_loc<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; CvSize dst_size<span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dst_size <span style="color: #008000;">=</span> <a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> CvSize<span style="color: #008000;">&#40;</span>target<span style="color: #008000;">.</span><span style="color: #0000FF;">Width</span> <span style="color: #008000;">-</span> template<span style="color: #008000;">.</span><span style="color: #0000FF;">Width</span> <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span>, target<span style="color: #008000;">.</span><span style="color: #0000FF;">Height</span> <span style="color: #008000;">-</span> template<span style="color: #008000;">.</span><span style="color: #0000FF;">Height</span> <span style="color: #008000;">+</span> <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; dst_img <span style="color: #008000;">=</span> Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">CreateImage</span><span style="color: #008000;">&#40;</span>dst_size, BitDepth<span style="color: #008000;">.</span><span style="color: #0000FF;">F32</span>, <span style="color: #FF0000;">1</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">MatchTemplate</span><span style="color: #008000;">&#40;</span>target, template, dst_img, MatchTemplateMethod<span style="color: #008000;">.</span><span style="color: #0000FF;">CCorrNormed</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">MinMaxLoc</span><span style="color: #008000;">&#40;</span>dst_img, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;min_val, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;max_val, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;min_loc, <span style="color: #0600FF; font-weight: bold;">out</span> &nbsp;max_loc, <span style="color: #0600FF; font-weight: bold;">null</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">if</span> <span style="color: #008000;">&#40;</span>max_val <span style="color: #008000;">&gt;</span> limen<span style="color: #008000;">&#41;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">Rectangle</span><span style="color: #008000;">&#40;</span>target, max_loc,<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> CvPoint<span style="color: #008000;">&#40;</span>max_loc<span style="color: #008000;">.</span><span style="color: #0000FF;">X</span> <span style="color: #008000;">+</span> template<span style="color: #008000;">.</span><span style="color: #0000FF;">Width</span>, max_loc<span style="color: #008000;">.</span><span style="color: #0000FF;">Y</span> <span style="color: #008000;">+</span>template<span style="color: #008000;">.</span><span style="color: #0000FF;">Height</span><span style="color: #008000;">&#41;</span>,<a href="http://www.google.com/search?q=new+msdn.microsoft.com"><span style="color: #008000;">new</span></a> CvScalar<span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">0</span>,<span style="color: #FF0000;">250</span><span style="color: #008000;">&#41;</span>,<span style="color: #FF0000;">3</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">NamedWindow</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Image&quot;</span>, WindowMode<span style="color: #008000;">.</span><span style="color: #0000FF;">AutoSize</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">NamedWindow</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Image2&quot;</span>, WindowMode<span style="color: #008000;">.</span><span style="color: #0000FF;">AutoSize</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">ShowImage</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Image&quot;</span>, target<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">ShowImage</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Image2&quot;</span>, template<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">WaitKey</span><span style="color: #008000;">&#40;</span><span style="color: #FF0000;">0</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">DestroyWindow</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Image&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">DestroyWindow</span><span style="color: #008000;">&#40;</span><span style="color: #666666;">&quot;Image2&quot;</span><span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span> &nbsp;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Cv<span style="color: #008000;">.</span><span style="color: #0000FF;">ReleaseImage</span><span style="color: #008000;">&#40;</span>dst_img<span style="color: #008000;">&#41;</span><span style="color: #008000;">;</span><br />
<br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0600FF; font-weight: bold;">return</span> max_val<span style="color: #008000;">;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
&nbsp; &nbsp; <span style="color: #008000;">&#125;</span><br />
<span style="color: #008000;">&#125;</span></div></div>
<br />
<p style="margin-top: 3em;">
今回の本当の目的はちょっとぴーぴーぴーなことなので詳しくはまあアレなのですが、<br />
OpenCVの便利さ、そして手軽さはすごいなあと。</p>
]]></content:encoded>
			<wfw:commentRss>http://www.pxsta.net/blog/?feed=rss2&amp;p=2878</wfw:commentRss>
		<slash:comments>0</slash:comments>
	<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://www.pxsta.net/blog/?p=2878" />
	</item>
	</channel>
</rss>

