投稿記事

Unityの記事 (7)

ふたさこ 2024/04/07 18:55

【意見急募】Unityにおけるイベントシーン中の場面転換のやり方

ふたさこのサクフウです。
現在ふたなりネーロエとエロトラップダンジョンver.2で新たに追加されるイベントシーンを制作しています。
が、そこでつまづきがあったのでここで質問したいと思います。

単刀直入に言えば、Unityで2Dアクションゲームのイベントシーンを作る際、場面転換を一体どうやって同一scene内で実現するのか?

これが非常に気になっているポイントです。

なお、イベントシーンは合間合間にテキストによる会話なども挟みながら進行します。

同一scene内という点に関しては短い間隔で何度も場面をいったりきたりすることもあるのでそのたびにsceneをロードするのはどうなの?と思っただけです。

で、やりたいことは単純で以下の動画のように場面転換がしたいだけです。

(この動画自体は動画編集ソフトで作ってます。なお本編にこのシーンはありません)

一応、それを実現する単純なやり方は思いついてはいます。

思いついた単純なやり方

同一scene内で2つの場面オブジェクトを置いてしかるべきタイミングでカメラを動かす、というやり方です。

もう1つ思いついた案としては、2つの場面オブジェクトを重ねて配置する案です。状況によってどちらかをアクティブ、非アクティブ化を行いカメラに映すべき場面を制御します。

いずれの案にせよ私の理性は「これで問題なし」と言ってるのですが直感が「もっといいやり方やスマートなやり方あるんじゃね?」とうるさいのでこうしてこの場で質問した次第です。

正直なところ2Dアクションゲームにおけるイベントシーンの演出の実現をどうやってるか全然情報がでなくてかなり困ってます。

そもそも調べ方が分かってない部分多いです。ゲーム業界ではそういうときどういう単語で呼ばれてるのか……その扱いは……?ううーッ!

オレ、コトバ、ワカラネェ……!コレ、ナンテ、イウ……!?

これが今の私です。自分がなにを知りたがってるのか言語化できずに困ってます。こっちのほうが問題としてはでかいです。

なのでこういう風に調べたらいいよという意見やこのサイト、この本が網羅的にのってるからおすすめとか情報をいただけたら大変助かります。

無論、単純に「自分は場面転換こうやってる」というのだけでも全然助かるので意見いただけたらと思います。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

ふたさこ 2023/08/26 23:43

【Unity】Fungus用のエディタ拡張配布

ふたさこのサクフウです。

今回はUnityでゲームを開発している人向けの記事です。
より正確には、Unityのアセット『Fungus』を使っている人向けです。

Fungusについては散々世話になってる手前、紹介しないのも不義理なので軽く説明します。

Fungusとは無料で使えるUnityのアセットの一つでプログラミング知識がなくても会話シーンなどが簡単に作れるのが売りです。

当ふたさこの作品においてもエロトラップダンジョン(R-18注意)ver.1を除いた全ての作品の会話シーンをこのアセットで作っています。
公式サイトはこちら

今回はそのFungusを使いやすくするエディタ拡張を作ったので配布したいと思います。

どういうものなのかは以下に基本的機能紹介と使い方を兼ねた動画を用意したので見ていただければと思います。

機能

改めて機能は以下の通り

・テキストから「」か()囲まれてる文字列を抽出して一つずつFungusに並べる。
・必要に応じて「」も抽出するか選べる。
・↑で「」を抽出しない場合、セリフの最後尾に”。”を追加するか選べる。(!や?の記号がある場合は追加されない)

注意点

あくまで抽出するだけなので誰が喋ってるかなどは別途手作業にて設定することになります。
また「」と()に囲まれた文字列のみ抽出するのでそれ以外で表現されたセリフなどを抽出したい場合はスクリプトを書き換える必要があります。

そしてなにより独学プログラマーが自分のために作ったものなのでおそらく粗があるかと思われますがご了承ください。

