空想曲線

吉里吉里2/KAG3でのゲーム制作に使える小ネタ置き場。ゲーム用素材も置いてます。

ソウルハッカーズ買ってきた  

2012-08-31[Fri]
cm0
tb0

予約してなかったけどサントラもついてた。

ソウルハッカーズ

3DS LLも一緒に買って来ました。画面デカいよ!
大画面にはしゃいでいましたが、その分重たくなるので腕が疲れます。
寝っ転がって遊ぶには少し厳しいかも。


3Dになってた箇所
・タイトル画面
・ダンジョン全部
・会話時の顔グラフィックとテキスト
・敵悪魔(前列と後列でも奥行きが違って見える)
・メニュー画面
・「真・女神転生4」のトレーラー


2時間ほどプレイして天体博物館のムーウィス戦まで来ましたが、
サクサク進むあまりレベルが足りなくて全滅しました。
COMPハックは使わずそのままでプレイしてます。


ローディングも戦闘スピードもかなり速い。
PS版が遅かったということもありますがキーレスポンスも快適。
あと主人公が持っている携帯のグラフィックが今風に変わってました。
確かに当時の携帯では古臭すぎるもんな。


また、今回フルボイスということですが、モブキャラにも声がついてました。
「サマナー」のアクセントに一瞬「ん?」となったりしましたが。
セリフの自動送り機能がついたのも嬉しいですね。

では、シーアークでレベル上げしてきます(・ω・)ノ< ボンボヤージ!


▼天体博物館の星座メモ(クイズ対策にどうぞ)

おひつじ座
aries、うお座の東、おうし座の西、第2宮、秋の星座
おうし座
taurus、おひつじ座の東、ふたご座の西、第3宮、冬の星座
ふたご座
gemini。おうし座の東、かに座の西、第4宮、冬の星座
かに座
cancer、ふたご座の東、しし座の西、第5宮、春の星座
しし座
leo、おとめ座の西、第6宮、春の星座
おとめ座
virgo、しし座の東、てんびん座の西、第7宮、春の星座
てんびん座
libra、おとめ座とさそり座の間、第8宮、夏の星座
さそり座
scorpius、てんびん座の東、いて座の西、第9宮、夏の星座
いて座
sagittarius、さそり座とやぎ座の間、第10宮、夏の星座
やぎ座
capricornus、いて座の東、みずがめ座の西、第11宮、秋の星座
みずがめ座
aquarius、やぎ座の東、うお座の西、第12宮、秋の星座
うお座
pisces、みずがめ座の東、おひつじ座の西、第1宮、秋の星座

その他「黄道上の星座はいくつ?」は毎回出るような気がします(答:12)


そういや、業魔殿の背景に「生命の樹」が描かれていることに今更気づいたよ。

ソウルハッカーズまであともう少し  

2012-08-21[Tue]
cm0
tb0

発売まで待ち切れずPS版をひっぱり出してプレイしてました。
うん、やっぱり面白い。でもローディング時間が長い。こんなに長かったっけ。
これについては3DS版で大幅に改良されているようなので期待。



▼続きを読む▼

吉里吉里/KAG:BGMにまつわるちょいネタ  

2012-08-17[Fri]
cm1
tb0

吉里吉里/KAGちょいネタシリーズ。今回はBGM関連のネタをお送りします。


再生中のファイル名を調べたい


[emb exp="kag.bgm.playingStorage"]

実行すると画面には再生中のBGMのファイル名が表示されます。
使い道はあまりないのですが、覚えておいて損はありません。



BGMが再生中かどうか調べたい


[emb exp="kag.bgm.currentBuffer.status"]

再生中なら「play」、停止中なら「stop」を返します。



ファイル名が空(何も演奏されてない)のときだけBGMを再生する


[playbgm storage=hoge cond="kag.bgm.playingStorage==''"]

condを使えばこういった処理もできます。


■もうひとつの書き方(処理の中身はいっしょ)

[playbgm storage=hoge cond="kag.bgm.currentBuffer.status !='play'"]

どちらを使うかは状況とお好みに応じて。



BGMの再生、停止、一時停止、一時停止の解除(タグ不使用版)


[link exp="kag.bgm.play(%[storage:'ファイル名', loop=true])"]BGM再生[endlink]
[link exp="kag.bgm.stop()"]
BGM停止[endlink]
[link exp="kag.bgm.pause()"]
一時停止[endlink]
[link exp="kag.bgm.resume()"]
一時停止解除[endlink]
[s]

簡易型のBGM試聴モードを作るならコレでいけそうな気がします。
(曲数が多いと作るのがちょっとしんどいケド)
テキストリンクではなく、ボタンを作ると見た目がそれっぽくなるかも知れません。
buttonタグでも処理は同じなのでスクリプトは省略します。



おまけ・スキップ中は効果音を再生させない


[playse storage=hoge cond="kag.skipmode <= 1"]

スキップモードが1以下のときだけ効果音を再生させます。
skipmodeの中身についてはMainWindow.tjsの140行目付近を確認。


