1. このサイトではcookie (クッキー) を使用しています。サイトの利用を継続した場合、cookieの使用に同意したものとみなさせていただきます。 詳しくはこちらをご覧ください。

【質問】セルフスイッチ使ってます?【Ace】

月下美人2018-03-12に開始した「ゲーム制作」の中の討論

?

セルフスイッチを活用しているか、いないか。

  1. 活用している

    92.0%
  2. していない

    8.0%
  1. 月下美人

    月下美人 ユーザー

     おはこんばんにちは。
     とあるギミックを作っている時にセルフスイッチを使ったのですけど、よくよく考えてみたらセルフじゃなくスイッチでいいんじゃね?と思い、こんな質問をさせていただきました。
     皆さんはセルフスイッチ使ってますか? 私のセルフスイッチは息してません!
     
    #1
    まるたん神無月サスケ がいいね!しています
  2. 神無月サスケ

    神無月サスケ ユーザー

    どうも、月下美人さん、こん**は。
    いいところを突いた質問だと思います。

    セルフスイッチですが、実はツクール2000/03のころにはなかった機能で、
    ツクールXPになって、初めて取り入れられた機能なのです。
    要するに、セルフスイッチでできることは、すべて通常のスイッチでも可能です!!

    しかし、セルフスイッチが誕生した背景として、「スイッチ管理の煩雑さを避けたい」という要望がありました。
    つまり、以下のようなケースです。
    ・宝箱を1個作るたびにひとつスイッチを使う。使えるスイッチの数は限りがあるのに、これは不便。
    ・ドアの開閉のような単純なイベントは、コピー&ペーストで増やしたいが、通常のスイッチを使っているとできない。
     しかしセルフスイッチだとできてしまう。

    ツクールVXAceでも、宝箱イベントを自動生成すると、セルフスイッチが使われているのがわかると思います。

    ただ、セルフスイッチにも欠点が少しだけあります。
    ・F9を押してデバッグ画面を出すと、普通のスイッチは確認できるが、セルフスイッチは確認できない
    (デバッグ用スクリプト素材を作れば可能。MVにはそれを可能にするプラグインが既にある)
    ・他のイベントから参照しないと思ってセルフスイッチを使っても、あとから必要になったら、通常のスイッチで
     イベントを書き換えないといけない

    というわけで、セルフスイッチは、有効活用すれば、不要なスイッチを増やすのを抑えてくれるため、
    使いこなせば大変強力ですが、実は冒頭で書いた通り、「全く使わなくてもゲームは作れる」んですよね。

    うまい付き合い方を探ってみてください。
     
    #2
    コテツMM, 木星ペンギン, まるたん他5人がいいね!しています
  3. しんぞ

    しんぞ ユーザー

    私は結構使ってます。
    宝箱とか「一度話したことを二度は言わない人」とか、ちょっとした処理だけでそれぞれ名前をつけて管理するまでもないかなぁ、という軽いページわけに便利だったりします。

    そういえばJavascriptでも即時関数よく使うし、根が不精なだけかもしれませんね;
     
    #3
    月下美人, 沫那環神無月サスケ がいいね!しています
  4. ネコタ

    ネコタ ユーザー

    こんばんは。

    私は、極力セルフスイッチに出来ないかと考えてイベントを組みますね。

    というのも、ゲームを作ってるとスイッチがいっぱいになってきて、どのスイッチがどこで使われてたのか分からなくなるから(笑)

    どうせ1回しか使わないようなものはセルフスイッチにしてしまい、他所で何回も切り替えるようなものはスイッチを使います。

    最近は、ページ切り替えの用途以外に、システム的な自動実行イベントの中でもセルフスイッチを使う技を覚えました。ループ構造中で条件分岐にセルフスイッチを利用する事で処理を制御したり。

    そのうち、スイッチ上限と戦う日が来ますよ、きっと(笑)
     
    #4
    月下美人, 沫那環, 神無月サスケ他1人 がいいね!しています
  5. なぞのいきもの

    なぞのいきもの ユーザー

    宝箱や扉の簡単作成を除いて、自作品でセルフスイッチを活用した例を挙げるなら

    話しかけたとき「買いものをする」「おはなしをする」と選択肢が出て、売りものも話題も物語を進めるごとに次々と更新されていくキャラクターを出したとき。
    1つのページに全部詰め込むと、イベントコマンドが長くなりすぎて更新するときに場所をさがすだけで大変なので、この例だと

    「買いものをする」でセルフスイッチBをON、「おはなしをする」でセルフスイッチCをONにしてページ移行を促し、
    セルフBで自動実行されるページに売りもの、
    セルフCで自動実行されるページに話題をまとめて、最後にセルフスイッチをOFF。
    ……なんて感じで 単純だけど大規模になりそうなイベントの役割分担 に使ってみるのも、ちょっと管理しやすいのでおすすめしたいと思います!
    (進行度ごとにページを用意する別解もありますが、それだとページが増えすぎるうえにセルフスイッチがいらずスレッド的にも本末転倒かもしれないのでいけません)
     
    #5
    アリヒコット, 月下美人, 沫那環他2人がいいね!しています
  6. リンクス

    リンクス ユーザー

    2kerですが正直「それを すてるなんて とんでもない!」
    通常スイッチとセルフスイッチはプログラミング言語に例えるならグローバル変数(ツクールで言うとゲーム全体で使える)とローカル変数(そのイベントのみ使える)です。厳密には違いますが。
    サスケさんもおっしゃる通り、通常スイッチですと「宝箱」の処理をコピペで量産出来ませんがセルフスイッチだと量産しやすくなります。
    宝箱以外にも一回ぽっきりかつ「フラグ」立てが不要なイベントが終了したかどうかの判定にも使う事が出来ますよ。
    何ならセルフ「変数」もあって良いと思っています。
     
    #6
    ふうきゅう, 月下美人, ネコタ他2人がいいね!しています
  7. 沫那環

    沫那環 ユーザー

    ツクール学園フェスの投稿作品として、セルフスイッチを大量動員して、そこそこの規模のスタンプラリーもどきを作った人が通りますよ……。

    1回きりで終わるイベントはもちろんですが、企画モノへの投稿作品を制作する際、通常スイッチの数に限りがある時には通常スイッチと同じ感じで使うのも手です。
    ただ、同時に複数のイベントのセルフスイッチを操作するのには結構めんどくさい手間がかかるので、よほど根気がないとこういう仕込みはやりたくないですね……。
    とはいえ、かなり便利なものではありますので、活用しないと損ですよ!
     
    #7
    コテツMM, 月下美人, ネコタ他1人 がいいね!しています
  8. 夢幻台

    夢幻台 ユーザー

    おはようございます、夢幻台です。
    自分はセルフスイッチはかなり使っているほうです。主に下の2つの観点で使っています。
    ・そのイベントが独立で動くとき(普通の宝箱など、そのイベントが他のイベントに干渉しない場合)
    ・ストーリー上、そのイベントの比重が軽い場合(ゲーム進行度に合わせてスイッチ番号を管理しているため)

    神無月サスケさんの仰る通り、基本的にセルフスイッチで出来ることは通常のスイッチで可能です。
    逆にセルフスイッチだと普通に作った場合、ほかのイベントのセルフスイッチのON,OFFを参照できない欠点があります。

    ただし、自分は長編を作ることが多いので、ストーリー展開でどこまでスイッチを使ったかを確認する場合、
    ・宝箱、固定敵などストーリーに全く関与しない、比較的重要でないスイッチ
    ・イベントシーンやクリアしたかどうかにかかわる重要なスイッチ
    これを同列にしてしまうと管理が結構大変になります。SFC時代のRPGツクールには当然セルフスイッチはなかったので、
    昔はそれを混乱しないために公式ガイドブックにわざわざ「スイッチ管理シート」なるものがついていたくらいです。
    セルフスイッチとスイッチでストーリーの軽重を区別すると、管理する側もかなり楽になりました。
     
    #8
    神無月サスケ, 月下美人ネコタ がいいね!しています
  9. 月下美人

    月下美人 ユーザー

     皆さん、返信ありがとうございます。

     全員使ってるんですね(汗)
     これまでセルフスイッチの使い方を正しく理解していませんでしたが、皆さんの説明ですごく便利な機能というのは理解できました。
     頑張ってマスターできるように努力します!
     
    #9
    コテツMM神無月サスケ がいいね!しています
  10. アリヒコット

    アリヒコット ユーザー

    私もセルフスイッチはよく使ってます。
    大体の事は上で皆様に書かれていますが、ひとつ付け加えるなら
    「<強くてニューゲーム>がある場合、ストーリーイベントに使うのは×」
    何故なら他のイベントから一括して初期化出来ないからです。
    (出来る様にするプラグインでもあれば別ですが…)
     
    #10
    月下美人, 神無月サスケ沫那環 がいいね!しています
  11. Kpoal

    Kpoal ユーザー

    私もセルフスイッチはイベントの簡略化に必須のものとして扱っています。
    さらにスクリプトが使えるようになると

    key = [100,10, "A"]
    $game_self_switches[key] = true

    でマップ100番のイベントID10番のセルフスイッチAを遠隔でONにしたり、

    $game_self_switches[[200,20,"A"]]==true
    でマップ200番、イベント20番のセルフスイッチAがONになっているかを判定したり
    できるようになるので、
    逆に「スイッチでできる事がセルフスイッチでできる」ようになったりもします。
    (VXAce用のスクリプトです。MVはまた違います)

    いちいちコードを書くのが面倒なのでスイッチが不要になったりはしませんが、
    自分はスイッチの番号整理が苦手でどうしても煩雑になってしまうので、
    楽できる場所ではこちらの方法を使っています。

    追記
    限定的な場合になりますが、先日行われた
    『ツクール学園フェスティバル』では、
    スイッチを一人10個までしか使ってはいけないという制限があったため、
    この方法を最大限に活用させていただきました。

    まあ、こんな風に使わざるを得ない場合なんてそうそうないとは思いますが。
     
    最後に編集: 2018-03-13
    #11
    月下美人, 神無月サスケ, 沫那環他1人 がいいね!しています
  12. ザンちゃん

    ザンちゃん ユーザー

    確かに便利ではありますが、必要となる時までは無理してまで使わなくてもいいかなと、わたしは思っちゃいます。
    今まで必要なかったってことは、今のままでも困ってないから使ってないんです。なのに、無理して使うと、訳が分からなくなって混乱するのではと思うからです。

    使ってる皆さんのように、数が足りないとか、管理が大変とかという状態になったら、必然的に、そういえばセルフスイッチを使ってみようかなと自然に使い始めます。

    わたしも最初は使ってませんでした。でも、スイッチ一杯あって分からなくなってきた……つまり管理に困った時に、使い方を覚えました。

    ツールは使いこなせた方がいいとは思うんですが、多機能なソフトを最初から全部把握するなんてまず無理なんで、必要にかられた時に新しい機能を覚えていくようにすると、覚えやすくていいです。
    必要だから必死になって早く覚えられますw

    余計なお節介ですが、早く使いこなせるようになりたいぜーと思ってらっしゃるなら、こういう感じに質問しないと思ったんで、一応書いてみました。
     
    #12
    まるたん, しんぞ, ネコタ他2人がいいね!しています
  13. チョコワ部

    チョコワ部 ユーザー

    セルフスイッチを使うと、たとえばマップに残っている宝箱の数をカウントすることもできちゃいます。

    宝箱のイベント名を「宝箱」にして、開けたらセルフスイッチAがONになるようにしておけば、
    下のスクリプトで、開けていない宝箱の数が変数1に代入されます。
    コード:
    $gameVariables.setValue(1,$gameMap.events().reduce(function(pv,v){
    if(v.event().name==='宝箱'){
    if(!$gameSelfSwitches.value([v._mapId,v.eventId(),'A']))pv++;
    }
    return pv;
    },0));
    マップごとに変数を用意したり、宝箱の数を自分で数えたりしなくて良いので管理も楽ちん。:kaojoy:
     
    #13
    コテツMM, たかッシュ, 月下美人他2人がいいね!しています
  14. まるたん

    まるたん ユーザー

    私は頻繁に使ってますよ((´゚∀゚`))
    最初は宝箱だけと思っていたんですが、なかなか使い勝手が良かったので、イベントでもちらほら組み込んでます(*゜∀゜)=3
    逆に変数の方はオツムが足りなくて使いこなせていないのです( ノД`)

    でも頑張って使っていくのです(*゜∀゜)=3
     
    #14
    月下美人神無月サスケ がいいね!しています
  15. ハッサクリーフ

    ハッサクリーフ ユーザー

    セルフスイッチは使いますが宝箱系に使うケースがほぼ多いです。
    僕の中では電気の直流と交流みたいなものなのかなと思ってますね。
     
    #15
    コテツMM, 神無月サスケ月下美人 がいいね!しています
  16. コテツMM

    コテツMM ユーザー

    セルフスイッチは使わないとスイッチの管理が面倒くさいので自分は使いまくってますね。
    そのイベント内でスイッチを使いたい時は極力セルフスイッチのみで済ましてます。他の場所のスイッチを発動させたい時にだけスイッチを使ってます。
    それでも今スイッチが40個以上使っているのでセルフスイッチをスイッチに変換したら余裕で100超えちゃうのでセルフスイッチなしでは自分はゲーム作れません(面倒くさがりやの意見ですw)
     
    #16
    ハッサクリーフ神無月サスケ がいいね!しています
  17. 白黒洋菓子店

    白黒洋菓子店 ユーザー

    執筆者:-RyU-

    セルフスイッチ、多用しています。というよりも使わないとスイッチが足りなくなる可能性が高いので。

    宝箱など一度イベント発動したらもう動かさないものはもちろん、シナリオ進行にも使用していますし
    オリジナルのシステムにも使用したり、ギミックにも使用しています。
    セルフスイッチはデフォルトコマンドでは遠隔操作出来ませんが
    スクリプトコマンドを利用すれば、スイッチと同じように遠隔操作も可能なので
    非常に便利です。

    これだけセルフスイッチを使用していても、スイッチの使用数は300以上なんてザラです。
    凝った長編を制作しているからではありますが……。
    主にスイッチを使用しているのは、導入しているスクリプト設定用です。
    そのため、スイッチ数が結局多くなるんですよね。

    結論:セルフスイッチがなかったら管理できなくなるか、スイッチ枠が足りなくなる。

    ひとまず、一度発動したら用なしのイベントには
    後々、スイッチをいじる時などすぐに目的のスイッチを見つけられる・間違ったスイッチを動かして
    イベントの誤動作を防ぐ……など
    管理がしやすくなるので、利用しておくのが無難かと。
     
    #17
    コテツMM, 神無月サスケ月下美人 がいいね!しています

このページを共有