ダウンロードと導入方法

ダウンロードはこちらから。

Fungusエディタ拡張セリフ抽出.unitypackage (31.57kB)

ダウンロード

ダウンロードしたアセットをUnityで読み込むと導入完了です。
注意点としてFungus用のエディタ拡張なのでFungusを導入しないと使えません。
Fungusについては公式のGithubからどうぞ。

推奨環境

・Unity 2022.3.7f1
・Fungus v3.13.8

単純にこれ以外の環境を試してないのでこう書きましたが、たぶん違う環境でも全然動くと思います。
ただFungusについては上記の最新版を使ったほうがいいと思われます。

使い方

使い方は先程の動画のとおりですが改めてポイントだけ文章でおさえます。

1:導入したエディタ拡張のウィンドウを開く(Fungusと同じとこにいます)


2:「」や()だけを抽出したいテキストをStoryText欄にコピペ。
3:ブロック生成したいflowchartを一番上の欄にアタッチ
4:任意でオプションの設定してブロック生成を押す

(導入したエディタ拡張の様相)

以上でアタッチしたflowchartに新しいブロックが生成され、中に抽出した「セリフ」や(モノローグ)が並べられています。

作った所感

ふたさこの活動を始めてからFungusにはずっとお世話になっていますが会話シーンを作ろうと思うとセリフを一つずつコピペ(または手作業で入力)しなければならないのがずっと気になっていたので今回解決できて非常に満足しています。

今回特筆するべき点として「」や()に囲まれた文字列を判定するのに正規表現が必要でしたがよく分からなかったのでChatGPTに丸投げしました。

状況によって柔軟に条件が決められるがとっつきずらい正規表現とChatGPTの相性は抜群だと感じたのでこれからも積極的に活用していきたいと思います。

おかげで抽出する部分の実装はすんなりと終わることができました。

一方で苦戦したのはFungusをスクリプトでどうこうする部分。
そういうことに関しては日本語の情報が見当たらなかったので今回のエディタ拡張の開発はFungusのコードとにらめっこする時間がほとんどでした。

わかってしまえばどうということはないのですがそれを見つけるのに大きく時間がかかりました。
こういう要所を見つける嗅覚をどう発達させればいいか見つけるのが今後の課題でしょう。
プログラミングはとにかく調べ物に費やすのが面白くもあり、失われる時間も多いです。

また今回で初めて自分で作ったコードを公開することになりました。
意外にも「作ってはい公開!」というわけにもいかず公開するための準備が色々あることを知りました。
積極的に便利なものを公開している、または情報を発信しているプログラマー達には頭が上がりません。

統括しますとプログラミング結構好きかもしれないなというのが率直な感想です。
めんどうで退屈な作業を直接ぶちのめせるのはプログラミングだけ!
最高に気持ちいいぜ!

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

ふたさこ 2022/09/18 23:26

ギミック実装しました

ふたさこのサクフウです。

横スク作成ツール、コーギーエンジンで用意されていないギミックなどの実装がひとまず終わりました。
これからは必要なグラフィックを用意しつつ実装したギミック等を実際の感じで動かし、不具合を発見をしたら修正していきます。

というわけで早速そんな感じで実戦段階に仕上がったギミックを一つお披露目したいと思います。

コードネームはBanana

ご覧のとおり今回完成したのは盛大にすっ転ぶギミックです。
単体ではそれだけのギミックですが、すっ転ぶ先にエロトラップを置けば……

このようにネーロエをエロトラップにシュートできます。

さらにこんな感じでも遊べます。


もし私がこんな目にあったら帰ってしばらく横になります。

さて、思いついた当初はグラフィックはバナナの皮を想定していましたが、そうするとめんどくさいことに気がついたのでやめました。

例えば、踏んだあとなにも処理を入れてないとバナナの皮は微動だにせずその場に留まり続けます。さすがに一緒に吹っ飛ぶなりしないと不自然です。
さらに吹っ飛んだあとのバナナの皮はどっか消えるのか、残すのかも考えなくてはなりません。

