アニメPがモバマスに二ヶ月で 25 万注ぎ込んだ話。(前編)

カランカラン…(バーのガラス扉を開けて男が入ってくる)


おや、見ない顔だな。あんたもアニメを見てアイドルをプロデュースすることなんかに興味が出たクチかい? それなら、俺のアドバイスはきっと役に立つだろう。俺も、そうだったからな。
そう、その目だ。その哀れんだような訝しげな目。君の言いたいことは分かる。こいつは、先駆者たちの制止もロクに聞かず愚かにもプロデュース活動に走り、何万、何十万という大金を失って、こんな辺鄙なバーで安酒を飲みながら後悔するしかなくなった、そう言いたいんだろう? 君がこの店に訪れたのも、そういう人間を見て「俺はこうなりたくない」と最後に踏みとどまるための楔を見つけにきたのだろう?


君の予想は半分合っているし、半分間違っている。


聡明なる先駆者たちの説得を無視してプロデュース活動に勤しんだのは事実だし、そこに家賃より、いや一月の給料より高い金が出て行ったのは事実だ。だが、俺の目を見ろ。腐っているか? 死んだように淀んでいるか?
違うだろう。何故なら、俺は「モバマス」という闇のゲームの中で一筋の光を見つけ、追い続けてきたからだ。
(ぐっとグラスの酒を飲み干す)


いいか、敵は強大だ。いかに先駆者が絶望し腐っていく様を目にした所で、もし君がアニメで「嫁」に出会ってしまったら、きっと引きずりこまれてしまうだろう。三ヶ月後には次のクールだ。新キャラが出る布石もある。ニコニコ動画千川ちひろに「この世全ての悪」なんてコメントを冗談で付けられるのもきっと今の内だ。
だから、俺が教えるのは、この闇の世界の中でどう歩んでいけばいいか。そう、モバマスとは何か、"Pay To Win"とは何か、そして、何故人はたかだか数KBのデジタルデータに何十、何百万という金を吸い取られていくか。その知識と経験と俺なりの答えを君に託したいと思う。

(この記事は、とある記事のオマージュです。)

続きを読む

数値に四桁毎の単位を付けて表示する

10299933000020004041324600000000 を 1029穣9933予2000京4041兆3246億 に変換する方法。
ActionScript で書かれているが、他の言語でも基本は一緒。

var score:Number = 10299933000020004041324600000000;
var cValueUnit:Array = ["","万","億","兆","京","垓","予","穣","溝","澗","正","載","極","恒河沙","阿僧祇","那由多","不可思議","無量大数"];

var scorestr:String = String( score );
var epos:int = scorestr.search("e");
	
// 10^21以上の下処理
if ( epos >= 0 )
{
	var digit:int = parseInt(scorestr.substr( epos + 1 ));
	scorestr = scorestr.slice( 0, 1 ) + scorestr.slice( 2, epos );
	for ( var ex:int = 0, exend:int = digit - scorestr.length + 1; ex < exend; ex++ )
	{
		scorestr += "0";
	}
}
		
var score_list:Vector.<String> = new Vector.<String>;
var result:String = "";
for ( var i:int = scorestr.length, n:int = 0; i > 0; i -= 4, n++ )
{
	var val:int = parseInt( scorestr.slice( Math.max( 0, i - 4 ), i ) );
	if ( val == 0 ) continue;
	result = String(val) + Enums.cValueUnit[n] + result;
}

trace("Score: " + result);
解説
  • まず、数値を文字列に変換する。数値が勝手にe付き(10^21)以上になっていたら、eを取り除いて桁数分の0を後ろに足す。
    • これは ActionScript の言語仕様なので、他の言語ではきっと不要。
  • 文字列を四桁毎に分け、逆順(下の桁から)で結果に挿入していく。(0は弾く)