var skipmode = 0; //スキップモード
// 0:通常
// 1:クリック待ちまで
// 2:改ページ待ちまで
// 3:次の停止まで
// 4:早送り

つまり「スキップ中ではない=0か1」ということなので
condの中身がkag.skipmode<=1となっています。
応用すれば、スキップ中のBGM再生・停止のフェードをやめたり、
トランジションのスキップを可能にするといった処理にも使えます。

といったところで今回はおしまい(´∀`*)ノシ


今日のらくがき  

2012-08-04[Sat]
cm0
tb0

ハヤカワミステリマガジン9月号から「夢幻紳士 新・怪奇篇」がスタート。
「回帰篇」から3年も経ってたのかー。そんでもってミスマガが既に品切れな件(´・ω・`)

夢幻魔実也
あ、最近の作品では煙草吸ってないんだっけか。

なぜかこれを描いてるときにネウロが頭に浮かんだ。なんも共通点ないのに。
新連載の「暗殺教室」面白いよね(´∀`*)< そのうち殺センセーも描きたい


吉里吉里/KAG:式中辞書配列の使い方とそのメリット  

2012-08-02[Thu]
cm0
tb0

吉里吉里/KAGちょいネタシリーズ。今回は式中辞書配列についてのお話です。
そんなに難しいことは書きませんので、パピコでも食べながらのんびりお読みください。


式中辞書配列ってなに?


式の中に辞書配列が入ったもの。文字通りです(´ω`)
例を上げてみましょう。

[ iscript ]

// 今夏もアイスがないと乗り切れない
f.ice = %["パピコ"=>"おいしい", "爽"=>"ウマー", ”白くま”=>"デリシャス"];

[ endscript ]

変数f.iceの中にアイスの名前とそれにつけられた評価(値)が入っています。
アクセスする場合は次のように書きます。


*hoge
;表示させる
[ emb exp="f.ice.パピコ" ]

実行すると、画面にはパピコに与えられた「おいしい」という値が表示されます。
辞書配列には普通の配列のような添字がないので、どの辞書を参照するのかこちらで指定しないといけません。



ステータスの格納場所として使用する


キャラクタごとのステータスを格納するのに式中辞書配列を使ってみます。
(量が多いときは素直にcsvファイルを作って管理した方がいいと思います)

[ iscript ]

f.hoge = [

%["name"=>'ねこ', "pow"=>100, "def"=>70],
%["name"=>'いぬ', "pow"=>120,"def"=>80],
%["name"=>'とり', "pow"=>80, "def"=>100],
%["name"=>'ぱんだ', "pow"=>90, "def"=>75]

];

[ endscript ]

配列変数f.hogeの要素0~3のそれぞれに辞書配列が入っています。
nameはキャラの名前、powは攻撃力、defは防御力とします。

辞書配列の最後にカンマをつけないよう気をつけましょう。
配列f.hogeの添字がひとつ増えてしまいエラーになります。

アクセスの仕方は以下のとおりです。


;ねこの攻撃力を表示したい
[ emb exp="f.hoge[0].pow" ]

;いぬの攻撃力に10を足したい
[ eval exp="f.hoge[1].pow += 10" ]

;とりの防御力を1.5倍にしたい
[ eval exp="f.hoge[2].def *= 1.5" ]



式中辞書配列の便利な使い方


今回の本題です。何が便利かというと次のようなときです。

キャラ全員の攻撃力を20ずつ上げたいなぁ」というとき。

キャラが2~3人であれば個別にスクリプトを書いてやればいいのですが、
10人、20人に増えてくると面倒くさがりの自分はコピペすらイヤになってきます。
そこで、for構文を使ってループ処理をさせることにします。

[iscript]

// こう書けば一行で済む
for (i=0; i < f.hoge.count; i++){f.hoge[i].pow += 20;}

[endscript]


f.hogeの要素の数だけループしてpowに20を足していってくれるので、
キャラクタの数が100人になろうが65535人になろうが修正の必要はありません。



▼KAGで書きたいときはこんなカンジで

*pre
;カウント用の一時変数(上の例で言えば i に当たる部分)を評価
[eval exp="tf.ck = 0"]

*loop
;f.hogeの添字tf.ckのpowに20を足す
[eval exp="f.hoge[tf.ck].pow += 20"]
;tf.ckに1を足す
[eval exp="tf.ck++"]

;tf.ckの値がf.hogeの要素数未満なら*loopへ戻る
[if exp="tf.ck < f.hoge.count"]
[jump targt=*loop]

;そうでないとき(tf.ck==f.hoge.count)はループを抜ける
[else]
[jump target=*exit]
[endif]


*exit
[cm]
処理が終わったよ。

状況に応じて使いやすい方を選べば良いと思います。
ただ、こうした繰り返し演算はTJSの方が強いと言われてます(処理が速い)

シミュレーション系のゲームなんかで使えると思うので、よければお試しください。
それでは、また次回(´∀`*)ノシ < コミケに行く人、体調気をつけてね!


現在のページ

Category

Link

Comment

Mailform

Author

Twitter