借り暮らしのリンネ

ふりーむ!DL先 ショタおね錬金スローライフSLG  借金を背負った主人公が! 偶然拾った少年と同棲しつつ! 錬金術でチマチマとお金を稼ぐ! 短編シミュレーション乙女ゲーム! 少年は初見素っ気ないツンツン態度ですが、好感度下がったり嫌われたり冷たい態度を取られることはなくゲームオーバーもバッドエンドもありません。 ゆっくり同棲スローライフしていってね! ★おねショタおねメインで女性向けです ★えっち♂なイベもたまにあります ★1セーブで全エンド見られます (詳しくは↓のReadMe参照) 攻略相手:1人(少年のみ) エンド数:3種 プレイ時間:1~2時間程度 CG:12枚 -------------------------------------------------- 【ゲーム操作】 マウス操作オンリーです 採取アイコンは左クリック押しっぱなしだと連続採取できて楽です F5でリセット 【実況プレイ&レビュー記事について】 ご自由にどうぞ。報告は不要です ハイ、久々の投稿がゲームレビューかよというツッコミはナシでお願いします。 面白い映画とかゲームとかいっぱいあったけど、 ブログの存在忘れてた 割と忙しかったので、レビューついでにこっちにも残しておこうかと。 自作は時間のある時にいじってますが、まあ当分完成しないでしょう。 いつも大人の道楽さんのゲームは無料有料問わず遊んでいますが、錬金ゲームはやはり時間泥棒ですね。 PCで遊びましたが、スマホでも遊べるようですね。 絵柄は人を選ぶようですが、私は好きです。 これは「家事万能なショタが家にいてくれたらいいな」とかいう夢を叶えますね。 こんないい子、いるのかしら?と不安になります。 毎日おやつ出してくださーい! 私もコレほしい! セクハラが楽しくて 、ついつい よく寝るイズ君をつついて起こしてしまいます。 朝起こしてくれるカットインがありましたが、あれはドキドキしますね。 「お前……今何してたの……?」 という疑問が渦巻きます。 酔っぱらったまま錬金すると、ランダム錬成してくれたり、燃えないゴミが出来たら個人的に嬉しかったかなあ。なくてもいいですけど。 漬物石……そこで漬物石なんですね。 割と主人公はタフなので、HP0なのに町に行ったり、錬金できたりします。 フラフラなのに過酷な労働をさせてごめんなさい?! 興味が上

Nscripter注意点

 久々に触ったNSCで失敗した点を、以降のページにて挙げてみる。どんなに緻密に組み上げたつもりのスクリプトであっても、例外はつきものです。
 いきなり大掛かりなスクリプトを組んで、いざ実行させてみると2~3行進まぬ内に大体エラーが起きます。小さな処理をチマチマ確認しつつ、それを大きなスクリプトに組み込んでいくやり方が実は1番スムーズです。これは経験則です。

システム周り

●画面サイズう?

 全然気にしていませんでしたが、時代と共に画面も変わっていくようです。800×600かなとか思ってたら、実はワイド画面を中心に売っていくようなので、恐らくはワイド版で作った方がいいかもしれません。
 ノベルでどう対応すればいいのと思うかもしれないが、ここは頭の使いよう。広すぎるメッセージウィンドウはかえって、読みにくいだけなので、ならば常時表示メニューにすればいいじゃないという。
 私はノベルぐらいしかしないので、今のサイズ(4:3)が気に入っているのですが、そうも言ってられないみたい。自分でサイズを決められる時はワイドで行こうと思う。1024×768とか一部から苦情が来るので、作らない方が無難。あと320×240とかは、すげー見づらいので個人的にやめてほしい。プチ種は絵が綺麗なのに、プレイしづらい状況……。

●初歩的だが致命的なコメントアウト

 “:”と”;”の違い。吉里吉里とかもそうだが、;はコメントに使う。
 更にTJSでは構文の最後に必ず挟むため、癖がついたときNSCでは確実に失敗の元となる。NSCだと連続命令を”:”で挿むため、間違えてソレをやってしまい、デバッガーにかなり怒られた。

●日本語ワカンナイヨ

 ファイル名に日本語使っちゃ駄目です。全部、英数字にしましょう。アーカイブ化するとき、面倒くさいです。
 englishでは全英文も可能ですが、ルビが正常に動作しません。

●セーブ番号、1!

 意外と忘れがちなのが、セーブ番号は0番ではなく1番からということ。ほとんどの機能が0番から使えるため、やってしまいがちなミスです。

