atan2

2010-03-28追記

atan2のLua実装 - 永字八法も参照してください。
atan2 - 永字八法の焼き直し。
指摘を受けて作り直した。バグも取った。

define節

numalias atan2_dig
numalias atan2_dis
numalias atan2_x
numalias atan2_y
numalias atan2_xy
numalias atan2_absx
numalias atan2_absy
numalias atan2_sin

game以下、*startラベル以上

*atan2
	getparam i%atan2_dig,i%atan2_dis,%atan2_x,%atan2_y ; 引数の取得
	; ショートカット群
	if %atan2_x=0 && %atan2_y=0 mov %%atan2_dig,0:mov %%atan2_dis,0:return ; 原点
	if %atan2_x=0 && %atan2_y>0 mov %%atan2_dig,0:mov %%atan2_dis,%atan2_y:return ; 真上
	if %atan2_x=0 && %atan2_y<0 mov %%atan2_dig,180:abs2 %%atan2_dis,%atan2_y:return ; 真下
	if %atan2_x>0 && %atan2_y=0 mov %%atan2_dig,90:mov %%atan2_dis,%atan2_x:return ; 右
	if %atan2_x<0 && %atan2_y=0 mov %%atan2_dig,2700:abs2 %%atan2_dis,%atan2_x:return ; 左

	; 絶対値化処理
	mov %atan2_absx,%atan2_x:if %atan2_absx<0 mul %atan2_absx,-1
	mov %atan2_absy,%atan2_y:if %atan2_absy<0 mul %atan2_absy,-1

	; ここからが肝
	mov %atan2_xy,1000*%atan2_absx/%atan2_absy ; 傾きを計算
	if %atan2_absx<%atan2_absy mov %atan2_xy,1000*%atan2_absy/%atan2_absx
	goto*atan2_000to045 ; 計算する。

*atan2_end
	if %atan2_absx>%atan2_absy mov %%atan2_dig,90-%%atan2_dig ; 表裏
	if %atan2_x>0 && %atan2_y<0 mov %%atan2_dig,180-%%atan2_dig ; 第二象限
	if %atan2_x<0 && %atan2_y<0 add %%atan2_dig,180 ; 第三象限
	if %atan2_x<0 && %atan2_y>0 mov %%atan2_dig,360-%%atan2_dig ; 第二象限
	sin %atan2_sin,%%atan2_dig
	if %atan2_sin=0 mov %%atan2_dis,%atan2_absy:return
	mov %%atan2_dis,1000*%atan2_x/%atan2_sin
return

; atan2の実際
*atan2_000to001
if %atan2_xy>114588 mov %%atan2_dig,0:goto*atan2_end
mov %%atan2_dig,1:goto*atan2_end
*atan2_000to002
if %atan2_xy>38188 goto*atan2_000to001
mov %%atan2_dig,2:goto*atan2_end
*atan2_000to005
if %atan2_xy>22903 goto*atan2_000to002
goto*atan2_003to005
*atan2_000to011
if %atan2_xy>10385 goto*atan2_000to005
goto*atan2_006to011
*atan2_000to022
if %atan2_xy>4915 goto*atan2_000to011
goto*atan2_012to022
*atan2_000to045
if %atan2_xy>2414 goto*atan2_000to022
goto*atan2_023to045
*atan2_003to004
if %atan2_xy>16349 mov %%atan2_dig,3:goto*atan2_end
mov %%atan2_dig,4:goto*atan2_end
*atan2_003to005
if %atan2_xy>12706 goto*atan2_003to004
mov %%atan2_dig,5:goto*atan2_end
*atan2_006to007
if %atan2_xy>8776 mov %%atan2_dig,6:goto*atan2_end
mov %%atan2_dig,7:goto*atan2_end
*atan2_006to008
if %atan2_xy>7595 goto*atan2_006to007
mov %%atan2_dig,8:goto*atan2_end
*atan2_006to011
if %atan2_xy>6691 goto*atan2_006to008
goto*atan2_009to011
*atan2_009to010
if %atan2_xy>5975 mov %%atan2_dig,9:goto*atan2_end
mov %%atan2_dig,10:goto*atan2_end
*atan2_009to011
if %atan2_xy>5395 goto*atan2_009to010
mov %%atan2_dig,11:goto*atan2_end
*atan2_012to013
if %atan2_xy>4510 mov %%atan2_dig,12:goto*atan2_end
mov %%atan2_dig,13:goto*atan2_end
*atan2_012to014
if %atan2_xy>4165 goto*atan2_012to013
mov %%atan2_dig,14:goto*atan2_end
*atan2_012to017
if %atan2_xy>3866 goto*atan2_012to014
goto*atan2_015to017
*atan2_012to022
if %atan2_xy>3171 goto*atan2_012to017
goto*atan2_018to022
*atan2_015to016
if %atan2_xy>3605 mov %%atan2_dig,15:goto*atan2_end
mov %%atan2_dig,16:goto*atan2_end
*atan2_015to017
if %atan2_xy>3375 goto*atan2_015to016
mov %%atan2_dig,17:goto*atan2_end
*atan2_018to019
if %atan2_xy>2988 mov %%atan2_dig,18:goto*atan2_end
mov %%atan2_dig,19:goto*atan2_end
*atan2_018to020
if %atan2_xy>2823 goto*atan2_018to019
mov %%atan2_dig,20:goto*atan2_end
*atan2_018to022
if %atan2_xy>2674 goto*atan2_018to020
goto*atan2_021to022
*atan2_021to022
if %atan2_xy>2538 mov %%atan2_dig,21:goto*atan2_end
mov %%atan2_dig,22:goto*atan2_end
*atan2_023to024
if %atan2_xy>2299 mov %%atan2_dig,23:goto*atan2_end
mov %%atan2_dig,24:goto*atan2_end
*atan2_023to025
if %atan2_xy>2194 goto*atan2_023to024
mov %%atan2_dig,25:goto*atan2_end
*atan2_023to028
if %atan2_xy>2096 goto*atan2_023to025
goto*atan2_026to028
*atan2_023to034
if %atan2_xy>1841 goto*atan2_023to028
goto*atan2_029to034
*atan2_023to045
if %atan2_xy>1455 goto*atan2_023to034
goto*atan2_035to045
*atan2_026to027
if %atan2_xy>2005 mov %%atan2_dig,26:goto*atan2_end
mov %%atan2_dig,27:goto*atan2_end
*atan2_026to028
if %atan2_xy>1920 goto*atan2_026to027
mov %%atan2_dig,28:goto*atan2_end
*atan2_029to030
if %atan2_xy>1767 mov %%atan2_dig,29:goto*atan2_end
mov %%atan2_dig,30:goto*atan2_end
*atan2_029to031
if %atan2_xy>1697 goto*atan2_029to030
mov %%atan2_dig,31:goto*atan2_end
*atan2_029to034
if %atan2_xy>1631 goto*atan2_029to031
goto*atan2_032to034
*atan2_032to033
if %atan2_xy>1569 mov %%atan2_dig,32:goto*atan2_end
mov %%atan2_dig,33:goto*atan2_end
*atan2_032to034
if %atan2_xy>1510 goto*atan2_032to033
mov %%atan2_dig,34:goto*atan2_end
*atan2_035to036
if %atan2_xy>1401 mov %%atan2_dig,35:goto*atan2_end
mov %%atan2_dig,36:goto*atan2_end
*atan2_035to037
if %atan2_xy>1351 goto*atan2_035to036
mov %%atan2_dig,37:goto*atan2_end
*atan2_035to040
if %atan2_xy>1303 goto*atan2_035to037
goto*atan2_038to040
*atan2_035to045
if %atan2_xy>1170 goto*atan2_035to040
goto*atan2_041to045
*atan2_038to039
if %atan2_xy>1257 mov %%atan2_dig,38:goto*atan2_end
mov %%atan2_dig,39:goto*atan2_end
*atan2_038to040
if %atan2_xy>1213 goto*atan2_038to039
mov %%atan2_dig,40:goto*atan2_end
*atan2_041to042
if %atan2_xy>1130 mov %%atan2_dig,41:goto*atan2_end
mov %%atan2_dig,42:goto*atan2_end
*atan2_041to043
if %atan2_xy>1091 goto*atan2_041to042
mov %%atan2_dig,43:goto*atan2_end
*atan2_041to045
if %atan2_xy>1053 goto*atan2_041to043
goto*atan2_044to045
*atan2_044to045
if %atan2_xy>1017 mov %%atan2_dig,44:goto*atan2_end
mov %%atan2_dig,45:goto*atan2_end