こうして開発当初のコードネームはバナナでしたが今はただのスリップギミックとなりました。無念。

しかし、私はこいつに対して非常に様々な可能性を感じています。

可能性

厳密に言えばこのすっ転んだ状態のネーロエに対してです。


なにかこう、色んなエロに繋がりそうです。

余談ですがこの絵、なぜか激烈に苦戦してしまい、たかがこの一枚で7時間以上もかかりました。大惨事です。スリップネーロエ事件として栄光輝かしいふたさこ史に暗黒の名がまた一つ刻まれました。

それはともかく、このすっ転び状態を引っくるめて今回のスリップギミックにはなにか大いなる力を感じております。

言語化できていないですがこう、”これみたいな違うやつ”をもっとどんどん思いつくことができればエロトラップダンジョンとして一つの完成形となるゲームが生まれるのではないかと思っています。

とはいえ、今はこのver2の完成が先決です。
私の見立てでは現状の目標である10月までに各ステージ完成は厳しいと見ています。可能性を探る余裕はありません。

なぜそうなったのでしょうか?
実はあのスリップネーロエ事件の裏で、もう一つクッソ凄惨な事件が起こっていたのです。

なお既に犯人は逮捕されており、然るべきふたさこ裁判を経て速やかに宇宙漂流刑になっています。
またこのような事件を二度と繰り返させないためふたさこ議会においてふたさこ憲法に新たなら条例を追加する議案が満場一致で可決しました。

今では模倣犯が現れた場合、直ちに国際指名手配されふたさこ軍がスクランブル出動。その場で宇宙漂流刑に処すことがふたさこ憲法上で正当な権利として認めらています。

今回はそんな凄惨なこの事件と同様の手口で暴れようとしている薄汚い悪党がもし皆様の前に現れたとき一体どうすればいいかを記して終わりとしたいと思います。

興味があればご覧ください。

アロー事件

まず最初に今回始末するクソ野郎を紹介します。

こいつらなんなのか?
それはUnityでアニメーションを扱うときのやつです。
アニメーションが切り替わる流れやどういう条件で切り替わるのかをここで設定することができます。
要はプレイヤーとかのモーションを切り替える仕組みです。
例えば、待機→移動。そして移動→ジャンプ、といったようにアニメーションを切り替える流れを設定します。
これがおかしいと棒立ちでプレイヤーが飛んだりします。(以下のgifは極端な設定ミス例)

それではそれを踏まえて実際に起きた問題と対抗策を説明していきます。

実際よくあるやつ

では実際に問題が起きたときの挙動をお見せしたいと思います。

まずはいい方の挙動をお見せします。着地の瞬間にご注目ください。


次はダメなほうです。

ダメなほうはほんの少しの間ですが空中にいるときの姿勢のまま地面を滑っているのがわかるかと思います。

こうして見ると些細なことですが、実際に操作すると相当気になりプレイの妨げになります。
さっきの例では着地の瞬間のことでしたがこれがジャンプする瞬間や攻撃する瞬間となるとさらに顕著でしょう。

今回は別にこの挙動に明確なゲーム的な意味はないので修正します。

対処法


さて再びこの画像です。
この画像に変な挙動を生み出すクソ野郎が一人います。
一見どれも無害な市民のような顔をしていますが、一人だけ醜い凶悪犯罪者の薄汚いツラを必死に隠している卑怯者が確かに存在しているのです。

その卑怯者とは真ん中の矢印です。

早速クリックしその本性を暴きましょう。
すると以下のような矢印の凶暴な本性、設定画面が出ます。

なんと邪悪な面構えでしょう。というわけでこいつの顔面をぶん殴ります。
つまり”終了時間あり”のチェックを外します。