●ユーザー定義命令

 ユーザー定義命令において、空の文字列パラメータを無視してはいけないことを知る。引数をvoidで渡すときは、””を使えばエラーなく処理できる。
 なお引数を持ったユーザー関数はタブ/スペースがないと、そのまま次のNS命令を引数に読んでしまう可能性がある。ユーザー定義命令を使い、コメントを同じ行に書いた場合、高速スキップ中に誤って読み込まれて落ちることがある。コメントはなるべく違う行に書く。
 スキップ時は飛ばしたい命令があった時、引数だけはちゃんと受け取ってリターンするといい。でないと引数がまんま返って来て、メッセージウィンドウに表示されたりする。
 ちなみにエラーでdefine節に戻っているようであれば、それはユーザー定義命令の中でユーザー定義命令をまた呼んでしまったことを示している可能性が高い。_を頭につけた元の命令を使おう。

●エイリアス万歳

 定数に名前を付けられるエイリアスを有効活用すると、かなりスクリプト組みやすくなる。ちなみに
mov %0,10
numalias abc,%0
inc %0
 みたいにすると変数番号を特に管理せずとも、%abcという風に使えるのでイイ。サブルーチンとゲーム内容で使う変数は分けておいた方が無難。また変数番号の変更も簡単になるのでお勧め。
 ちなみに数字エイリアスは、定義名さえ違うなら番号が被っても使うことはできる。
 どんなによそで使わないと思ってても、後で修正できるようにファイル名にはエイリアスを使うこと。なおLuaを使う場合、stralias命令はNSExecの中以外では使えない。エイリアスの代わりにLuaの辞書配列を使えば代用可能。

●半角を無茶ぶりで使う

 半角文字は命令と勘違いされるので、基本使用不可ですね。english で全英文も可能ですが、ルビが正常に動作しない。
 無理やり使う例としては、半角文字を偶数の数で使っていくこと。そうすれば全角と同じことになります。……でも strsp では¥マークとの兼ね合わせが大変でした。

●スキップ速度設定

 seteffectspeed はスキップ速度を設定できる。0は通常、1高速、2は最速

●WAITの重要性

 WAITはほぼ使わないで、delayばっかり使っていたのですが、WAITやっと使いどころが分かりました。多分Forループの画像処理のときだ。
 ウェイトがなさすぎるとCPUに負担がかかり、処理落ちどころか最悪落ちます。画面の書き換え頻度を調整することで、ヌルヌル動いたり、ガクガク動いたりするのでしょう。
 スタッフロールはある意味、いい経験であった。

●texton命令も意外と大事。

 シスカマでどこかに飛んで、ちゃんと戻って来てるのか。たまに分からなくなるので、textonはしておこう。

●NSGetClickのホイールの値(Lua)

 何もしなければ0、上ならマイナス、下ならプラスされる。

●ラベル

 シーンごとのラベル管理は必要。主にタイトル画面、おまけ画面とか。下手にLuaで関数作ってシーン管理やらせようもんなら後々面倒臭くなる。シーンごとに分けられるものはラベルで、ゲーム内のあちこちから呼び出す命令であればLuaでやった方がいいかも。
◆変数系###●グローバル変数
 グローバル変数はglobalonを宣言すれば使える。通常は0~199までローカル変数、200~グローバル変数となる。00.txt文頭に「;value 500」をスペースを挿まずに記述することで境界を変更できる。0~4000間で変更可能。

●配列は面倒なんです。

 配列変数なるものがあるが、これが相当使いづらい。命令がmov,movlしか使えない。計算できたら最高だけど。グローバル変数にも使えない。返り値にすら使用できないダメっぷり。
 でも、こういう使い方はできた。
mov $1,"あいうえお"
mov ?0[1],1
mov %0,1
$?0[%0] ;$%0と同じ意味
“あいうえお”と表示されます。
 代わりに%%0という使い方があるので、そちらを勧める。%0に入っている数字の変数にアクセスするもの。具体的に言うと%0=100,%%0は%100と同義ってこと。

●無限ループ

 全く操作を受け付けない時に、ループをちゃんと抜けていない可能性がある。よく確認しよう。

●NSdoEvent

 Luaを使う場合なのですが。ループ中にフリーズするようであれば、NSdoEvent()で真なら抜けるようにするといいかも。これを入れておくと動作が軽く感じたりするかも?

●Luaテーブルのコピー

table ={}
 tmp =table
 だとコピーではなく参照になってしまう。つまりtmpの中身をいじると元データまで変化してしまうということ。
 そういう場合は、unpack関数が便利です。
 t ={}
 tmp ={unpack (t)}
 ならば、テーブルの中身を展開し、別の変数に渡すことができるのです。便利。