汎用ライブラリ・define_math.txt

多分色々使われると思われる物をまとめてみた。適宜適当に増やしていく。使用する変数を使いまわすことで、変数領域を圧迫しないのが利点。

define_math.txt

numalias math_param1
numalias math_param2
numalias math_result
numalias math_temp1
numalias math_temp2
numalias math_loop
------
------
;==============================
; 絶対値。引数をそのまま絶対値に変換する。
;==============================
 *abs
getparam i%math_result
if %%math_result < 0 mul %%math_result,(-1)
return
;==============================
; 絶対値。第一引数に第二引数の絶対値を代入する。
;==============================
 *abs2
getparam i%math_result,%math_param1
if %math_param1 < 0 mul %math_param1,(-1)
mov %%math_result,%math_param1
return
;==============================
; 端数切り上げ割り算
;==============================
 *div2
getparam i%math_result,%math_param1
mov %math_temp1,%%math_result
div %math_temp1,%math_param1:mul %math_temp1,%math_param1
mov %math_temp2,0
if %%math_result <> %math_temp1 mov %math_temp2,1
div %math_temp1,%math_param1:add %math_temp1,%math_temp2
mov %%math_result,%math_temp1
return
;==============================
; 文字列の左側に追加をする。
;==============================
 *left_add
getparam s%math_result,$math_param1
add $math_param1,$%math_result
mov $%math_result,$math_param1
return
;==============================
; 文字列を二つに分割する。右からn文字目で切り取る。
;==============================
 *right_split
getparam s%math_result,s%math_temp1,$math_param1,%math_param2
len %math_param1,$math_param1
sub %math_param1,%math_param2
mid $%math_result,$math_param1,0,%math_param1
mid $%math_temp1,$math_param1,%math_param1,%math_param2
return
;==============================
; 文字列を二つに分割する。右からn文字目で切り取る。2バイト文字用
;==============================
 *right_split2
getparam s%math_result,s%math_temp1,$math_param1,%math_param2
len %math_param1,$math_param1
sub %math_param1,%math_param2*2
mid $%math_result,$math_param1,0,%math_param1
mid $%math_temp1,$math_param1,%math_param1,%math_param2*2
return
;==============================
; 奇数か偶数かを返す。
;==============================
 *is_even
getparam i%math_result,%math_param1
mov %math_param2,%math_param1
div %math_param2,2
mul %math_param2,2
mov %%math_result,0
if %math_param1 = %math_param2 mov %%math_result,1
return
 *is_odd
getparam i%math_result,%math_param1
mov %math_param2,%math_param1
div %math_param2,2
mul %math_param2,2
mov %%math_result,1
if %math_param1 = %math_param2 mov %%math_result,0
return

NScripterでSTG

風呂STG - 永字八法の続き。
atan2がきれいになった記念に。

ルール

  • マウスカーソルのある方向を向いてそっちに移動する。
  • クリック(押しっぱなしの気分で)すると弾発射。弾発射中は方向転換はできるが移動はできない。
  • 敵は移動する敵と砲台がランダム。
  • 自分の弾で敵を倒してもスコアにはならない。敵と敵をぶつけて倒せば1点(実質2点)、敵の弾に敵をぶつければ3点が得られる。
  • マップ上の敵を全部倒せば面クリアー。

クリーンナップ

ベンチマークの結果を受けて、実際のところnumalias(とstralias)は使わなければ使わないほど早いことがわかった。なので、numaliasを数値に変換するPerlスクリプトを試作してみたが、単純な置換では命令文も破壊してしまうことが判明した。
結局のところ、一行毎に読み込んでNScriptの構文解析をしなければならないことがわかった。手間がかかりそうなので放ることにした。

WING2005年10月号

