SRPGStudio総合スレ その1 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
!extend:checked:vvvvv:1000:512
シミュレーションゲーム制作ソフト、
SRPGStudioについて語るスレです
■公式
http://srpgstudio.com/
■SRPG Studio wiki
http://www8.atwiki.jp/srpg_studio/
関連スレ
【同人ゲーム板】 - SRPG_Studio Part6
http://hayabusa6.2ch.net/test/read.cgi/gameama/1491309082/
【ゲーム製作技術】 - 製作者スレ SRPG Studio 24章
http://mevius.2ch.net/test/read.cgi/gamedev/1495252696/
◆注意事項◆
・次スレは>>950がワッチョイ形式で立ててください
・制作に関する質問や、作品・素材の投稿は自由です
・ほのぼの会話推奨。荒らしはスルー。NG機能を有効に利用しましょう
VIPQ2_EXTDAT: checked:vvvvv:1000:512:----: EXT was configured 👀
Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f) >>748
voice フォルダで合っているけど
""で囲わないと"voice"という文字列ではなく voice っていう変数の中身を参照しようとしてしまう(= voice なんて変数名は宣言されてないのでエラーになる)
主人公勝利の部分も""で囲う必要があるし拡張子含めて正確なファイル名を記載しないと動かないと思う
null の部分も0でも1でも何でもいいから通し番号書かないと動作しないはず
よって、ファイルの拡張子名は知らないけど、("voice", "主人公勝利.ogg", 1)とか書くのが正解
そして voicePlay って書き方も誤り
voicePlay は MaterialManager オブジェクトの中のメソッドなので
まずこのオブジェクトを取得しないといけない
http://srpgstudio.com/api/manager.html#MaterialManager
そのためには root から getMaterialManager を呼び出せばいい
http://srpgstudio.com/api/index.html#Root
つまり
root.getMaterialManager().voicePlay("voice", "主人公勝利.ogg", 1);
で動作すると思う
あと Material フォルダにある音声ファイルもどのタイミングでも鳴らせるんじゃないかと ああ、もう基礎そのものが全然なってなかったわけか
おかげさまで問題無くできた
長々と細部までとてもわかりやすい解説をありがとう
凄く納得できて、助かった上に勉強にまでなった。まじで感謝
ちょっと土台がないのに半端な調べ方をしたことを反省して一から勉強してくるわ ゲームを重くしたくないんだけど、例えば、敵の回避を0にしたい時、カスパラで設定するか回避0にするカスタムスキルを持たせるかでどっちの方がいいだろうか
カスタムスキルで設定した場合は回避上昇の支援スキルに有効相手で回避0のスキル不一致で楽にバフを無効化できるけども どう実装するのかによるので何とも言えないけど
支援スキル関連の処理はとても重くて
次の1-3の要素が強いほどステータス画面を開いたり、戦闘予測画面を開いたりした瞬間に処理落ちしやすい
1.全体で支援スキル持ちが多い
2.支援スキルの射程が広範囲(全域設定なら関係無い)
3.対象ユニットの所属勢力の総数が多い
rival_support.jsを導入している場合は
2を解消している代わりに
所属勢力関係無く総ユニット数が多い程処理落ちしやすい(3が悪化している)
支援スキルをどのように扱って回避0の実装するか次第だと思う
やり方によっては支援スキルでやろうがカスパラでやろうが全く変わらないはず
実際に支援スキル組んでみて動作がきついならユニットのカスパラでどうにかする事を考えた方がいいと思う 回避0は回避の計算式の最後に
ifカスタムスキルなんちゃら所持の場合
avoid = 0;
でやってる
同じような感じでカスパラでもできると思うけど
思ったんだけど、ソードマスターの必殺+10とかも支援スキルでやるより公式スクリプトのクラス補正のカスパラ使った方が軽くなる? そうだよ
効果単体でも支援関係の処理はなるべく動かさない方がいい マジか
ありがとうございます
移動タイプ示すために何もないダミースキル持たせてるんだけど、これは何で設定した方がいいの?
支援以外だったらなんでもいいの?
とりあえずカスパラ設定してないカスタムスキルにしてるけど ふわふわさんがクラス種族のアイコン表示Plugin作ってるから
それでアイコン設定すればダミースキルとか持たせなくても
クラスをアイコンで表示可能。ほかのとまとめてツイッターにあがってるはず 答えになってないかもなんで、追記
どうしてもダミースキルでやりたいなら
発動率0%のカスタムスキルでメニューに表示しないが一番スマートだとおもう メニューに表示しないと本来の目的が達成できないやつだった() お前らに質問があるんだけどさ
こういう兵種が欲しいってのはある?
またはRTPの改造とか。 >>757
ありがとう
とりあえず試してみる
>>759
女ウォーリアで弓持てるやつが欲しいです!
そういや本家でもいないよね女ウォーリア 女ウォーリアは確かに欲しい
あとソードマスター男女(もうあったっけ?) >>759
ジークンドー
子龍
虎戦士
スカンク
カエル戦士
戦闘兵器(ターミネーター的)
ミドリガメ
ワニ
コウモリ
ドラゴニュート
狼
まだあるけどパッと思いつく限りはまずこのくらいかな リクエストの傾向がバラバラだけど
子龍って三国志の趙雲か? なるほどね
それにしてもカオスな組み合わせでどんなゲーム作ってるのか気になるな ソードマスターっぽいのは既に有志のでいっぱいあると思うけど
モンスター系ならスケルトンの上級っぽいやつが欲しい
ドラクエのナイトリッチみたいな感じで 個人的にはシーフ女改変してバンダナ無しだ髪型変えたの出してほしい
後は上で挙がってるみたいな人外連中 https://www.axfc.net/u/3854539.zip
素材集の更新です
ウォーリアー女の弓モーションとおまけとして大分前に作成したマージナイト女の
キャラチップとモーションを追加しておきました 反撃の可否を決めるスキルって作成可能?
基本反撃できないけどスキル持ってる奴だけ一定確率で反撃できるって機能を作りたいんだけど…… 反撃できるできないってデフォじゃできないんだっけ? >>776
できるけど全員できる、全員できないのどちらかしかできない
自分が作りたいのは特定のキャラだけ(=スキル持ってる奴だけ)確率で反撃できるって感じの内容 確率となるとやっぱスクリプトになっちゃうか
基本攻撃は一方向っていうのは面白そうだけどちょっと戦闘長引きそうだね スクリプトで対応してもUI設定が面倒くさいのだけは解決できないんだよなあ
他のスキルにして確率入れてから元の設定に戻すってやらないと確率設定自体ができない (function(){
var alias1 = AttackChecker.isCounterattack;
AttackChecker.isCounterattack = function(unit, targetUnit) {
var result = alias1.call(this, unit, targetUnit);
// 反撃スキルを所持していないと反撃不可
var skill = SkillControl.getPossessionCustomSkill(targetUnit,'counter')
if(!skill){
return false;
}
return result;
}
})();
確率でってのはやり方分からんけど
スキル持ってたら反撃出来て、持ってないと出来ないってのなら↑ので可能
カスタムのスキルを作ってキーワードをcounterに設定してユニットに持たせればいい
あんまり細かい検証はしてないけど 素人知識でも確率で反撃くらいはいけそうだけど反撃スキル発動した時に
画面に表示させようって考えると途端に分からなくなる そういえばFE基準で考えてたから珍しい気がしたけど、スキル持ちだけ反撃ありのゲームも結構あったな
確率考えないなら基本機能だけでもいけそうだけど(ただし見栄えは悪い)
確率含めるとなると、無効化能力や有効相手の欄に発動確率は設定できないからなぁ 体格設定してるのに武器の重さの対象が力になるんだが コンフィグの「ゲームで体格を表示する」が判定基準だと思うけどそこチェック入れてる?
単に体格のデータ入れてるだけだと変わらないと思うよ いや、それもちゃんと入れてるんだ
何が原因か全くわからなくて難儀してる 統合Cal入れてるとか
あれは古いからか敏捷の計算でカスタムパラメータの体格を参照しようとしてる 統合Calが原因だったみたい外したら体格参照になったわ
答えてくれた人達ありがとう >>781
それだと射程外や一方向武器関係無しに反撃しようとする
あと武器持ってない時ですら反撃可能と判定されるからもしかしたらバグるかも 確認はしてないけど
var bld = unit.custom.bld;
で統合CalAを検索して
var bld = ParamBonus.getBld(unit);
にしたら動くかも >>789
あれそんな風になる?
新規プロジェクトで試してみたけど射程外や一方向、装備なしの時には反撃しなかったよ >>791
すまない、ちゃんと読めてなかった
スキルを持ってなかったら確定で反撃不可
そうでなければ本来の処理に従うっていう記述だったのね 亀だけど>>749です
みんな、ありがとうな!
というか、早速作っちゃう人までいるし! 特定のアイテムの耐久値だけを増減させるアイテムって作成は無理?
例えば「伽石」ってアイテムがあったとしてこれを使うと剣の耐久値だけを1アップさせるだとか(傷薬には使えない)
「水」というアイテムを使うと剣の耐久値が1下がるだとか
これができれば俺の独自のシステムがなんとか擬似的には実現できそうなんだ……
頼む、誰か教えてくれないか? >>795
耐久変化アイテムをカスタマイズすればできる
1.対象アイテムを限定させる事はできるか?
MiscellaneousのisDurabilityChangeAllowedでできる
このメソッドはitemが耐久変化アイテム,targetItemが対象アイテムを示していて
返り値がtrueならば選択可、falseならば選択不可になる仕組みになっている
この中でカスパラをうまく使えば特定のアイテムやタイプだけに限定させることは可能
2.耐久を1増減のように全回復、半減、破壊以外で設定可能か?
DurabilityChangeItemUseのenterMainUseCycleでできる
このメソッドのdurabilityという変数の中に変化後の耐久値を格納している
例えば耐久18/30の武器で全回復なら30、半減なら9が入る
itemTargetInfo.itemが耐久変化アイテム,
itemTargetInfo.targetItemが対象アイテムを示しているから
ここもカスパラをうまく使ってやれば特定の値だけ増減させる事は可能 1増減にこだわらず全修復でのもいいなら既存の機能だけでもいけそうな気がする
どこまで自分で試したのか知らないから、なんとも言えないけど >>796
ありがとう
カスパラを持ってるかどうかでif文を打てばいいんだね?
すまないがどんな感じに打ち込めばいいのか教えてくれるとありがたい >>798
特定のアイテム"だけ"でいいならこんな感じ。剣全般とかになるともう少し工夫しないと駄目
targetItem:{id:<対象のID>, isWeapon: <対象が武器ならtrue, アイテムならfalse>}
extraRecoveryValue: <耐久変化値、減らすなら負の値、増やすなら正の値>
の2つを耐久変化アイテムに入れれば動く。行数制限きついから結構見辛くしてしまった
(function(){
var alias1 = Miscellaneous.isDurabilityChangeAllowed;
Miscellaneous.isDurabilityChangeAllowed = function(item, targetItem) {
if (item && targetItem && typeof item.custom.targetItem === 'object') {
if (item.custom.targetItem.id === targetItem.getId() && item.custom.targetItem.isWeapon === targetItem.isWeapon()) {
return true;
}
else {
return false;
}
}
return alias1.call(this, item, targetItem);
};
var alias2 = DurabilityChangeItemUse.enterMainUseCycle;
DurabilityChangeItemUse.enterMainUseCycle = function(itemUseParent) {
var durability, generator;
var itemTargetInfo = itemUseParent.getItemTargetInfo();
if (typeof itemTargetInfo.item.custom.extraRecoveryValue !== 'number') {
return alias2.call(this, itemUseParent);
}
durability = itemTargetInfo.targetItem.getLimit() + itemTargetInfo.item.custom.extraRecoveryValue;
if (durability > itemTargetInfo.targetItem.getLimitMax()) {
durability = itemTargetInfo.targetItem.getLimitMax();
}
else if (durability <= 0) {
durability = -1;
}
this._dynamicEvent = createObject(DynamicEvent);
generator = this._dynamicEvent.acquireEventGenerator();
generator.itemDurabilityChange(itemTargetInfo.targetUnit, itemTargetInfo.targetItem, durability, IncreaseType.ASSIGNMENT, itemUseParent.isItemSkipMode());
return this._dynamicEvent.executeDynamicEvent();
};
})(); >>799
おお……神が降臨なさったか!
有り難く使わせてもらいます! 戦闘時に会話イベントが発生する際は
会話中だけ「戦闘上部」や「戦闘下部」等の画像を全て消して
要するに背景と待機モーションだけの状態にして
会話が済んでから元通りに表示させて戦闘を開始したいです
これは公式に要望を出した方が早いでしょうか
それともスクリプトで比較的手軽に実現できますか? コードの長さ自体は大した事ないだろうけど
studioのコードの中身よく把握できてないとどう手つけていいか検討つかないと思う
さすがに一箇所だけ書き換えればいいってわけじゃないですね やはり難しいですよね
あと、会話だけではなく死亡時のセリフも同様なので
まとめて要望を出してきます やはり難しいですよね
あと、会話だけではなく死亡時のセリフも同様なので
まとめて要望を出してきます >>806
死亡台詞や戦闘台詞の処理を行うクラスとUIフレームを描画するクラスの間に2つぐらい別のクラスが挟まっていて
どうやって連動させていいのかわかり辛いってだけでやる事自体は難しくない
徐々にフェードアウトするわけでもなく本当にただ消えるだけならこれ
https://www.axfc.net/u/3855897 キュウブさん製作の「耐久の分だけパラメータアップ」のスクリプト改造してアイテムでも働くようにしようと思ったんだけど
自分の知識じゃ「weapon」のところを「item」に置き換えするくらいの事しかできなくて、それだと機能しなくなってしまうらしい
分かる人いたら教えてください >>807
誰だろうと思ったらキュウブさんじゃないですか!
望み通りの結果となりました
どうもありがとうございました
完成したらスタッフロールに必ずお名前を載せさせて頂きます 「カスタムパラメータlimitCorrectionIndex:Param Type.○○○を持っている使用不可能アイテムを所持していると
そのアイテムの耐久値に応じて○○○の中に入っているステータスが上昇する」というスクリプトを作ろうと思ったんだけど
これを入力すると「Line 106 識別子、文字列または数字がありません」というエラーが出て強制終了してしまう
対策が分かる人がいたら教えてくれないかな?
http://www.axfc.net/u/3856348 特定のアイテムを使うと装備してる武器の耐久が減る、みたいなスクリプト無いかな 古事記くん向こうのスレで相手にされないからこっちに来たのか >>811
ないなら作ればいいじゃない(マリーアントワネット並感) 前から思ってたけどさ。戦闘アニメ作成で間接攻撃作るとき
一括変換でキースプライトを変更しても、X軸だけ一緒の数字にならないよね?
直接攻撃や待機とかならX軸もコピーされるけど
恐らく間接攻撃だと投げた武器が徐々にX軸を移動していくから
仕様でX軸はコピーされないようになってると思うけど
武器を投げる方でX軸を移動しないキースプライトまでX軸がコピーされないのは不便だと思う 戦闘準備画面でプレイヤーがユニットの配置を自分なりのものに入れかえる前の状態の配置と
それと対応するユニットを製作者側で指定する事ってできませんか?
初期配置の数字が1の所にはAというユニット、2の所にはBというユニット…みたいな感じで マップ情報の強制出撃で出撃位置固定できるけど、それとは違うの? >>816
はい
強制出撃で位置を完全に固定したいのではなくて
あくまで初期位置だけ思うような配置にして
戦闘に入る時にどういう配置にするかはプレイヤーの自由にさせたいんです 遠回りでややこしいけど既存の機能だけでできると思う
できなかったらすまん
あと初期固定したいのが何十人にもなると、凄く手間がかかることに
実際にやったわけじゃないから、煮詰めればもっと簡単にできるかもしれん
・やり方のヒント:初期配置の順は法則性があるよね? 一旦全ユニットを消去して並べたい順に登場させればいけるか? みなさん色々真剣に答えてくださって本当にありがたいんですが
そういうやり方(順番を利用する)だとプレイヤーがそのマップに至るまでに
どれだけユニットを仲間にしたとかに柔軟に対処できなくないでしょうか? 柔軟に対処するためのやり方なんだけど、理解出来てないということは
もしかしてこのツールはまだ触ったばっか。もしくは体験版だけの状態とか? 仲間加入時にスイッチ入れれば仲間の状況をスイッチ管理するのはできるだろうね
>>819でやれるならOP前のマップ共有イベント1個作るだけで出撃順固定にはなりそう
ステージ別に対応したいならOPの最初で共有のを上書きするって感じになるのかな >>821
すいません理解していたつもりだったんですが試しに作っていたマップが
同じマップで色々いじってたのが悪かったのか消したはずのイベントのコマンドが
干渉してか不具合が起きてたみたいで思うような効果が得られていませんでした
新しく別のマップで最初から改めてやってみたところ何とかなりそうだったので頑張ってみますが
また何かありましたらご質問させてください
協力してくださった皆さん本当にありがとうございました >>823
ああ、初心者には敷居の高い組みかたになりそうだったから、もし初心者だったら他のやり方を探そうかと思ったんだけど
理解してたのね、すまんかった ダメージイベントがver1.160で色々変わったけど
さらにダメージの効果音入れたり
ダメージの数値とエフェクトを同時に表示させたり
戦闘時みたいにHPバーを減らしてみたり
と手を加えてみた
https://www.axfc.net/u/3859091
つまるところこうなる
https://youtu.be/kmOMkDEZSFI
ver 1.160自体がここらへんの処理で色々バグありそうで修正が入りそうな気配がぷんぷんするので
161になったらいきなり動かなくなるかもしれないです 戦闘アニメのモーションタイプの件で質問なんだけど
ずっと前から自分で追加した弓兵系モーションタイプ・砲撃ってのがあって
(要は相手に命中する瞬間爆風を巻き起こすエフェクトをつけたモーションタイプ)
アップデートで武器エフェクトを使えば命中時に爆発アニメをいれることができるようになったから
モーションタイプを指定してあってバズーカ系の武器のモーション指定を通常に変えて
モーションタイプ・砲撃を根本的に消したいんだけど、これってあとあとエラーでたりしないかな?
なんか昔、モーションタイプ消したら、知らない間に戦闘アニメがおかしくなってるところがあって苦労した記憶が
とりあえず試しにやってざっと見た所、一応大丈夫に見えるんだけど、誰か最近消したこととかある?
関係ない話だけど、このアイテムデータの武器エフェクトを最初に調べた時、右側の項目触って効果音しか変更できなかったから、
こういった爆発のエフェクトをいれたりはできないかと思って今更ようやく気づいた
左側の項目はちゃんとカットインを挿入できるのね このツール、削除したい項目が、他の場所から読み込まれるように設定されていると
解除してから削除しないとだいたいの場合読み込めなくなってバグるよ
例えば武器タイプの相性で長弓が暗黒魔法に対して命中+15 回避+15とか設定してから
暗黒魔法消して弓のタイプ相性の暗黒魔法の設定したところのタブ開くとフリーズしたりとか
アニメでも、武器にエフェクト設定とかモーション固有にしてれば削除するとなるのかも
たぶん全部の対象武器から設定を解除しておけばモーションタイプ削除しても大丈夫
クラスのやつは前に不具合メール出したんだけどな >>830
なるほど。直接データを指定した部分は修正したけど
そういった間接的にデータを参照にする場合も考えないとあかんかったか
サンキュー 指定したユニットが所持できないアイテムって作れる?
使えないのではなく持つ事もできないようにしたい マップ共通イベントでそのユニットがそのアイテムを持っていたら即死するようにすればOK もしかして、イベント開始条件に『アイテムAを○個持っている』ってできないんでしょうか 俺も似たようなことを色々試したけど結局無理だったな
上から何番目のアイテムの個数(耐久)か、しか不可能
公式に要望出せば受け入れてくれるかもよ Wizさんが今年の1月くらいに作ってた特定のアイテムや武器の所持個数を制限する
WizItemLimitってPluginでそのアイテムタイプをリミット1にして
持たせたくないユニットに1つ交換不可のリミット枠埋めアイテム持たせれば
一応実現できるけど公式に要望出したほうがスムーズかもしれんね リミットが1なら現状の所持、不所持の判定で良いんでは? 手間だけど現状でいけるっしょ
アイテムAが存在したら削除して変数に放り込んでそれをアイテムAがなくなるまで繰り返せばいい
後は変数を条件にすればいい
最後に変数の分アイテムAを復活
しかしこれブックマーク機能だとツクールのコモンイベントのように呼び出すことはできないんだよな
そのままコピペするしか
回想イベントだと使える必要条件がしょぼすぎるし
まあコピペでもいいだろうけど ああ一応念のため補足しとくけど、変数に放り込むっていうのは+1していくってことで みなさん色々ありがとうございます
とりあえず要望出してそれまでは変数でやってみます クラスチェンジや蘇生の画面をイベントコマンドで呼び出して実行できるようにしたくて
色々見よう見真似で取り合えず下みたいなのを書いてみたんだが(全く機能しない出来損ないだけど)
書き方の方向性としては合っているんだろうか?
何となく_prepareEventCommandMemberDataと_completeEventCommandMemberDataに何を入れるかが
重要なんじゃないかとは思っているんだけど具体的に何を入れればいいのかがよく分からない
ttps://dotup.org/uploda/dotup.org1379307.txt.html >>841
そんな感じで改変していけばいけるはず
最初のvar alias1の行と
ScriptExecuteEventCommand._configureOriginalEventCommandは
即時関数の中に入れておかないと
alias1 = ScriptExecuteEventCommand〜っていう変数の値が
他でも使えてしまう
他のスクリプトでよく見るけど
最初の行に(function(){
最後の行に})();って書いてあるやつ
最初と最後の行である必要は全く無いんだけど1-6行目は含めておいた方が無難
_prepareEventCommandMemberDataと_completeEventCommandMemberDataは
単に初期設定だけしとけばいい
二つの使い方に関して俺もあんま区別できてない
_complete〜の返り値次第ではコマンド実行しないって使い方をしているぐらい
それよりも
enterEventCommandCycle
コマンド実行後一番最初に呼び出されて返り値がEnterResult.OKなら処理開始、EnterResult.NOTENTERなら開始前に処理終了
moveEventCommandCycle
毎フレーム呼び出してMoveResult.CONTINUEを返す限り処理続行、MoveResult.ENDで処理終了
drawEventCommandCycle
コマンドが実行される間、毎フレーム呼び出される(だからこの中に実際にゲーム画面に出てくるような描画処理などを仕込んでおく)
一番意識しなきゃいけないのはこの3つぐらいだと思う おそらくユニット一覧のクラスチェンジを参考にしてると思うけど、あれは一覧からユニット選ぶ操作を挟んでるからそのままはアカン
画面呼び出すだけのイベントならeventcommand-savecall.jsが参考になる
あとイベントで呼び出すからには対象のユニットをどう決めるか考えておく必要がある フレアボムとか結界みたいなマップに設置するトラップってどうやって作るんだろ それだけじゃどういう処理で実現したいのかがわからんよ
マップチップ変更でダメージ地形判定持たせたいのか
操作不可の同盟キャラチップ配置でオートで攻撃させたいのかにもよる
ちなみにどっちも既存のプラグインやツールのデフォルトで出来るけど
独自の処理させたいんならスクリプト詳しい人に、実装したい仕様説明しないと 移動中に発動する地雷や
進路妨害系機能は作った事あるけどめちゃ苦労した記憶はある マップチップ変更で対応する地形に変更させることでトラップを再現したんだ
侵入不可の結界マップチップをアイテムを使ってグローバルスイッチをオンにすることで出現させる所までは出来たんだけど
ターン経過で結界が消滅する処理が出来なくて困ってしまった OTさんの範囲攻撃スクリプトも確か範囲攻撃アイテムで地形変更できて
透過チップなら配置するように出来た気がするけどスイッチ使ってるのかー
でもターン経過で消える処理はやったことないからわからんな…
一応、OTさんのスクリプトは再使用で消せたけどターン経過でオートではないしな ターン経過でマップチップ変更はいくらでもやり方あると思うけど
ツールで変化前の地形を取得する方法ってあったっけ
特定地形にしか使えないようにしないとなかなか難しそう ■ このスレッドは過去ログ倉庫に格納されています