●return大事!

 これはNSでも吉里吉里でも言えることですが……NSならLuaでラベル移動とかしたくなるじゃないですか。
 しかし落とし穴。確かにラベル位置は移動するんですが、スクリプト処理はLuaのまま実行されるのですね。
 どういうことかと言うと、移動先に何かしら処理を書いておいたとする。しかしLuaがreturnされてない状態だと、NSGoto命令後にその後の処理を実行してしまう。移動先の処理は確か後回しにされた記憶があります。飛んだ後はreturnを忘れずに!
◆音系###●nsogg2.dllがあるとMIDIは再生しない
 MIDI自体もしかしたら時代遅れなのかもしれないが、私はあのコンパクトさが大好きなのです。音質にこだわるときだけ、OGGを使うことにしてます。苦情があれば、全部MIDIやめますけどね。 Vista以降はMIDI全然ダメですが、TMIDI使えば、まだそれなりに聞けたりする。ボーカロイドだって一種のMIDIなんだし、いいじゃないMIDI。
◆スプライト系###●transmode alpha注意点
 使用した場合、非透過PNGは「:c;」をパスに付ける必要がある。更にスプライトを使う際にはJPEGであっても同様に指定しなければならない。要するにスプライトに使う、不透明な画像は全部コピーオプションしとけです。

●NSSpClear全消しは無理

 cspのように-1を指定しても消してくれない。ループして消そう。

●マスクは別画像が便利

 ギャラリーで単独表示(背景)などに運用できるので、マスクは別画像に分けた方が便利。容量の節約もできる。

●画像を使わないスプライト

 画像の代わりに塗り潰した四角形を作ることもできる。ちなみに連続で記述すると、横に等分割される。
 :c;>幅,高さ,#色(#色...)だが、変数を使いたい場合は:c;>%0,$0,#ffffffという記述ではなく、
mov %0,0
itoa $0,%0
mov $1,100
mov $0,":c;>"+$0+","+$1+",#ffffff"
lsp 0,$0,x,y
print 1
などを使う。
 更に文字も画像のように扱える。但しstrsp命令は、ちょっとしたスタッフロールですら簡単に停止するような代物なので、使い方に気をつける。
 ちなみに柊はスタッフロールの最後らへんに画像を流そうとして停止した。正確には途中経過が飛ばされた。

●Luaでスプライトアニメ移動

 Lua側でスプライトを移動させると、スプライトアニメは動かない。NSExecAnimationを挟めば動く。
◆メニュー系###●メニューバーの値
 メニューバーを消していなければ、プレイヤーが使うこともあるだろう。ボタン待ちの間にそれらが使われた時、””が返る(文字列ならコレ。数字は知らない)。主にリセット判定やEND判定に使うといい。リセットがまともに動作しない時は大体ループを抜けていないことが多い。
◆動画系###●FLASH恨み節
 動画なのですが……FLASHはプラグイン使ってても使用しない方が無難です。NSCがバージョンUPしたときとか、微妙に仕様が変わるときもあり、正直不安定です。 FLASHはブラウザでも今後非対応となるので非推奨。
 MPEGやWMV、AVIを素直に使った方が不具合は起きにくいと思います。
◆外部系###●セーブデータを指定のフォルダに置かせる
 savedir “セーブフォルダ名”命令は、自分でフォルダを作らないといけないので、配布する際はフォルダ込みで配布すること。

INI命令は絶対パス

 getini命令はカレントディレクトリを読まず、絶対パス指定でなければ読み込まない。先祖川氏のファイル操作DLLなどカレントパスを取得できれば、ゲームフォルダ内のINIでも指定可能。
◆アーカイブ関連###●NS2にまだ時代が追いついてない。
 まだ十分じゃないだけだよねっ。期待してるんだけど、今のままではほとんど使い物になりません。まだ使うべきでない。旧ツールの中にある nsaarc.exe を使いましょう。

●nscmaker2

 EOFの後ろからキッチリ次のテキストファイルを読むため、ラベルなどが1行目から入ってると目も当てられない。スクリプトの最後は改行を忘れずに。合体時に酷い目に遭う。
 それからパッチを作る時の番号とは行番号などではなく、単純に00.txt、20txtなどのことを指す。20と指定すれば、20、21.npなどのアップデートパッチが作られる。

このブログの人気の投稿

YUKARI

魔壊屋姉妹

【Azpainter Linux版の覚書】