綿流し編第五話(方篠ゆとり

綿流し前日から綿流し当日、富竹と鷹野が祭具殿に忍び込む直前まで。
鷹野んってタイトスカートじゃなくてロングパンツだったんだ……。
「悟史は転校した」って言うレナの瞳が怖い怖い。

特別読切「@やまだひねもす悩み相談所」(敷誠一

結構おもろかったです。

2005年10月号

祟殺し編第6話(鈴木次郎

詩音、「悟史が転校」と聞いてマジになるシーンから。怖いね。
そして神社の境内で限定ジャンケン。なんだそりゃ。
そして魅音とレナに悟史のことを聞く圭一。マジになるレナ。
翌日から、沙都子は学校に来なくなる。大石がやってきて、沙都子を出せと言い出した。
順当に進んでますねー。
一番胃が痛くなる話ではありますが、圭一の鉄平襲撃シーンが一番楽しみなのも事実。
早く進まないかなー。

ZOMBIE-LOANPEACH-PIT

娘を養うためにゾンビになってまで働くお父さん。人間のカガミだね!
そんなリーマンゾンビさんも、ついに荒事に手を染めることを決意?
屍姫 1 (ガンガンコミックス)と比べると、より人間臭くていい感じだ。

2005年11月号

祟殺し編第7話(鈴木次郎

大石が去った後、圭一と監督と北条家を訪れる。そこで鉄平登場。うーむ、ただのチンピラじゃのー。
この辺の展開は胃が痛いので、描いた漫画家さんには悪いけどさらっと流させていただきますよと。

2005年秋季号

やっぱり、2005年夏季号がみつからないんだよね。

鬼隠し編第三話(鈴羅木かりん

富竹さんが死んだ。大石の車の中で話を聞く圭一。
動揺する圭一、眠ったふりして魅音とレナの話を聞いてしまう。
自室で大石に電話する圭一。しかしそれをレナに聞かれてしまう。
ハイライトは「嘘だっ!」
ていうか、レナの瞳、縦に割れてるよー。

ドラゴン・パーティ

※完全にネタバレしてますので注意。
中里融司と言う作家さんは、ロボ娘スキーの中では一定の地位を築いておられるお方でして、また、その礎となったのがこの作品であります。
設定はこんな感じ。

宇宙に出られるようになった人類。遊星パンドラをみつけ、その中から異星技術を手に入れた。それによって人格を備えたアンドロイドを作れるようになり、ついには他の太陽系まで移民が可能になったのであった。
しかしそこに飛来した「敵」。この「敵」を見たものは「敵」の支配する別種の生き物に変わってしまう。
事実上宇宙を閉ざされた人類は、「敵」との戦いをアンドロイドたちにまかせるしかなく、徐々に衰退していった……

まあ、ここまではいい。しかしだ。

アンドロイドは原因は不明なれど女性型にしなければ起動しない

何この妄想設定……_ト ̄|○
そして、「敵」を見ても支配されない特異体質の主人公の少年が、特別に作られたロボ娘星海真魚と仲間たちとともにドラゴン型宇宙戦艦「魁龍」に乗り込み、「敵」にさらわれた妹を奪還する。そういう導入なんですね。
もうね、生身の女が数えるほどしか出てこないんですよ。名前つきを列挙すると、

  • 一巻のやられ役の女軍人
  • 真魚作ったとこの技術者
  • 主人公と同じ体質の女の子
  • 主人公の妹
  • 主人公の妹の遺伝子その他から作られた「敵」の戦士
  • 他の太陽系の種族の女戦士

これっくらいしかいないんですよ!
後出てくるチョイ役含む女の子は全部ロボ娘! 何この徹底振り! もう最高ですよ! 眼鏡かけたロボ娘さえ出てくるし、「ドリルつけるから!」とか言われて迷うロボ娘とかも出るし!
そして読んでいるうちにこんな状況が!

処女神の鉄槌(アルテミス・ハンマー)

……おっぱいミサイルキタ━━━━(゜∀゜)━━━━ッ!!
94センチが! 94センチが! おっぱいミサイルですよ旦那!
他にも徹底的に壊されてチップ一つから再生とかのロボ萌え描写がふんだんです。
最後のとどめに、ロボ娘たちの下腹部にすえつけられた謎の部品。それは、人格情報を融合して新たな成長する機械を作り出す人工子宮だったのだ!
だがこの部品は生身の人間には使えない。情報提供者になるには、異星技術によって体と脳を無機質に変換しなければならないのだ。
しかしロボ娘を愛する少年は決意する。
「俺は人間をやめるぞーっ!」(意訳)
漢や……ほんまもんの漢や……orz
そんな風にロボ娘スキーにとっては、ていうかこれロボ娘スキーが自分の妄想を存分に垂れ流しただけだろうと言うような内容なのですよ。満足満足。
難点は、絵師さん描くところのロボ娘たちがあんまり区別がつかないのと、最後の七巻はものすごく駆け足だったことくらいですかね。まあ、勢いに乗れば気にならない程度ですが。
その手の趣味の方には、五つ星でおすすめです。是非。

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

寺本薫の初(?)商業単行本なのですよ。
同人ではTo Heartネタでマルチとあかりの心理的な駆け引きをよく描いていた作家さんなのですよ。
で、これはまあ普通の萌え四コマなんですが、連載時はほぼ一発ネタだったと思われるリンゴロボが出たので紹介対象なのですよ。
メイドの林檎さんの影武者であり、ネコミミアンミラアンドロイドで、ジェットで空を飛べて講義もかわりにできると言う優れもの。てか欲しいよ。
カバー外して詳しいところをその目で確認して欲しいのですよ。

WING2005年11月号

綿流し編第六話(方篠ゆとり

予定通り。祭具殿に中に入り、詩音(と富竹)は音を聞き、圭一と鷹野は聞かなかった。
魅音から「詩音に会わなかった?」と聞かれる圭一。

宣伝

あ、なんか面白そう(な設定)。
で、amazonの批評を見ると……見事にわかれていて笑った。

スクラップ街に天使はいるか(月ノ輪航介

「第69回金の翼賞佳作受賞作品」とか。
いまいちジェンダーがはっきりしないが、スクラップ寸前の天使型ロボ娘3人のちょっといい話。この調子でロボ娘を……無理か。

atan2

2010-03-28追記

atan2のLua実装 - 永字八法も参照してください。
atan2 - 永字八法の焼き直し。
指摘を受けて作り直した。バグも取った。

define節

numalias atan2_dig
numalias atan2_dis
numalias atan2_x
numalias atan2_y
numalias atan2_xy
numalias atan2_absx
numalias atan2_absy
numalias atan2_sin

game以下、*startラベル以上

*atan2
	getparam i%atan2_dig,i%atan2_dis,%atan2_x,%atan2_y ; 引数の取得
	; ショートカット群
	if %atan2_x=0 && %atan2_y=0 mov %%atan2_dig,0:mov %%atan2_dis,0:return ; 原点
	if %atan2_x=0 && %atan2_y>0 mov %%atan2_dig,0:mov %%atan2_dis,%atan2_y:return ; 真上
	if %atan2_x=0 && %atan2_y<0 mov %%atan2_dig,180:abs2 %%atan2_dis,%atan2_y:return ; 真下
	if %atan2_x>0 && %atan2_y=0 mov %%atan2_dig,90:mov %%atan2_dis,%atan2_x:return ; 右
	if %atan2_x<0 && %atan2_y=0 mov %%atan2_dig,2700:abs2 %%atan2_dis,%atan2_x:return ; 左

	; 絶対値化処理
	mov %atan2_absx,%atan2_x:if %atan2_absx<0 mul %atan2_absx,-1
	mov %atan2_absy,%atan2_y:if %atan2_absy<0 mul %atan2_absy,-1

	; ここからが肝
	mov %atan2_xy,1000*%atan2_absx/%atan2_absy ; 傾きを計算
	if %atan2_absx<%atan2_absy mov %atan2_xy,1000*%atan2_absy/%atan2_absx
	goto*atan2_000to045 ; 計算する。

*atan2_end
	if %atan2_absx>%atan2_absy mov %%atan2_dig,90-%%atan2_dig ; 表裏
	if %atan2_x>0 && %atan2_y<0 mov %%atan2_dig,180-%%atan2_dig ; 第二象限
	if %atan2_x<0 && %atan2_y<0 add %%atan2_dig,180 ; 第三象限
	if %atan2_x<0 && %atan2_y>0 mov %%atan2_dig,360-%%atan2_dig ; 第二象限
	sin %atan2_sin,%%atan2_dig
	if %atan2_sin=0 mov %%atan2_dis,%atan2_absy:return
	mov %%atan2_dis,1000*%atan2_x/%atan2_sin
return

; atan2の実際
*atan2_000to001
if %atan2_xy>114588 mov %%atan2_dig,0:goto*atan2_end
mov %%atan2_dig,1:goto*atan2_end
*atan2_000to002
if %atan2_xy>38188 goto*atan2_000to001
mov %%atan2_dig,2:goto*atan2_end
*atan2_000to005
if %atan2_xy>22903 goto*atan2_000to002
goto*atan2_003to005
*atan2_000to011
if %atan2_xy>10385 goto*atan2_000to005
goto*atan2_006to011
*atan2_000to022
if %atan2_xy>4915 goto*atan2_000to011
goto*atan2_012to022
*atan2_000to045
if %atan2_xy>2414 goto*atan2_000to022
goto*atan2_023to045
*atan2_003to004
if %atan2_xy>16349 mov %%atan2_dig,3:goto*atan2_end
mov %%atan2_dig,4:goto*atan2_end
*atan2_003to005
if %atan2_xy>12706 goto*atan2_003to004
mov %%atan2_dig,5:goto*atan2_end
*atan2_006to007
if %atan2_xy>8776 mov %%atan2_dig,6:goto*atan2_end
mov %%atan2_dig,7:goto*atan2_end
*atan2_006to008
if %atan2_xy>7595 goto*atan2_006to007
mov %%atan2_dig,8:goto*atan2_end
*atan2_006to011
if %atan2_xy>6691 goto*atan2_006to008
goto*atan2_009to011
*atan2_009to010
if %atan2_xy>5975 mov %%atan2_dig,9:goto*atan2_end
mov %%atan2_dig,10:goto*atan2_end
*atan2_009to011
if %atan2_xy>5395 goto*atan2_009to010
mov %%atan2_dig,11:goto*atan2_end
*atan2_012to013
if %atan2_xy>4510 mov %%atan2_dig,12:goto*atan2_end
mov %%atan2_dig,13:goto*atan2_end
*atan2_012to014
if %atan2_xy>4165 goto*atan2_012to013
mov %%atan2_dig,14:goto*atan2_end
*atan2_012to017
if %atan2_xy>3866 goto*atan2_012to014
goto*atan2_015to017
*atan2_012to022
if %atan2_xy>3171 goto*atan2_012to017
goto*atan2_018to022
*atan2_015to016
if %atan2_xy>3605 mov %%atan2_dig,15:goto*atan2_end
mov %%atan2_dig,16:goto*atan2_end
*atan2_015to017
if %atan2_xy>3375 goto*atan2_015to016
mov %%atan2_dig,17:goto*atan2_end
*atan2_018to019
if %atan2_xy>2988 mov %%atan2_dig,18:goto*atan2_end
mov %%atan2_dig,19:goto*atan2_end
*atan2_018to020
if %atan2_xy>2823 goto*atan2_018to019
mov %%atan2_dig,20:goto*atan2_end
*atan2_018to022
if %atan2_xy>2674 goto*atan2_018to020
goto*atan2_021to022
*atan2_021to022
if %atan2_xy>2538 mov %%atan2_dig,21:goto*atan2_end
mov %%atan2_dig,22:goto*atan2_end
*atan2_023to024
if %atan2_xy>2299 mov %%atan2_dig,23:goto*atan2_end
mov %%atan2_dig,24:goto*atan2_end
*atan2_023to025
if %atan2_xy>2194 goto*atan2_023to024
mov %%atan2_dig,25:goto*atan2_end
*atan2_023to028
if %atan2_xy>2096 goto*atan2_023to025
goto*atan2_026to028
*atan2_023to034
if %atan2_xy>1841 goto*atan2_023to028
goto*atan2_029to034
*atan2_023to045
if %atan2_xy>1455 goto*atan2_023to034
goto*atan2_035to045
*atan2_026to027
if %atan2_xy>2005 mov %%atan2_dig,26:goto*atan2_end
mov %%atan2_dig,27:goto*atan2_end
*atan2_026to028
if %atan2_xy>1920 goto*atan2_026to027
mov %%atan2_dig,28:goto*atan2_end
*atan2_029to030
if %atan2_xy>1767 mov %%atan2_dig,29:goto*atan2_end
mov %%atan2_dig,30:goto*atan2_end
*atan2_029to031
if %atan2_xy>1697 goto*atan2_029to030
mov %%atan2_dig,31:goto*atan2_end
*atan2_029to034
if %atan2_xy>1631 goto*atan2_029to031
goto*atan2_032to034
*atan2_032to033
if %atan2_xy>1569 mov %%atan2_dig,32:goto*atan2_end
mov %%atan2_dig,33:goto*atan2_end
*atan2_032to034
if %atan2_xy>1510 goto*atan2_032to033
mov %%atan2_dig,34:goto*atan2_end
*atan2_035to036
if %atan2_xy>1401 mov %%atan2_dig,35:goto*atan2_end
mov %%atan2_dig,36:goto*atan2_end
*atan2_035to037
if %atan2_xy>1351 goto*atan2_035to036
mov %%atan2_dig,37:goto*atan2_end
*atan2_035to040
if %atan2_xy>1303 goto*atan2_035to037
goto*atan2_038to040
*atan2_035to045
if %atan2_xy>1170 goto*atan2_035to040
goto*atan2_041to045
*atan2_038to039
if %atan2_xy>1257 mov %%atan2_dig,38:goto*atan2_end
mov %%atan2_dig,39:goto*atan2_end
*atan2_038to040
if %atan2_xy>1213 goto*atan2_038to039
mov %%atan2_dig,40:goto*atan2_end
*atan2_041to042
if %atan2_xy>1130 mov %%atan2_dig,41:goto*atan2_end
mov %%atan2_dig,42:goto*atan2_end
*atan2_041to043
if %atan2_xy>1091 goto*atan2_041to042
mov %%atan2_dig,43:goto*atan2_end
*atan2_041to045
if %atan2_xy>1053 goto*atan2_041to043
goto*atan2_044to045
*atan2_044to045
if %atan2_xy>1017 mov %%atan2_dig,44:goto*atan2_end
mov %%atan2_dig,45:goto*atan2_end

汎用ライブラリ・define_math.txt

多分色々使われると思われる物をまとめてみた。適宜適当に増やしていく。使用する変数を使いまわすことで、変数領域を圧迫しないのが利点。

define_math.txt

numalias math_param1
numalias math_param2
numalias math_result
numalias math_temp1
numalias math_temp2
numalias math_loop
------
------
;==============================
; 絶対値。引数をそのまま絶対値に変換する。
;==============================
 *abs
getparam i%math_result
if %%math_result < 0 mul %%math_result,(-1)
return
;==============================
; 絶対値。第一引数に第二引数の絶対値を代入する。
;==============================
 *abs2
getparam i%math_result,%math_param1
if %math_param1 < 0 mul %math_param1,(-1)
mov %%math_result,%math_param1
return
;==============================
; 端数切り上げ割り算
;==============================
 *div2
getparam i%math_result,%math_param1
mov %math_temp1,%%math_result
div %math_temp1,%math_param1:mul %math_temp1,%math_param1
mov %math_temp2,0
if %%math_result <> %math_temp1 mov %math_temp2,1
div %math_temp1,%math_param1:add %math_temp1,%math_temp2
mov %%math_result,%math_temp1
return
;==============================
; 文字列の左側に追加をする。
;==============================
 *left_add
getparam s%math_result,$math_param1
add $math_param1,$%math_result
mov $%math_result,$math_param1
return
;==============================
; 文字列を二つに分割する。右からn文字目で切り取る。
;==============================
 *right_split
getparam s%math_result,s%math_temp1,$math_param1,%math_param2
len %math_param1,$math_param1
sub %math_param1,%math_param2
mid $%math_result,$math_param1,0,%math_param1
mid $%math_temp1,$math_param1,%math_param1,%math_param2
return
;==============================
; 文字列を二つに分割する。右からn文字目で切り取る。2バイト文字用
;==============================
 *right_split2
getparam s%math_result,s%math_temp1,$math_param1,%math_param2
len %math_param1,$math_param1
sub %math_param1,%math_param2*2
mid $%math_result,$math_param1,0,%math_param1
mid $%math_temp1,$math_param1,%math_param1,%math_param2*2
return
;==============================
; 奇数か偶数かを返す。
;==============================
 *is_even
getparam i%math_result,%math_param1
mov %math_param2,%math_param1
div %math_param2,2
mul %math_param2,2
mov %%math_result,0
if %math_param1 = %math_param2 mov %%math_result,1
return
 *is_odd
getparam i%math_result,%math_param1
mov %math_param2,%math_param1
div %math_param2,2
mul %math_param2,2
mov %%math_result,1
if %math_param1 = %math_param2 mov %%math_result,0
return

NScripterでSTG

風呂STG - 永字八法の続き。
atan2がきれいになった記念に。

ルール

  • マウスカーソルのある方向を向いてそっちに移動する。
  • クリック(押しっぱなしの気分で)すると弾発射。弾発射中は方向転換はできるが移動はできない。
  • 敵は移動する敵と砲台がランダム。
  • 自分の弾で敵を倒してもスコアにはならない。敵と敵をぶつけて倒せば1点(実質2点)、敵の弾に敵をぶつければ3点が得られる。
  • マップ上の敵を全部倒せば面クリアー。

クリーンナップ

ベンチマークの結果を受けて、実際のところnumalias(とstralias)は使わなければ使わないほど早いことがわかった。なので、numaliasを数値に変換するPerlスクリプトを試作してみたが、単純な置換では命令文も破壊してしまうことが判明した。
結局のところ、一行毎に読み込んでNScriptの構文解析をしなければならないことがわかった。手間がかかりそうなので放ることにした。

WING2005年10月号

綿流し編第五話(方篠ゆとり

綿流し前日から綿流し当日、富竹と鷹野が祭具殿に忍び込む直前まで。
鷹野んってタイトスカートじゃなくてロングパンツだったんだ……。
「悟史は転校した」って言うレナの瞳が怖い怖い。

特別読切「@やまだひねもす悩み相談所」(敷誠一

結構おもろかったです。

WING2005年11月号

綿流し編第六話(方篠ゆとり

予定通り。祭具殿に中に入り、詩音(と富竹)は音を聞き、圭一と鷹野は聞かなかった。
魅音から「詩音に会わなかった?」と聞かれる圭一。

宣伝

あ、なんか面白そう(な設定)。
で、amazonの批評を見ると……見事にわかれていて笑った。

スクラップ街に天使はいるか(月ノ輪航介

「第69回金の翼賞佳作受賞作品」とか。
いまいちジェンダーがはっきりしないが、スクラップ寸前の天使型ロボ娘3人のちょっといい話。この調子でロボ娘を……無理か。

2005年10月号

祟殺し編第6話(鈴木次郎

詩音、「悟史が転校」と聞いてマジになるシーンから。怖いね。
そして神社の境内で限定ジャンケン。なんだそりゃ。
そして魅音とレナに悟史のことを聞く圭一。マジになるレナ。
翌日から、沙都子は学校に来なくなる。大石がやってきて、沙都子を出せと言い出した。
順当に進んでますねー。
一番胃が痛くなる話ではありますが、圭一の鉄平襲撃シーンが一番楽しみなのも事実。
早く進まないかなー。

ZOMBIE-LOANPEACH-PIT

娘を養うためにゾンビになってまで働くお父さん。人間のカガミだね!
そんなリーマンゾンビさんも、ついに荒事に手を染めることを決意?
屍姫 1 (ガンガンコミックス)と比べると、より人間臭くていい感じだ。

2005年11月号

祟殺し編第7話(鈴木次郎

大石が去った後、圭一と監督と北条家を訪れる。そこで鉄平登場。うーむ、ただのチンピラじゃのー。
この辺の展開は胃が痛いので、描いた漫画家さんには悪いけどさらっと流させていただきますよと。

2005年秋季号

やっぱり、2005年夏季号がみつからないんだよね。

鬼隠し編第三話(鈴羅木かりん

富竹さんが死んだ。大石の車の中で話を聞く圭一。
動揺する圭一、眠ったふりして魅音とレナの話を聞いてしまう。
自室で大石に電話する圭一。しかしそれをレナに聞かれてしまう。
ハイライトは「嘘だっ!」
ていうか、レナの瞳、縦に割れてるよー。

ドラゴン・パーティ

※完全にネタバレしてますので注意。
中里融司と言う作家さんは、ロボ娘スキーの中では一定の地位を築いておられるお方でして、また、その礎となったのがこの作品であります。
設定はこんな感じ。

宇宙に出られるようになった人類。遊星パンドラをみつけ、その中から異星技術を手に入れた。それによって人格を備えたアンドロイドを作れるようになり、ついには他の太陽系まで移民が可能になったのであった。
しかしそこに飛来した「敵」。この「敵」を見たものは「敵」の支配する別種の生き物に変わってしまう。
事実上宇宙を閉ざされた人類は、「敵」との戦いをアンドロイドたちにまかせるしかなく、徐々に衰退していった……

まあ、ここまではいい。しかしだ。

アンドロイドは原因は不明なれど女性型にしなければ起動しない

何この妄想設定……_ト ̄|○
そして、「敵」を見ても支配されない特異体質の主人公の少年が、特別に作られたロボ娘星海真魚と仲間たちとともにドラゴン型宇宙戦艦「魁龍」に乗り込み、「敵」にさらわれた妹を奪還する。そういう導入なんですね。
もうね、生身の女が数えるほどしか出てこないんですよ。名前つきを列挙すると、

  • 一巻のやられ役の女軍人
  • 真魚作ったとこの技術者
  • 主人公と同じ体質の女の子
  • 主人公の妹
  • 主人公の妹の遺伝子その他から作られた「敵」の戦士
  • 他の太陽系の種族の女戦士

これっくらいしかいないんですよ!
後出てくるチョイ役含む女の子は全部ロボ娘! 何この徹底振り! もう最高ですよ! 眼鏡かけたロボ娘さえ出てくるし、「ドリルつけるから!」とか言われて迷うロボ娘とかも出るし!
そして読んでいるうちにこんな状況が!

処女神の鉄槌(アルテミス・ハンマー)

……おっぱいミサイルキタ━━━━(゜∀゜)━━━━ッ!!
94センチが! 94センチが! おっぱいミサイルですよ旦那!
他にも徹底的に壊されてチップ一つから再生とかのロボ萌え描写がふんだんです。
最後のとどめに、ロボ娘たちの下腹部にすえつけられた謎の部品。それは、人格情報を融合して新たな成長する機械を作り出す人工子宮だったのだ!
だがこの部品は生身の人間には使えない。情報提供者になるには、異星技術によって体と脳を無機質に変換しなければならないのだ。
しかしロボ娘を愛する少年は決意する。
「俺は人間をやめるぞーっ!」(意訳)
漢や……ほんまもんの漢や……orz
そんな風にロボ娘スキーにとっては、ていうかこれロボ娘スキーが自分の妄想を存分に垂れ流しただけだろうと言うような内容なのですよ。満足満足。
難点は、絵師さん描くところのロボ娘たちがあんまり区別がつかないのと、最後の七巻はものすごく駆け足だったことくらいですかね。まあ、勢いに乗れば気にならない程度ですが。
その手の趣味の方には、五つ星でおすすめです。是非。

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

寺本薫の初(?)商業単行本なのですよ。
同人ではTo Heartネタでマルチとあかりの心理的な駆け引きをよく描いていた作家さんなのですよ。
で、これはまあ普通の萌え四コマなんですが、連載時はほぼ一発ネタだったと思われるリンゴロボが出たので紹介対象なのですよ。
メイドの林檎さんの影武者であり、ネコミミアンミラアンドロイドで、ジェットで空を飛べて講義もかわりにできると言う優れもの。てか欲しいよ。
カバー外して詳しいところをその目で確認して欲しいのですよ。

atan2

2010-03-28追記

atan2のLua実装 - 永字八法も参照してください。
atan2 - 永字八法の焼き直し。
指摘を受けて作り直した。バグも取った。

define節

numalias atan2_dig
numalias atan2_dis
numalias atan2_x
numalias atan2_y
numalias atan2_xy
numalias atan2_absx
numalias atan2_absy
numalias atan2_sin

game以下、*startラベル以上

*atan2
	getparam i%atan2_dig,i%atan2_dis,%atan2_x,%atan2_y ; 引数の取得
	; ショートカット群
	if %atan2_x=0 && %atan2_y=0 mov %%atan2_dig,0:mov %%atan2_dis,0:return ; 原点
	if %atan2_x=0 && %atan2_y>0 mov %%atan2_dig,0:mov %%atan2_dis,%atan2_y:return ; 真上
	if %atan2_x=0 && %atan2_y<0 mov %%atan2_dig,180:abs2 %%atan2_dis,%atan2_y:return ; 真下
	if %atan2_x>0 && %atan2_y=0 mov %%atan2_dig,90:mov %%atan2_dis,%atan2_x:return ; 右
	if %atan2_x<0 && %atan2_y=0 mov %%atan2_dig,2700:abs2 %%atan2_dis,%atan2_x:return ; 左

	; 絶対値化処理
	mov %atan2_absx,%atan2_x:if %atan2_absx<0 mul %atan2_absx,-1
	mov %atan2_absy,%atan2_y:if %atan2_absy<0 mul %atan2_absy,-1

	; ここからが肝
	mov %atan2_xy,1000*%atan2_absx/%atan2_absy ; 傾きを計算
	if %atan2_absx<%atan2_absy mov %atan2_xy,1000*%atan2_absy/%atan2_absx
	goto*atan2_000to045 ; 計算する。

*atan2_end
	if %atan2_absx>%atan2_absy mov %%atan2_dig,90-%%atan2_dig ; 表裏
	if %atan2_x>0 && %atan2_y<0 mov %%atan2_dig,180-%%atan2_dig ; 第二象限
	if %atan2_x<0 && %atan2_y<0 add %%atan2_dig,180 ; 第三象限
	if %atan2_x<0 && %atan2_y>0 mov %%atan2_dig,360-%%atan2_dig ; 第二象限
	sin %atan2_sin,%%atan2_dig
	if %atan2_sin=0 mov %%atan2_dis,%atan2_absy:return
	mov %%atan2_dis,1000*%atan2_x/%atan2_sin
return

; atan2の実際
*atan2_000to001
if %atan2_xy>114588 mov %%atan2_dig,0:goto*atan2_end
mov %%atan2_dig,1:goto*atan2_end
*atan2_000to002
if %atan2_xy>38188 goto*atan2_000to001
mov %%atan2_dig,2:goto*atan2_end
*atan2_000to005
if %atan2_xy>22903 goto*atan2_000to002
goto*atan2_003to005
*atan2_000to011
if %atan2_xy>10385 goto*atan2_000to005
goto*atan2_006to011
*atan2_000to022
if %atan2_xy>4915 goto*atan2_000to011
goto*atan2_012to022
*atan2_000to045
if %atan2_xy>2414 goto*atan2_000to022
goto*atan2_023to045
*atan2_003to004
if %atan2_xy>16349 mov %%atan2_dig,3:goto*atan2_end
mov %%atan2_dig,4:goto*atan2_end
*atan2_003to005
if %atan2_xy>12706 goto*atan2_003to004
mov %%atan2_dig,5:goto*atan2_end
*atan2_006to007
if %atan2_xy>8776 mov %%atan2_dig,6:goto*atan2_end
mov %%atan2_dig,7:goto*atan2_end
*atan2_006to008
if %atan2_xy>7595 goto*atan2_006to007
mov %%atan2_dig,8:goto*atan2_end
*atan2_006to011
if %atan2_xy>6691 goto*atan2_006to008
goto*atan2_009to011
*atan2_009to010
if %atan2_xy>5975 mov %%atan2_dig,9:goto*atan2_end
mov %%atan2_dig,10:goto*atan2_end
*atan2_009to011
if %atan2_xy>5395 goto*atan2_009to010
mov %%atan2_dig,11:goto*atan2_end
*atan2_012to013
if %atan2_xy>4510 mov %%atan2_dig,12:goto*atan2_end
mov %%atan2_dig,13:goto*atan2_end
*atan2_012to014
if %atan2_xy>4165 goto*atan2_012to013
mov %%atan2_dig,14:goto*atan2_end
*atan2_012to017
if %atan2_xy>3866 goto*atan2_012to014
goto*atan2_015to017
*atan2_012to022
if %atan2_xy>3171 goto*atan2_012to017
goto*atan2_018to022
*atan2_015to016
if %atan2_xy>3605 mov %%atan2_dig,15:goto*atan2_end
mov %%atan2_dig,16:goto*atan2_end
*atan2_015to017
if %atan2_xy>3375 goto*atan2_015to016
mov %%atan2_dig,17:goto*atan2_end
*atan2_018to019
if %atan2_xy>2988 mov %%atan2_dig,18:goto*atan2_end
mov %%atan2_dig,19:goto*atan2_end
*atan2_018to020
if %atan2_xy>2823 goto*atan2_018to019
mov %%atan2_dig,20:goto*atan2_end
*atan2_018to022
if %atan2_xy>2674 goto*atan2_018to020
goto*atan2_021to022
*atan2_021to022
if %atan2_xy>2538 mov %%atan2_dig,21:goto*atan2_end
mov %%atan2_dig,22:goto*atan2_end
*atan2_023to024
if %atan2_xy>2299 mov %%atan2_dig,23:goto*atan2_end
mov %%atan2_dig,24:goto*atan2_end
*atan2_023to025
if %atan2_xy>2194 goto*atan2_023to024
mov %%atan2_dig,25:goto*atan2_end
*atan2_023to028
if %atan2_xy>2096 goto*atan2_023to025
goto*atan2_026to028
*atan2_023to034
if %atan2_xy>1841 goto*atan2_023to028
goto*atan2_029to034
*atan2_023to045
if %atan2_xy>1455 goto*atan2_023to034
goto*atan2_035to045
*atan2_026to027
if %atan2_xy>2005 mov %%atan2_dig,26:goto*atan2_end
mov %%atan2_dig,27:goto*atan2_end
*atan2_026to028
if %atan2_xy>1920 goto*atan2_026to027
mov %%atan2_dig,28:goto*atan2_end
*atan2_029to030
if %atan2_xy>1767 mov %%atan2_dig,29:goto*atan2_end
mov %%atan2_dig,30:goto*atan2_end
*atan2_029to031
if %atan2_xy>1697 goto*atan2_029to030
mov %%atan2_dig,31:goto*atan2_end
*atan2_029to034
if %atan2_xy>1631 goto*atan2_029to031
goto*atan2_032to034
*atan2_032to033
if %atan2_xy>1569 mov %%atan2_dig,32:goto*atan2_end
mov %%atan2_dig,33:goto*atan2_end
*atan2_032to034
if %atan2_xy>1510 goto*atan2_032to033
mov %%atan2_dig,34:goto*atan2_end
*atan2_035to036
if %atan2_xy>1401 mov %%atan2_dig,35:goto*atan2_end
mov %%atan2_dig,36:goto*atan2_end
*atan2_035to037
if %atan2_xy>1351 goto*atan2_035to036
mov %%atan2_dig,37:goto*atan2_end
*atan2_035to040
if %atan2_xy>1303 goto*atan2_035to037
goto*atan2_038to040
*atan2_035to045
if %atan2_xy>1170 goto*atan2_035to040
goto*atan2_041to045
*atan2_038to039
if %atan2_xy>1257 mov %%atan2_dig,38:goto*atan2_end
mov %%atan2_dig,39:goto*atan2_end
*atan2_038to040
if %atan2_xy>1213 goto*atan2_038to039
mov %%atan2_dig,40:goto*atan2_end
*atan2_041to042
if %atan2_xy>1130 mov %%atan2_dig,41:goto*atan2_end
mov %%atan2_dig,42:goto*atan2_end
*atan2_041to043
if %atan2_xy>1091 goto*atan2_041to042
mov %%atan2_dig,43:goto*atan2_end
*atan2_041to045
if %atan2_xy>1053 goto*atan2_041to043
goto*atan2_044to045
*atan2_044to045
if %atan2_xy>1017 mov %%atan2_dig,44:goto*atan2_end
mov %%atan2_dig,45:goto*atan2_end

汎用ライブラリ・define_math.txt

多分色々使われると思われる物をまとめてみた。適宜適当に増やしていく。使用する変数を使いまわすことで、変数領域を圧迫しないのが利点。

define_math.txt

numalias math_param1
numalias math_param2
numalias math_result
numalias math_temp1
numalias math_temp2
numalias math_loop
------
------
;==============================
; 絶対値。引数をそのまま絶対値に変換する。
;==============================
 *abs
getparam i%math_result
if %%math_result < 0 mul %%math_result,(-1)
return
;==============================
; 絶対値。第一引数に第二引数の絶対値を代入する。
;==============================
 *abs2
getparam i%math_result,%math_param1
if %math_param1 < 0 mul %math_param1,(-1)
mov %%math_result,%math_param1
return
;==============================
; 端数切り上げ割り算
;==============================
 *div2
getparam i%math_result,%math_param1
mov %math_temp1,%%math_result
div %math_temp1,%math_param1:mul %math_temp1,%math_param1
mov %math_temp2,0
if %%math_result <> %math_temp1 mov %math_temp2,1
div %math_temp1,%math_param1:add %math_temp1,%math_temp2
mov %%math_result,%math_temp1
return
;==============================
; 文字列の左側に追加をする。
;==============================
 *left_add
getparam s%math_result,$math_param1
add $math_param1,$%math_result
mov $%math_result,$math_param1
return
;==============================
; 文字列を二つに分割する。右からn文字目で切り取る。
;==============================
 *right_split
getparam s%math_result,s%math_temp1,$math_param1,%math_param2
len %math_param1,$math_param1
sub %math_param1,%math_param2
mid $%math_result,$math_param1,0,%math_param1
mid $%math_temp1,$math_param1,%math_param1,%math_param2
return
;==============================
; 文字列を二つに分割する。右からn文字目で切り取る。2バイト文字用
;==============================
 *right_split2
getparam s%math_result,s%math_temp1,$math_param1,%math_param2
len %math_param1,$math_param1
sub %math_param1,%math_param2*2
mid $%math_result,$math_param1,0,%math_param1
mid $%math_temp1,$math_param1,%math_param1,%math_param2*2
return
;==============================
; 奇数か偶数かを返す。
;==============================
 *is_even
getparam i%math_result,%math_param1
mov %math_param2,%math_param1
div %math_param2,2
mul %math_param2,2
mov %%math_result,0
if %math_param1 = %math_param2 mov %%math_result,1
return
 *is_odd
getparam i%math_result,%math_param1
mov %math_param2,%math_param1
div %math_param2,2
mul %math_param2,2
mov %%math_result,1
if %math_param1 = %math_param2 mov %%math_result,0
return

NScripterでSTG

風呂STG - 永字八法の続き。
atan2がきれいになった記念に。

ルール

  • マウスカーソルのある方向を向いてそっちに移動する。
  • クリック(押しっぱなしの気分で)すると弾発射。弾発射中は方向転換はできるが移動はできない。
  • 敵は移動する敵と砲台がランダム。
  • 自分の弾で敵を倒してもスコアにはならない。敵と敵をぶつけて倒せば1点(実質2点)、敵の弾に敵をぶつければ3点が得られる。
  • マップ上の敵を全部倒せば面クリアー。

クリーンナップ

ベンチマークの結果を受けて、実際のところnumalias(とstralias)は使わなければ使わないほど早いことがわかった。なので、numaliasを数値に変換するPerlスクリプトを試作してみたが、単純な置換では命令文も破壊してしまうことが判明した。
結局のところ、一行毎に読み込んでNScriptの構文解析をしなければならないことがわかった。手間がかかりそうなので放ることにした。

WING2005年10月号

綿流し編第五話(方篠ゆとり

綿流し前日から綿流し当日、富竹と鷹野が祭具殿に忍び込む直前まで。
鷹野んってタイトスカートじゃなくてロングパンツだったんだ……。
「悟史は転校した」って言うレナの瞳が怖い怖い。

特別読切「@やまだひねもす悩み相談所」(敷誠一

結構おもろかったです。

WING2005年11月号

綿流し編第六話(方篠ゆとり

予定通り。祭具殿に中に入り、詩音(と富竹)は音を聞き、圭一と鷹野は聞かなかった。
魅音から「詩音に会わなかった?」と聞かれる圭一。

宣伝

あ、なんか面白そう(な設定)。
で、amazonの批評を見ると……見事にわかれていて笑った。

スクラップ街に天使はいるか(月ノ輪航介

「第69回金の翼賞佳作受賞作品」とか。
いまいちジェンダーがはっきりしないが、スクラップ寸前の天使型ロボ娘3人のちょっといい話。この調子でロボ娘を……無理か。

2005年10月号

祟殺し編第6話(鈴木次郎

詩音、「悟史が転校」と聞いてマジになるシーンから。怖いね。
そして神社の境内で限定ジャンケン。なんだそりゃ。
そして魅音とレナに悟史のことを聞く圭一。マジになるレナ。
翌日から、沙都子は学校に来なくなる。大石がやってきて、沙都子を出せと言い出した。
順当に進んでますねー。
一番胃が痛くなる話ではありますが、圭一の鉄平襲撃シーンが一番楽しみなのも事実。
早く進まないかなー。

ZOMBIE-LOANPEACH-PIT

娘を養うためにゾンビになってまで働くお父さん。人間のカガミだね!
そんなリーマンゾンビさんも、ついに荒事に手を染めることを決意?
屍姫 1 (ガンガンコミックス)と比べると、より人間臭くていい感じだ。

2005年11月号

祟殺し編第7話(鈴木次郎

大石が去った後、圭一と監督と北条家を訪れる。そこで鉄平登場。うーむ、ただのチンピラじゃのー。
この辺の展開は胃が痛いので、描いた漫画家さんには悪いけどさらっと流させていただきますよと。

2005年秋季号

やっぱり、2005年夏季号がみつからないんだよね。

鬼隠し編第三話(鈴羅木かりん

富竹さんが死んだ。大石の車の中で話を聞く圭一。
動揺する圭一、眠ったふりして魅音とレナの話を聞いてしまう。
自室で大石に電話する圭一。しかしそれをレナに聞かれてしまう。
ハイライトは「嘘だっ!」
ていうか、レナの瞳、縦に割れてるよー。

ドラゴン・パーティ

※完全にネタバレしてますので注意。
中里融司と言う作家さんは、ロボ娘スキーの中では一定の地位を築いておられるお方でして、また、その礎となったのがこの作品であります。
設定はこんな感じ。

宇宙に出られるようになった人類。遊星パンドラをみつけ、その中から異星技術を手に入れた。それによって人格を備えたアンドロイドを作れるようになり、ついには他の太陽系まで移民が可能になったのであった。
しかしそこに飛来した「敵」。この「敵」を見たものは「敵」の支配する別種の生き物に変わってしまう。
事実上宇宙を閉ざされた人類は、「敵」との戦いをアンドロイドたちにまかせるしかなく、徐々に衰退していった……

まあ、ここまではいい。しかしだ。

アンドロイドは原因は不明なれど女性型にしなければ起動しない

何この妄想設定……_ト ̄|○
そして、「敵」を見ても支配されない特異体質の主人公の少年が、特別に作られたロボ娘星海真魚と仲間たちとともにドラゴン型宇宙戦艦「魁龍」に乗り込み、「敵」にさらわれた妹を奪還する。そういう導入なんですね。
もうね、生身の女が数えるほどしか出てこないんですよ。名前つきを列挙すると、

  • 一巻のやられ役の女軍人
  • 真魚作ったとこの技術者
  • 主人公と同じ体質の女の子
  • 主人公の妹
  • 主人公の妹の遺伝子その他から作られた「敵」の戦士
  • 他の太陽系の種族の女戦士

これっくらいしかいないんですよ!
後出てくるチョイ役含む女の子は全部ロボ娘! 何この徹底振り! もう最高ですよ! 眼鏡かけたロボ娘さえ出てくるし、「ドリルつけるから!」とか言われて迷うロボ娘とかも出るし!
そして読んでいるうちにこんな状況が!

処女神の鉄槌(アルテミス・ハンマー)

……おっぱいミサイルキタ━━━━(゜∀゜)━━━━ッ!!
94センチが! 94センチが! おっぱいミサイルですよ旦那!
他にも徹底的に壊されてチップ一つから再生とかのロボ萌え描写がふんだんです。
最後のとどめに、ロボ娘たちの下腹部にすえつけられた謎の部品。それは、人格情報を融合して新たな成長する機械を作り出す人工子宮だったのだ!
だがこの部品は生身の人間には使えない。情報提供者になるには、異星技術によって体と脳を無機質に変換しなければならないのだ。
しかしロボ娘を愛する少年は決意する。
「俺は人間をやめるぞーっ!」(意訳)
漢や……ほんまもんの漢や……orz
そんな風にロボ娘スキーにとっては、ていうかこれロボ娘スキーが自分の妄想を存分に垂れ流しただけだろうと言うような内容なのですよ。満足満足。
難点は、絵師さん描くところのロボ娘たちがあんまり区別がつかないのと、最後の七巻はものすごく駆け足だったことくらいですかね。まあ、勢いに乗れば気にならない程度ですが。
その手の趣味の方には、五つ星でおすすめです。是非。

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

ふるーつメイド 1 (アクションコミックス アクションコミックスもえよん)

寺本薫の初(?)商業単行本なのですよ。
同人ではTo Heartネタでマルチとあかりの心理的な駆け引きをよく描いていた作家さんなのですよ。
で、これはまあ普通の萌え四コマなんですが、連載時はほぼ一発ネタだったと思われるリンゴロボが出たので紹介対象なのですよ。
メイドの林檎さんの影武者であり、ネコミミアンミラアンドロイドで、ジェットで空を飛べて講義もかわりにできると言う優れもの。てか欲しいよ。
カバー外して詳しいところをその目で確認して欲しいのですよ。