さてこれでいくらかマシな顔になりました。
しかし、ここまでなら正直googleでいくらでも出てくる他愛のない情報です。
「unity アニメーション すぐ切り替わらない」とかで無限にでてきますし、たいていはこれで片が付きます。私も今までそうしてました。

では片が付かなかった場合は?今回これこそが声を大にして伝えたいことになります。

チェックを殴ったのにまだ倒れやがらねぇ場合

さぁしぶとい悪党にトドメを刺しましょう。
”終了時間あり”のチェックを外したのにも関わらずまだ立ちはだかってくる場合は

遷移間隔(s)を0にして引導を渡します。
遷移間隔(s)を0にして引導を渡します。


これでこいつはお陀仏です。
もしこれらをやったのに問題が片付かない場合はすなわち、Unityのアニメーターとは別のところに悪党や黒幕がいるということになります。

幸運にも私は出くわしたことはないのでそういう場合は残念ながら力になりません。武運を祈ります。

どちらにせよ簡単なことなのでまずは真っ先に薄汚ねぇ矢印どもを睨みつけてチェックが入ってないか、遷移間隔に0以外の数値が入ってないかを確認するといいと思います。

さて重要な情報はここまでです。あとは余談になります。ここまでお読みいただきありがとうございました。少しでも世界のために今日もどこかで戦っている誇り高きUnity戦士達の力になれたら幸いです。

宿命の忌まわしき血族

ここから余談です。
ここまで読んで「たかが矢印ごときになんかあたりが強くないか?」と思った方も多いのではないかと思います。

しかし私はこの矢印のせいで10時間は無駄にしました。

矢印どものチェックは全部外しているのになぜ問題が解決しないのか?もしかして書いたプログラムが悪さしてるのか?それともコーギーエンジンが……?

そんな感じで調査していたら10時間以上浪費する大惨事になりました。
ただ遷移間隔(s)を0にすれば終わる話だったわけです。

とはいえ実はこの矢印の仕様にはそこまでの怒りはありません。
実際ふたさこ裁判においても見落としをした私の責任ということで私に9999兆年の宇宙漂流刑が下されました(今は刑期を終えてふたさこ大統領にカムバックしています)

私が矢印を悪党と断じているのはそもそも問題が起きないようにすることができないからです。

まずは以下の画像をご覧ください。


もう見知った悪人面だと思います。実はこれこそ矢印のデフォルト設定であり矢印はこの状態で生まれくるのです。

つまり生まれながらの悪党というわけです。
矢印を生み出すたびにいちいち設定を変更しなければなりません。
これは問題です。

いつか変更し忘れて同じミスをする可能性(結局今回もそうだった)がありますし、単純にめんどうです。
今回初めて知りましたが、アクションゲームを作るにおいてこの矢印は結構な数が必要でありその積み重ねで消費する時間は結構バカにできません。

そもそもこの”終了時間あり”などの設定は3Dモデルを扱う場合に使う項目であり、2Dでやってる現在の私には永遠に不要だということが分かりきっています。

そこでUnityのプリセットと呼ばれる機能を利用します。

これはUnityのほぼあらゆる機能の設定を保存して自由に呼び出したり、保存した設定をデフォルトにする大変便利な機能があります。
当然、矢印の設定も保存することができます。

しかし問題は発生しました。
矢印は設定を保存することはできるが、それをデフォルト設定にはできない仕様だったのです。よりによって。

今回の記事構成は、デフォルト設定を変更するまでを紹介し更生した矢印と握手してめでたし、という計画でしたが儚く崩れ去りました。
矢印は悪党を生み出すことしかできない宿命づけられた忌まわしき呪われた血族だったのです。

実はやりようは結構あるのですがそうすると今度はUnityそのものという宇宙と向き合う必要があり今の私にとっては物理法則を書き換えるのと同じです。手出しできません。

出来ることと言えばこうして強い印象付けをして設定しなければならないことを忘れないようにすることぐらいです。
皆さんも矢印を見たらこの言葉を思い出してください。

矢印は悪の血族。

