【CF2.5】Clickteam Fusion/Multimedia Fusion 19
■ このスレッドは過去ログ倉庫に格納されています
汎用ゲームエディター『Multimedia Fusion 2』及び、『Clickteam Fusion 2.5』シリーズに
関する情報、技術、雑談、質問などに使いましょう。
■前スレ
Clickteam Fusion/Multimedia Fusion 18
https://mevius.5ch.net/test/read.cgi/gamedev/1515175748/
■参考リンク
・Clickteam本家
http://www.clickteam.com/
・Multimedia Fusion 2シリーズ日本語版公式サイト
http://www.clickteam.jp/
・Multimedia Fusion 2 wiki
http://wikiwiki.jp/mmf2/
・mfaアップローダ
ttp://ux.getuploader.com/mmf/
・『Multimedia Fusion2』避難所
http://jbbs.livedoor.jp/computer/43067/
・チャット
http://mmf2.chatx2.whocares.jp/s/ 👀 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) そうなんですか。
とても残念ですね。
別の参考資料を探すことにしました。
どうもありがとうございます。 じゃあ無駄がなく簡潔なモグラ作ってくれる人の出現待ちだなw 作ってもいいけど何の得もないしな、CF25ユーザーは名前出して教材出すと叩かれるというジンクスがある
なんと日本だけじゃなく本場でもそういう傾向があるんだ
モグラは公式から金もらったかは知らんけど仕事としてやったんだからちゃんとやれよと
肝心の自分の作品は同じ不具合発生しないしユーザーに考えてもらいたくてあえて不具合生んでみましたとかそんなんだろか
STGの方はバッチリ作ってあるからあっちは参考になる 質問です。
全体攻撃で数種のザコ敵を同時に破壊した時に、種類別の一体分しか
スコアが増えないのですがこれを倒した分だけ入るようにするにはどうすればいいでしょうか?
AAAABCC
を同時に倒した場合、A,B,C一体ずつの分しかスコアが増えない。
サンプルはこちらです
ttps://ux.getuploader.com/mmf/download/1073
全体攻撃でなくとも、一つの攻撃判定で重なった敵を倒すという事はままある事だと思うので
どうにかしたいのですが、1種類ならば重なっている数を数えればいいのでしょうが、
何種類もの敵を扱う上で想定すると、とてもじゃないですがやってられないので別の方法があればと
思い質問させて貰いました。 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) 完璧かどうかは分らないけどforeachで処理するならば1行目は
「グループ敵の変数A=<0」の時に「各グループ敵につきループを開始、ループ名"○○"」
2行目は
「各グループ敵につき、ループ名"○○" 変数A:グループ敵<=0」の時に
「スコアを変数B("グループ敵")増加 破壊」
でおおよそいけるんじゃないかな >>206
有難うございます。
無事計算させることが出来ました。
でも結局全キャラにforeach回す必要があるよで、処理的に不安がある所です。
ttps://ux.getuploader.com/mmf/download/1074 👀
Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2) いえいえどういたしまして 自分のゲームで手一杯で申し訳ないけどサンプル見てないから
どんな組み方にしてるのかは分らないけど敵の耐久力0以下のときのみの条件でループ回してるなら
そんなに負荷はかかってないと思うよ >>208
一日かけて全キャラの判定に実装してみたら敵グループに当たった判定が
全敵に当たったことになってしまい、まともに動作しませんでした(ノД`)・゜・。
グループ使うと中から当たった一体を選択されないんですね。
グループなんて横着な事せずに1キャラ毎に全処理を入れないとダメっぽいです。
これは現実的ではないなぁ・・ ヒット時も同時破壊と同じ要領でforeach回せば良くない? おれも>>211のやりかたで対処すると思う
cf2.5はオブジェクト特定する時はめんどいだろうけど、
ループ回すしかないような気がするよ ああ、攻撃判定の重なったオブジェクトのフラグをオンにして、ループで各オブジェクトのフラグを敷居値に
耐久力を減少してフラグをオフ、さらにループで耐久力0になったオブジェクトを破壊してスコアを増加
とすれば可能みたいです。
ループこんなに回して大丈夫ですかね。とりあえず実装してみます。 フラグは不要でないかい?
グループにforeach回して衝突時ライフ減少
ライフ0以下で破壊とスコア加算だけで良いような 色々試したら問題は別のケアレスミスでした。
210は間違いです。オブジェクトグループに攻撃が当たったらを条件にすると
ちゃんとグループ内の当たったオブジェクトのみに処理が適用されました。
・オブジェクトグループ中、攻撃判定が重なったオブジェクのライフ1減
・各オブジェクトに対してforeach
ライフ0になったオブジェクトを条件にスコア増、破壊
これで行けました。
グループにforeach回す必要も無かったですね。 いつの間にか内部フラグに名前つけられない問題とか直ってるし!
嬉しかったから記念にdev版を買ってやったぜ おれはforeachの使い方がうまいかんくて挫折しちまった 逆でグループにforeach回せば敵種ごとに回す必要が無くなるんじゃないかな
後衝突判定の時も回さないと1フレーム内で同じ対象に複数HITした時に
1HIT分しか処理されなかったりする問題が出てくると思う 最初からfpreachで処理する前提で組んでないと帳尻合わせるのに苦労するかもしれないね
新しいテクニックを覚えたらその部分だけを自分でサンプル組んで保存しておくといいよ
次のゲーム作るときに役に立つから まだ処理の方法改善する余地ありそうですね
正直foreachもとりあえず回してみたらうまく動いてるみたいな使い方しか
してないのでもう少し理解深めて効率追及出来そうです。 認識があやふやな部分を質問させてほしい
フレームベースでFPSが30なら1秒間に30回条件判定とアクションが動く。
つまり「常に実行」命令で変数Aに1を加算している場合は変数Aが30=1秒間で合ってる? >221
それでいいと思う。
それはそうと、F2押すとリセット掛かってしまうのは外せないの? 日本のフォーラムで簡単な質問あがってた時に答えてやりたい思う事あるけど
なんかあそこ管理人さん以外の回答受け付けません的な雰囲気ある?
自分で試さず0から丸投げサンプル頂戴みたいのもちょいちょい見るし
負担減らせたらと思いつつも外から回答してる人見た事無いから気にしぃなもんでどうもね
>>222
アプリケーションのプロパティのウィンドウタブで
メニューバーの編集開いて新規作成のキーを変えるといいよ >>223
あそこ普通に管理者以外も回答してくれてるよ 管理者返事しないことあるから答えてあげると質問者もありがたいと思うよ 答える人が少ないから、管理人がわざわざ出てこざるを得ないんでしょうね
フォーラムが活気づけば、管理人の手間も減らせると思うよ >>223
こんなところに設定があったんですね
有難うございます。 htmlで書き出してスマホでテストプレイしてみたら
画面スクロールの速さがPCよりもかなり遅いんだがどうしたらいい?
タイミングよく操作する必要のあるゲームだから
タイミング合わせてたのに大幅にずれてるとキツイ… >>227
わかる
めちゃくちゃカクカクもっさりするよね
これって今回のアプデのせいなのかな? >>228
アプデ前はPCと速さ一緒だった?
まだまだ初心者なもんで今回初めてまともにテストし始めたから元々の仕様かと思ってた >>229
以前からローカルに比べたらサーバにアップした方が多少は重たいにせよ、ここまでじゃなかったかな
これ、CF側の不具合なら早くなんとかしてほしいわ 変数とかフラグの順番並べ替えられないのが辛い
途中の変数いらねーなってなった時どうすんだこれw 使わなければいい
綺麗に並べたい几帳面な人は最初にちゃんと決めてから
整理するしかないな。 要らなくなった変数の名前を『未使用』って名前変えてなんとかやりくりしてる >>232
「いらない」ならまだいいんだけど、後で追加したい場合にもうどうにもならないのがキツイ あとオブジェクトコピーしたら変数たちも一緒にコピーされるの困るときある 変数だけは新規でやりたい時に 起動されてるゲームの状態受け取って一覧に出せる機能とかどうやったらいいんだろう?
例えば
現在起動中xx人
現在ステージ1xx人
現在ステージ2xx人
現在ステージ3xx人
みたいなのを一覧に出すの、オンラインスコアみたいにサーバーにデータ残すんじゃなくて
あるポイント達成したら特定のIPアドレスに信号送るだけの感じで。 >>238
特にエクステンションとか入れないなら以下の感じ
1. デバッグ用のレイヤを1番上にして作る
2. テキストオブジェクトを作る
3. 「常に実行」命令でモニターしたい変数の中身をテキストオブジェクトの可変文字列に代入し続ける
エクステンション使えるならdebug用のエクステンションを入れるといい。
慣れたらこっちのほうが簡単だし手軽だけど、状況によっては↑のやり方も普通に使うよ
どちらかというとこちらは使い捨てって感じだから
ttps://community.clickteam.com/threads/81465-DebugObject-v5-now-out-run-events-when-your-app-crashes?highlight=download+object >>238
ごめん、なんか勘違いしていたかも
「条件を満たしたらサーバにPOSTを送る」って言う意味なら、エクステンションの「getオブジェクト」使うといいと思う >>241
やっぱタイマーはメインに使うもんじゃないわ それ、修正とかあったらめちゃくちゃしんどそうだね
この場合、フレームベースで変数とループインデックス使えば簡略化できるかな? 見た感じタイミングが法則無さそうな不定期間隔だから難しそうじゃない? タイマーを小馬鹿にしているんじゃなくて、フレームレートが下がった時にタイマーも狂うからでしょ?
例えば、本来は3秒のところがFPSが30まで下がった時には現実時間で6秒になるんだよね?
タイマ精度を上げるウィジェットとかあるけどね
http://www7a.biglobe.ne.jp/~bp-827z/asd/products/mmf2timer/ いや、
タイマーベースだと3秒ならFPSが30まで下がった時でも現実時間でも3秒じゃない?
wikiにも
>フレームベースのイベントが一切使われていなくて、全てタイマーで制御されている場合は、
>処理落ちをしてもタイミングがフルフレームで動作した時と変わらないようにすることが出来ます。
ってあるし。 「フレームベースのイベントが一切使われていない」ってところがポイントだね
最初から一貫して決めてれば、確かに支障は来さないのかもね タイマーだと処理落ちした場合全体の処理は滞っていてもカウントだけは進んでしまうから
処理落ちしてる間に処理が積み重なったり命令が無視されたりすると思うよ
状況によっては進行不能に陥ったりすることも考えられるね
タイマーで組んでないから実際どんな状況になるのかは自分では確認してないけど 60フレームの設定で「1フレームごとに変数Aを1増加」と「1/60秒ごとに変数Bを1増加」にして
「変数Aが100以上でマークAを表示し、変数Aをリセット」と同様に「変数Bが100以上でマークBを表示し、変数Bをリセット」という条件を組んでから
重いオブジェクトをどんど作成していけば、マシンスペックを超えた時に変数Bで表示されるマークの方が少なくなる可能性があるってことだよね 処理の間にラグ発生するって事だろうから
1/fps秒置きと常に実行を比較しても刻むタイミングが同じだから差は出ないはず
だからフレームレート=100とした場合
・常に実行で変数Aに1を加算
100以上で-100してカウンタAに1を加算
・1/100秒おきに変数Bに1を加算
100以上で-100してカウンタBに1を加算
・5/100秒おきに変数Cに1を加算
20以上で-20してカウンタCに1を加算
・1秒おきにカウンタDに1を加算
これで処理落ちさせると カウンタDはほぼ秒数通り
Cは若干遅れて AとBは並行しながら更に遅れる
処理毎のラグを0.1フレームとするとカウンタが1増加するまでに
AとBは10フレーム Cは0.4フレーム Dは0.1フレーム
の遅れが生じるって事なんじゃないかな ラグをフレームで仮定するのはおかしいか
0.1フレーム → 0.001秒 に訂正 >>247
正解
カウンターで例を出すとフレームベースでFPS60のものなら一秒間で60回カウントできる、これは処理落ちが無ければだけど
処理落ちして一秒間で60回回せなくてもフレームベースなら60回カウントするまで必ず実行される、だからフレームベースは時間の計測精度はでたらめになる
タイマーベースだと一秒間でFPS60は変わらない、これも処理落ちがない場合ね
けれど処理落ちした時は60回じゃなくて30回とかまだ10回でもとにかく一秒は一秒、時間には正確だけどカウントはでたらめ
全ての環境で一秒が同じ一秒じゃないかもなので、フレームベースで統一した方が安全にはなる
でもタイマー良いよね 現在のタイマー秒から3秒後っていうのはどうやってもとめるのかな? 現在のタイマー秒を+3の数式足して変数に代入すればいいだけじゃないの? >>256
やっぱり変数は必要か
現在のタイマーを返すアクションがあれば良いのにな〜 Aが一定間隔でオブジェクトBを発射する
Aを破壊するとAが発射したBが全て消える
っていう処理作りたいんだけど上手くいかない。
AがBを発射した際にBの変数aにAの固定値を代入
Aが破壊されたらBの変数bにAの固定値を代入
Bの変数a、bが同値ならB破壊
で上手くいくと思ったんだけど無理だ…どしたらいいんだ オブジェクトAの破壊時にforeachループを回してオブジェクトAの固定値と
オブジェクトBの変数aが同一であればオブジェクトBも破壊…でいけるんじゃない?
記述としては1行目が
『オブジェクトAの変数a<=0』の時に、各オブジェクトにつき『ループ名"○○"』
2行目が
『各オブジェクトAにつきループ名"○○"、オブジェクトAの変数a<=0、オブジェクトBの変数a=固定値"オブジェクトA"』の時に『破壊』
と言うところかな もし質問者がforeach苦手と言ってた人だったらこの機会にマスターしちゃおう >一定間隔でオブジェクトBを発射
タイマーとオブジェクト発射はたぶん想定してる動作しないと思う
タイマー代わりにどっかに変数持たせて増加してって、弾はオブジェクト作成でやったほうがいいよ
ループとタイマーの合わせ技は動かなかった経験あるよ >>259>>260
ありがとう、無事解決した
なんとなく高速ループの仕様がわかってきた
使いこなせたら超便利そうだな アクションオブジェクトのアニメーションシーケンスの番号ってエディタ上のどこかで確認とか出来る?
ピクチャエディタ上には無い感じ... >>262
新規で作ると12からになるけど
元からある歩くとか消えるとかは上から順番に数えるしかないみたいだね >>263
ありがとう!
ランダムであのアクションを...とかは考慮されてない感じか
すでにあるやつは名前も変えられないし削除も出来ないんだよね... >>265
ああいや、もちろん試していたんだけどデフォルトで用意されている動作と自分で追加した動作をランダム化する場合は
かなり数値が離れてしまうことになって...
ゲームづくりって難しいな〜と思った 元からあるの一切使わずに12以降からセットしたほうが楽かも 最初からある動作は特殊な動きするのもあるし >>267
まじか...このソフトの最初から用意されてるやつのガバガバ率高い
ありがとう! >>267
特殊な動きについてkwsk
1年以上触ってるのにまだ未体験な仕様があったとは... ちょっと説明不足だったごめん
言いたかったのは例えば消えるっていうシーケンスだとアニメーションが終了したら
勝手にオブジェクトが破壊されるみたいなやつ >>269
「消える」はオブジェクトを破壊する時に再生されますね
「現れる」はオブジェクト生成時
「停止」は他に再生するアニメが無い時は自動的に戻ってくる性質がありますね
このうち「消える」はアニメが終了するまでオブジェクトとして存在するので、
PMO等とセットで運用する場合はPMOを破壊するタイミングに注意が必要です おれは「歩く」と「走る」のアニメがどこで区切られてるのか
違いが未だに分らないから設定したことないんだけどついでに誰か教えてください ああ、だから「アニメーションに戻す」アクションを押すと待機アニメーション(停止)に戻ってくれるんだ...
(直前の)「アニメーションに戻す」って意味なんだと今日まで信じてた こういう作る側が見えない仕様がCFに多くて、
いまいち信用できないんだよな。。
霧をかき分けながら作ってるというか、、
オブジェクトの順番を数字で指定したい。 うまく使うと便利そうだけどね 仕様がわからんどこにも詳しい説明みたことないもんな アニメは最初は便利だと思ったが、歩く走るの切り替えの基準が解らなかったり
細かい所で言う事聞いてくれなかったり融通利かないので結局手動でやってるわ PMOの移動速度とかの数値に変数を代入することって出来るんです? >>279
"variables"→"set ○○"で変数入れたらええで 絶対面白いゲームを作る自身があるし絵も用意できるけど、肝心のテクニックが一向に上達しない
foreachすらあんまり理解できていない
foreachって「フラグ0が無効」の条件なら動作するけど、「常に実行」では動作しなくない?
後、親と子のペアリング以外に使い道ある? 親子処理以外にオブジェクト同士の接触とかの同時判定に使えるけど
「面白い使い道を考える」のも腕の見せ所かな
あとforeachは「常に実行」でもいけると思う
上手くいかないのは一緒に添えてる条件が不完全だからかもしれないね それが「常に実行」のみでも動かなかったんだけど、原因を探ってみるわ
敵機破壊識別とか親子処理に使えるということまでは理解できるけど、面白い使い道なんて全然浮かばないなぁ
foreachは使わなくて済むならなるべく使いたくない
だけど、容量や処理数減らすには避けて通れない道だろうから覚えるしかなさそうだね
ぼちぼち頑張るわ +や-などの演算子をグローバル文字列かグローバル変数として格納し、各種計算式で呼び出す方法ってありますか?
例えば、計算式「5"演算子"5」として、演算子の部分に+が入れば結果は「10」で、-が入れば「0」になります
単に「グローバル変数を呼び出し」や「グローバル文字列を呼び出し」で演算子の部分を呼び出して計算式を書くと構文エラーになります
今のところ「グローバル文字列と比較」でそれぞれ計算式の演算子と、入力した演算子が一致した場合で条件を分けて用意しています ごく普通にA=0のとき「X+X」、A=1のとき「X-X」みたいな処理では駄目なの?
もしかしたらよくある記述法なのかもしれないけどプログラマじゃないからなんとも
どんな条件下において必要となるのかすら想像が出来ないよ 変数の値を演算子にする感じかな。プログラムで言うところのeval関数みたいな動作が欲しい?
多分無理だし、CF2.5的にはどうなのか分からないけど、プログラミングだと脆弱性的な意味ですごく怖いから辞めたほうがいいと思う >>286
そうですね
今はそういった条件分岐で一応狙った動作は実現できていますが、コンパクトにしたかったので質問しました
>>287
演算子を変数などに格納することまでは可能ですが、各種計算式の段階で演算子が入る部分に演算子以外を入れることが無理みたいですね
今のところ、狙った動作は実現できているので、このままの方法で行きます
ありがとうございます 質問
キーボードでコントロールできる上でさらに
コントローラーでもコントロールできるように出来ましたっけ? >>290
ありがとうございます
ストームギアで確認しました 初歩的なことなんだろうけど、PMOの「object is moving」って条件って、
動いてるかどうかじゃなくて
キーを押してるかどうかで判定されてるのね……
壁に接触してるときとか、左右に動いていないときを判定するなら
別の条件を追記しないとダメってことかー 動いているかも判定出来るよ
is moving
is jumping
is faling
is stand on ground...
みたいな条件があるはず これって否定形の条件って作れるんだっけ?
接触してる時にON、接触してない時はOFFってイベントが作りたいんだが
どうしたらいいのかわからない 条件がすでに否定してるやつとか反転するとこんがらがるんだよね
☓ 音楽が再生されていない
とかw 何度もすまん…
キャラの左右移動を手動で組んでて、歩いてる最中には歩行アニメを割り当ててるんだが
1度動かすと、止まってる時にも足踏みを続けたままになってしまうんだがどうしたらいいんだろう >299
まずは、歩行が終了した時に停止時用のアニメに移行するイベントを
組んであるかどうか確認してみてください。
そこに問題が無ければ、今度は歩行アニメになる条件を見直すと良いかもしれません。
歩行の入力後、永続して歩行アニメに移行し続ける条件になっていないか
確認してみてください。 >>300
ありがとう
歩行に限らず、例えばAの条件の時にB、Bの条件の時にAってやりたい時に
イベントが一気に流れてしまって何も起こってないように見えるんだが
どうやって対処したらいいでしょうか ■ このスレッドは過去ログ倉庫に格納されています