ポイント
  • 単位リストの先頭は空なので、0〜9999までの先頭の四桁は単位が付かない。
  • 一桁ずつ舐めていくと、「111100001111」が「1111億0000万1111」、または0を弾いても「1111億万1111」となり不自然である。
    • その四桁が空かどうかを判定するには、四桁毎に区切って判定するしかない。

きらりん☆DASHをドリンク飲んで制作(はし)った話

http://kirarin.illucalab.com/

作りました。
弊サークル「いるからぼ」では定期的に FLASH でゲームジャムをする良くない慣習があり、これもその一つ。製作期間は二人で二日間。ただし平日(月火)なので実働はもうちょっと少ないです。
正直短期間でゲーム作ったからなんだという話ではありますが、老いてから見返した時に「ああ、あの頃は若かったなあ」と思い出にふけるため備忘録を残しておきます。

きらりん☆DASH を作る上で、弊サークルがどのように意思決定し、ゲームデザインをし、完成までこぎつけたかというお話。

続きを読む

同人ゲームの開発に携わって僕が感じた10の事柄について

インディー・ゲームの開発に携わって僕が感じた10の事柄について
http://ch.nicovideo.jp/ayasawa_s/blomaga/ar747373

このアーティクルはなかなかに当を得ていて良いものだったので、僕たちは類似した記事を書くことにしました。そして、同人ゲーム制作について一般に誤解されていることを明らかにしました。
(以上パクリ)

続きを読む

賢く実装する Unity その2

色々状況も実装も変わったので1は消去しました。
Effective Unity とか欲しい。

Prefab の挙動を正しく知り、正しく使おう

 プレハブとは、ヒエラルキー上にあるオブジェクトをまるで切り取ったかのように状態保存し、使い回せる形にする Unity の要の機能である。使いこなせばとても便利だが、その一方で少々クセがあり、修羅場時にハマる原因となることも確か。正しく知り、正しく使うことがマスターアップ直前に焦らないための第一歩だと思う。

  • オブジェクトを Prefab 化すると、コンポーネントやそのパラメータ、オブジェクト構造や Transform などが保存される。
  • Prefab と結びついているオブジェクトの状態を変更し、Apply を押すと、元の Prefab にその状態が反映され、その Prefab を使った他のオブジェクトにもその状態が同期される。これはシーンもまたぐ。
  • Prefab を public の GameObject 変数などに代入して Instantiate すると、全く同じ複製がヒエラルキー上に生成される。
  • Prefab を中に含んだ Prefab は(現行バージョンでは)できない。

実際にぼくがゲームを作る上で心がけている運用は以下の通りである。

続きを読む

ベヨネッタ2寸感

ベヨネッタ2クリアしました。

全般
  • (+)操作が単純で心地良い 3D アクションが楽しめた
  • (+)モーションが美しく気合を感じた
  • (+)さっくりと遊べてストレスの無い構成
    • (+)プレイを中断しても次回プレイの動機が強く、あっという間にゲームをクリアしてしまった
    • (+)Wonderful101 のように、次どこへ向かえばいいか分からないというケースがなかった
    • (-)悪く言えば一本道。ただ、 3D アクションはこのくらい単純でいいと思う
  • (+)ストーリーが前作よりは分かりやすかった
  • (-)前作よりクライマックス感が減ったように感じた。
  • (-)前作と比べて思わず「真似したくなる演出」というものがなかった。
    • ベヨネッタ自身が闇を抱える前作と比べ、今作は明るいイメージが先行するので、退廃的な雰囲気が消えた?
  • (-)前作と比べてラストへの盛り上がりに欠ける
    • ラスボスの演出も前作よりショボい。スケールも小さい
  • (-)成長要素がオマケ程度?テクニックを買ってもあんまり使わなかった
画面
  • (+)ステージや敵の造形が凝っていて勉強になった
  • (-)相手の攻撃タイミングがまだ少し分かりにくい
特殊ステージ
  • (+)前作より長さが適切に感じた
  • (-)操作方法が複雑すぎる
総評
  • (+)いいゲームです。買いましょう。
  • (-)もう少し早く出ていれば……