どうかくれぐれもお忘れなきようよろしくお願いします。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

ふたさこ 2022/08/06 09:34

私が全面降伏に至るまでと今後の予定について

ふたさこのサクフウです。
いよいよこのときが来ました。このCi-enを始めた当初からの野望であるふたなりネーロエとエロトラップダンジョンver.2の制作に本格的に着手していきます。

どのように制作していくのか?その計画は?
まずはじめに、例によって文が長いので先に結論だけ申し上げます。

すみません、お時間ください。計画を立て直します。

それでは一体どういうことなのかを説明していきたいと思います。

計画の前提

まずおさらいです。
ver.2制作計画、その最大の目標は2D横スクロールアクションの実装になります。
ただし、これは次の新作を作るための勉強という意味合いが強く、非常にシンプルなものになります。
凝ったものを作るなら新作で。それが基本方針です。

必要なもの

以上を踏まえて、まず必要なものはアクションゲームを作るためのシステムです。
恐らく10年ぐらいあれば満足出来るものが作れるでしょう。私は実に気長です。
しかし逆に言えば悠長です。
ですので今回はUnityの強みであるアセットを利用したいと思います。

ざっくばらんに説明しますとUnityで使えるRPGツクールのアクションゲーム版を使って賢くゲームを作ろう!という魂胆です。

そして使うのはこのアセット、コーギーエンジン(ストアページに飛びます)です。


数あるUnityアセットの中でも極めて評価が高く、情報も豊富でしたので採用としました。

というわけで既に購入しています。運良くセールも実施されており5000円ほどで私は10年先に行きました。すごいコスパです。マネーパワー!

そうなってくるとまず私がやらなければならないことはコーギーエンジンの使い方を学ぶことです。

アルファベットの先

さて、コーギーエンジンは海外で作られているものなので親しみあるひらがなや漢字に居場所はなく無慈悲にもアルファベットどもの巣窟と化しています。
使い方を知るための説明書も例外ではありません。
学ぶだけでも骨が折れそうです。

そこでコーギーエンジンの情報の多さが活きてきます。親切にも日本語で解説してくれている方々が多く存在いるためその辺は大丈夫でしょう。

しかしこういう世界はそもそも一次情報がアルファベットどもの巣窟であることが当たり前の世界。
今回私は全身のプログラミングマッスルを発達させるためにもなるべくDeepL翻訳というナタを振り回して突き進むことにしました。

ざっと見た感じ公式から提供されている情報は知りたい情報がきれいにまとまっており問題ないでしょう。

私は早速コーギーエンジンがどれぐらいで学び終えることが出来そうか見当をつけるために実際に触れてみることにしました。現地調査の開始です。

鬱蒼としたジャングル。ボートで上陸した私は周囲を警戒しつつDeepL翻訳というナタで道を切り開いていきました。

しかしその作業はすぐに中断せざるを得ない事態となります。
なぜならすぐ目の前に洗練された都市が広がっていたからです。

コーギーエンジンの衝撃

まさに10年先の未来がそこにありました。
あの洗練された都市から見れば私の切り開いた道は道端に生えてるタンポポをむしった程度のことでしょう。
それほどコーギーエンジンは非常に使い手側のことを考えて作られており明確かつ実に簡単に色々なことが出来るようになっていたのです。

とりあえず3時間ほど調査で触ってみた成果です。

正直もう充分です。私がver.2にぼんやり求めたものが全てあります。これ以上私はなにを学べばいいのでしょうか?
おかげで分かったことを逐一報告してCi-enの記事数を水増しする闇の8月計画が台無しです。
まだステージの作り方は調べてないですが、どうせ記事にするほどもない簡単なことでしょう。

無慈悲な破壊者よ

このようにコーギーエンジンはマジで凄く、完全に油断していた私は途方に暮れることになりました。
まだ先のことだろうと最終的なver.2の具体的な形を全然考えていません。
どうやってふたなりネーロエとエロトラップダンジョンを横スクロールアクションゲームに落とし込んだらいいのでしょうか?今の私には分かりません。
作れる環境は完全に整っているのに私の準備が全く出来ていない状態です。

最初に"ver.2は新作の勉強の意味合いが強く、出来上がるものは非常にシンプルになる"と言いましたがまさにその非常にシンプルなものが学ぶのも含めて3時間程度でできてしまっています。
私のver.2制作計画は前提から破壊されました。
コーギーエンジンが生み出すスピードに悠長な私は全く追いつけていません。
こんなに簡単ならちょっと踏み込んだものも作れそうです。

というわけでここに私は敬意を込めてコーギーエンジンに対し全面降伏を宣言するとともに、今後の予定を考え直したいと思います。

ちょっと、その、お待ち下さい。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

ふたさこ 2022/08/04 21:24

自動化ツールの不具合調査をしました

ふたさこのサクフウです。
ver.2制作に取り掛かりたいにも関わらず、今後の作業効率にダイレクトに響くためやむなく自分で作ったアニメ自動化ツールの不具合を調査しました。

が、驚くべきことに不具合が起きたときと同じように試したにも関わらず全く問題なく正常に動作しました。
私にもよく分かりません。混乱しています。
不具合が起きたときと違うことといえばPCを再起動したということぐらいだと思います。
そこで私は現場で見てきた情報を整理しあらゆる角度から分析。考えられる仮説を2つにまで絞り込みました。

仮説1

不具合が私のあまりの怒り様に青ざめて逃亡したという説です。

私はなにがあっても不具合をギタギタにするつもりでやってきていましたからどこかに隠れていた不具合が非常に切迫した命の危険を感じてどこかに行ってしまった、ということは充分ありえる話です。

少なくともヤツは我が物顔で幸せな家庭を築いているにしては逃げるのがあまりにも早く、生活した痕跡も残さずに消えたので独り身であったのは間違いないでしょう。

仮説2

そして第二に、アニメ自動化ツールがとても気分屋で不具合が起きたときはたまたま機嫌が悪かったという説です。

有力説です。PCを再起動したという違いが根拠になります。
PCを再起動したから機嫌が治ったのではないのでしょうか、しらんけど。

結局ヤツはなんだったのか?

というわけで私はこの2つの仮説のどちらか、あるいはその両方のおかげで不具合が治ったと考えています。

どちらにしろ言えるのは頭にくるということです。
逃げるぐらいだったら最初から来ないで欲しいですし、プログラムの集合体のくせに機嫌を損ねないでほしいです。ロボットのくせにドジなところがあるドラえもんみたいです。

でも私ドラえもんが好きです。なので溜飲を下げました。
そして代わりに自動化ツールの改善に取り組むことにしました。

作った当初は自動化ツールの出来に満足していたものですが繰り返し使ってみると案外不便なところも多いことがわかったのです。
なのでそれらを改善しさらに使いやすいツールにしました。

不具合がなかったならさっさとver.2に取り掛かるべきだったのかもしれませんが、長い目で見れば改善したほうが絶対効率がいいので良い機会だったと思います。
今回の不具合がなければそのままver.2制作に取り掛かっていました。

そういう点で考えると突然現れて消えていったあの不具合は私に警笛を鳴らしていたのかもしれません。
それはそれとして次会ったときに有無を言わさず心臓をぶち抜いてやることができる爆発的な瞬発力が今の私には求められています。
なのでトレーニングを重ね上腕プログラミング筋と大腿プログラミング筋をよくバルクアップさせておきたいと思います。

最後に

というわけでいよいよver.2制作に取り掛かっていきます。
具体的にどのような感じで進めていくかは後日それ用の記事を投稿したいと思います。
よろしくお願いします。

この記事が良かったらチップを贈って支援しましょう!

チップを贈るにはユーザー登録が必要です。チップについてはこちら

« 1 2

月別アーカイブ

記事を検索