Тёмный
ミアリーフ / MiaLeaf
ミアリーフ / MiaLeaf
ミアリーフ / MiaLeaf
Подписаться
"つくる" も "遊ぶ" もゲームを楽しく!
「ミアリーフ」のRU-vidチャンネルです。

『大好きなゲームを、自分が思い描いたように作れたら楽しいだろうなぁ…』という、ふとした思いに端を発したゲーム制作。
プログラミング経験ゼロ、イラスト作成経験ゼロからのスタートでも、「制作自体を楽しむ」ことをモットーにその経過をお届けしています。
アシスタントの「小夜ちゃん」「青山くん」とともにお送りするマイペースな制作、のんびりお付き合いいただけますと幸いです。

現在は第1作目として、ゲームエンジン「Unity」を使って「2D縦スクロール」のゲーム開発に挑戦しています!
Комментарии
@ぷち-z1g
@ぷち-z1g 10 дней назад
うぽつです。モグラさん可愛い!
@ぷち-z1g
@ぷち-z1g 22 дня назад
ここまで配列すら知らなかったのにこれだけのものを・・・!?
@がむしろ
@がむしろ 22 дня назад
Random.InitState(hogehoge); しても Mathf.PerlinNoise(foo, bar); が返す値は一緒なのが残念
@っっっt-q1c
@っっっt-q1c 23 дня назад
投稿お疲れ様です! 何もない空白を0(もしくは別のID)としておいたら地形の破壊状態を保存出来たり、鉱脈と同じ要領で空洞とか作れたりして面白そうですね~
@ぷち-z1g
@ぷち-z1g 24 дня назад
初見です。 パーリンノイズ、聞いたことはあったけど詳細は知らなかったので、 どうやって実装するのかと思ったら元々mathfの中にいるんですね・・・! 自力実装する気まんまんで見に来ちゃいました。 こういうステージ生成系のアルゴリズム大好きなので、見ていて凄く楽しかったです。 2重ループでInstantiateしてる瞬間が、「ああ、今ステージ生成してるなー」って感じでテンション上がるんですよね。 まだこの動画しか見ていないので、余計なお世話だったら申し訳ないのですが、 5:31 左辺が変わらない(stage.mapData[x,y] == 右辺 の形)のであれば、if elseよりも、switchを使った方がシンプルに書けますよ。 ifで書くと左辺をstage.mapData[x.y] 以外に変えたくなった時に全箇所変えないといけなくなっちゃうので。
@mia_leaf
@mia_leaf 23 дня назад
ありがとうございます。励みになります。 嬉しくてついつい何度も生成しちゃいます…。笑 拙文にご指摘まで…! なるほどココこそ「Switch文」を使うに相応しい箇所か。 忘れないうちに改めておこうと思います!
@ぷち-z1g
@ぷち-z1g 21 день назад
@@mia_leaf 一気見してきました~。 最初に見た時は、クラスも結構使いこなしてるしゲームのクオリティも高い割にクラスに苦手感あるとか、実力と発言がかみ合わないなーと頭にハテナでしたが、まさかまともにクラスを使いこなし始めたのがこのパートからだったとは・・・!(動画前半見てた時はマジでパーリンノイズの実装法とか解説するガチ技術系動画かと思って見てました笑) 徐々に知識も付け始めてきているし、今の段階でもこれだけのクオリティなのにさらに知識が付いたら凄く化けそう・・・ 以下長文失礼しますね。 VisualStudioは、変数名にカーソルを合わせて「F2」を押すことで、その変数が登場する場所全てを一括で別の名前に修正することができます。 これは、同じプロジェクト内の全てのファイルに適用されます。例えば、GameManagerのpublicな変数名をF2で変えれば、ほかのスクリプトの中でその変数を参照してるところも自動で書き換わります。 まあ、インスペクタでアタッチしたGameObjectとかは外れちゃうので注意ですが、インスペクタに表示されない変数なら何も気にせずガンガン直しても特に弊害は出ないと思います。 ちなみに、同名の変数があったとしても、ちゃんと自分の選んだ変数だけを改名してくれます。ブロックのnameをnamaeに変更しても、引っ張られてキャラクターのnameがnamaeに変えられるようなことはありません。 ※変数名だけじゃなく、クラス名、メソッド名、プロパティ名など、自分で作った名前は基本全部直せます。  ただ、クラス名は一緒にファイル名まで直される時があるので、注意です。ありがたいときもあるし、困る時もある。
@mia_leaf
@mia_leaf 20 дней назад
一気見…!大変だったでしょう() 当初思っておられた内容との乖離も大きかったことでしょうから、 せめて楽しんでいただけていればと思うばかりです。 励みになります。改めて、ありがとう。 “化け”られるようがんばります。
@nandemo-yaru-ch
@nandemo-yaru-ch 24 дня назад
こういう、鉱石が固まって生成されているのどうやってできているんかなーってずっと思っていたんですよ。(ドームキーパーというゲームなどで) こんな仕組みになっていたんですね!
@KisekI369
@KisekI369 24 дня назад
硬すぎて壊せない岩、間欠泉、毒ガス、転がる大岩…地中にあっておかしくないギミックもランダム配置したら、さらなるメリハリができて面白そう
@SATOU.NOMURA5475
@SATOU.NOMURA5475 22 дня назад
転がる大岩絶対テラリアやろww
@ぷち-z1g
@ぷち-z1g 21 день назад
戦闘無いって言ってるのに自然の殺意が高いw
@frameseekeron
@frameseekeron 25 дней назад
new Vecotor3でプレハブのwidthをheightを考慮して隣に生成してくれるってことかな。Unityさすが。
@podono3
@podono3 Месяц назад
ドット絵描けて動画編集出来てゲーム作れてマジ尊敬です
@ziroura
@ziroura Месяц назад
セーブ機能なんて誰かが作ったアセット利用でいい気がする
@grayhamachi
@grayhamachi Месяц назад
「ドロップアイテムが積み上がるの気になる…」と思いながら見ていたのですが、それが同じ動画内で解消されて大変すっきりしました。ありがとうございます!
@はてなインコ
@はてなインコ 2 месяца назад
良い感じに着々と進んでますね! 提案なのですが、鉄ブロックの見た目は残り耐久に応じて変化するというのはどうでしょうか。 ブロックの状態とルールを一目でわかるので、UXの向上に貢献できるかと思います。
@はてなインコ
@はてなインコ 2 месяца назад
早速 early return 対応できてて素晴らしいです! コードの可読性向上は、将来の自分へのギフトになります。 とはいえ、プロでさえ毎回納得の行くプログラムは書けないと言いますから、程々なくらいが丁度よいかもですね。 TextMeshPro は結構難しいのに使えててすごいです! フォントアセット生成時に出ていたエラーが気になるようでしたら、試しにフォントアセット生成時に指定した文字列をそのまま表示させてみて、豆腐(□←縦長のこういうの)が出ているか確認してみてください。 必要な文字が豆腐になっていた場合は複数のフォントアセットに分ける技があるので、それを使えば解決できるかもです。 「TextMeshPro Fallback」とかで調べたらやり方が出てくると思います。 応援してます🍀
@podono3
@podono3 2 месяца назад
制作お疲れ様です! もしかしたらHierarchyでの名前の統一性を持たせた方が管理しやすくなると思います 6:42あたりで言うとNameをNameTextだったりTextをDescriptionTextなどにしておけば検索窓にTextと打てば全て出てくるので まあ好みですけどねw 今後も制作頑張ってください!
@kurageshigure
@kurageshigure 2 месяца назад
カメラやキャンバスのピクセル数が画面より少ないとすでに文字はキャンバスなどに合わせて描いて確定してから画面に合わせて拡大しまっている形になるのでガビッとすることがあります
@grayhamachi
@grayhamachi 2 месяца назад
着々と開発が進んでて素敵ですね。
@KisekI369
@KisekI369 2 месяца назад
ブログがあるようなので、今まで書いたプログラムを載せておいてもらえると、 勉強したい人も、アドバイスしたい人も助かると思います
@Vithe-Gaming
@Vithe-Gaming 2 месяца назад
データ型書き間違えあるあるw これでインベントリシステムは殆ど出来たのかな。 クラスは実体化(インスタンシエイト)する際に扱う"設計図"と表される概念かな。動的生成の為の元情報。 実体(インスタンス)はクラスを元に生成されたもので、原則的に一意の識別子を与えられます。故に同じクラス型の実体を複数区別して扱う事が可能。 よく対の様に出されるモジュールは、関数等をまとめたもの。実体化はせず、直接アクセスして扱う。 まぁ、大体こんな感じで好いと思います。 セーブ機能の形はアプリの数だけありますからね...保存する値を決めておけば、すんなり出来ると思います。 俺たちの戦いはこれからだ!ミアリーフ先生の次回作にご期待ください。
@かえ-m1m
@かえ-m1m 2 месяца назад
最近ゲーム制作挫折し掛けててたまたまこの動画に辿り着きました👀2人?の掛け合いがすごく可愛くて見てて元気を貰えます!頑張ってください!!
@Vithe-Gaming
@Vithe-Gaming 2 месяца назад
無視される所草
@nandemo-yaru-ch
@nandemo-yaru-ch 2 месяца назад
自分、この動画を追っかけて真似して作っています。 しょうもない話なんですが、ヴィジュアルスタジオ2019でもいいんですが、気分的に2022の方がよくないですか? ユニティのプログラムのスペル?言語?についてもアップデートが入ってて予測変換とかも強くなってるみたいなので(結局よくわからないんですが)。
@podono3
@podono3 2 месяца назад
アイテム説明欄がローマ字読みと英語が混じってるのがツボでしたw UIがどんどん作り込まれてっていい感じですね! つまずく事がたくさんあると思いますが陰ながら応援してます!!!
@はてなインコ
@はてなインコ 2 месяца назад
制作続けててえらい! 応援してます! 気になった点を挙げるので、ご参考までに… 4:00 1つ目のfor文の最初のbreakをreturnするだけの方がシンプルで良いかもですね 今後、2つ目のfor文の後に処理を追加する予定ならばこの方法でも良いですが、やるとしてもメソッド内で宣言する一時変数にした方が良さそうです 使い捨て判定の為にメンバ変数を作る手法はあまり推奨されていません(私も初学者の時にやってました…) 可能であれば早期にreturnしてしまおう!というこの手法は「early return」と呼ばれていて、コードの可読性と保守性の向上に役立ちます 比較的簡単にできる工夫ですので、是非日々の開発に取り入れてみてください!🍀
@Vithe-Gaming
@Vithe-Gaming 3 месяца назад
slice9は本当に有難い機能 インベントリ、と言うか実際作ってるUIってテーブル、リスト、もっと凝るとタブとかにもなるけど、案外作るの大変で時間が溶けるんですよねw まずは一山超えたでしょうb
@nandemo-yaru-ch
@nandemo-yaru-ch 3 месяца назад
タイムデルタタイムは、パソコンの性能によって秒数を数える速さが変わらないようにするためのものだった気がする
@nandemo-yaru-ch
@nandemo-yaru-ch 3 месяца назад
うそうそ、タイムにデルタタイムをつけてるんだ。デルタタイムが秒数を矯正するやつ。 (この動画見やすくてほんとありがたいです。永遠に追いかけます)
@podono3
@podono3 3 месяца назад
UI制作は無限に時間が溶けてしまいますよねw TextMeshProで地味に躓くのわかります、スクリプトでの扱いが過去のTextと少し違うので過去の偉人たちのスクリプトをそのままコピペして使えなかったりで混乱しますよね 最近暑いですので熱中症には気をつけて制作頑張ってください!
@katamari8678
@katamari8678 3 месяца назад
動画作りながらってすごい・・・ ゲーム制作より動画作るほうが労力掛かりそう
@はてなインコ
@はてなインコ 3 месяца назад
Ctrl + D で選択中のオブジェクトを複製できますよ
@grayhamachi
@grayhamachi 3 месяца назад
UI 作成への着手いいですね。着々と開発が進んでいますね。
@Vithe-Gaming
@Vithe-Gaming 3 месяца назад
UIは拘ると、時間が溶ける溶ける...
@はてなインコ
@はてなインコ 3 месяца назад
Unityのインスペクタウィンドウに表示されたスクリプトが文字化する問題を解決したい場合は、次を試してみてください 触ったのが昔すぎて覚えていないのですが、たしかどちらかで対応できたと思います(適当ですみません) ①.editorconfigファイルを作る 検索するとこれがトップに出てきます ②Unityのテンプレートを修正する場合 テンプレートは「Unityのインストールフォルダ\Editor\Data\Resources\ScriptTemplates」の中にあります 手動で対応する場合は、文字コードをUTF-8で保存すれば解決できます
@はてなインコ
@はてなインコ 3 месяца назад
今回のエッジジャンプをしないようにするための対応について、他のアプローチもあるよという情報 元々プレイヤーのコライダーをカプセルにした理由はブロックとブロックの間でプレイヤーがひっかかる問題を解決するためだったっぽいですけど、compositeCollider2dっていうのを使えばプレイヤーのコライダーをボックスのまま、ひっかかる問題を解決できますよ compositeCollider2dコンポーネントは、それを持っているオブジェクトの子が持っているコライダー系をまとめて1つにしてくれるやつです コライダーが1つになるので、負荷軽減にも一役買ってくれます 動的にコライダーの形が変わる様は見ていて楽しいです でも難しい場合は今回の対応でもOKです! 初心者の頃は楽しむ事が一番大切です!
@mia_leaf
@mia_leaf 3 месяца назад
ありがとうございます。 折に触れて「コライダーって"丸"とか"四角"しかないんだなぁ~」と思っていたものでしたから、見透かされたような気持ちです(笑) 機会があればぜひ使ってみようと思います!
@はてなインコ
@はてなインコ 3 месяца назад
既知でしたらすみません 今回のコルーチンの用法について アニメーションイベントというのを使うと、アニメーションの特定のタイミングで関数を実行するようにできます キャラクターの見た目を確認しながら設定できるので、今回のケースではその方法もアリだったかもしれませんね コルーチンは一回予約すると参照を保持していないとキャンセルできなくなるので、扱いには注意です 例えば「攻撃予備動作中にダメージを受けた場合は攻撃をキャンセルする」というような仕様を追加する場合に、コルーチンは走っているままなのでダメージを受けているのに攻撃が出てしまう、というバグを生み出したりします 逆に、複数のイベントを予約した状態を作りたい場合はコルーチンが有用です アニメーションイベントは解析ツールで呼び出し元を追えなかったり、ソースファイル上に現れない値を扱う事になるので、好みが分かれるポイントではありますが、1人でカジュアルに作りたいのであれば、一考の余地はあると思います まあ今回は既に作ってしまったので、そのまま行っても良いとは思います 頭の片隅に置いていただければ幸いです ちなみに私はアニメーションイベントを使ったプロジェクトを時間が経った後見返した時に「この関数どこから呼ばれてるんだ…?」となったのでアニメーションイベントは非推奨派です(←じゃあ何故その話をしたんだ) 長文失礼しました
@Vithe-Gaming
@Vithe-Gaming 3 месяца назад
エッジジャンプw この仕様だと要る様な要らないようなw ちょっとずつだけど、前に進んでるんだよな。開発って地味で地道なんだよね。
@podono3
@podono3 3 месяца назад
レイヤーが昼ドラ化は笑いましたwww 遂にアイテムが拾えるように!! ただアイテムリストの見方が少しクセありますねw ミアさんの動画を見るとモチベがどんどん上がっていきます!! 梅雨入りして天気が悪い日が続きますが体に気をつけてゲーム制作頑張ってください!!
@Vithe-Gaming
@Vithe-Gaming 3 месяца назад
やっぱり目に見えて解る理想的な変化があると、嬉しくなりますよね。 しかし識別子と個数は、不都合が無い限り連想配列で管理した方が楽な気がしますゾ。
@蛯子えび
@蛯子えび 3 месяца назад
いつも楽しく見させていただいています。 一歩一歩を丁寧に踏みしめて開発を進めている姿勢、私も見習わなければと大変励みになります。 老婆心ながら、アイテムの管理はアイテムIDと個数で別々のListクラスを用意するより、Dictionaryクラスを利用するといいかもしれません。 Dictionaryクラスを使うと、アイテムIDと紐づけて変数を設定できるので、IDと個数の管理がより楽にできるかと思います。 Listにアイテムの種類を追加したり削除したり、ということをした場合に、アイテムIDのリストと個数のリストで位置がずれる、ということが防げます。 もちろんやり方は様々ですので、少し合わないようであれば聞き流してください。 以前の進捗共有会で話された世界観に惹かれており、どのようなゲームが出来上がるか楽しみにしています。 完成する日まで陰ながら応援しておりますので、楽しみながらがんばってください。
@mia_leaf
@mia_leaf 3 месяца назад
お心遣いを、ありがとうございます。 Dictionary・・・!いただいたコメントで初めて知りました。 どうにも便利そうですから、勉強してみます! もちろん、理解が追いつけば導入も視野に。
@grayhamachi
@grayhamachi 3 месяца назад
着実に Unity の理解が深まって開発が進んでいるの素敵ですね。応援しています。
@KisekI369
@KisekI369 3 месяца назад
【ご提案】ドワーフさんが掘る地形を、風来のシレンみたいなランダムで形が変わる地形にしてみる。      めちゃむずかしいので、UNITYの特訓になるかと。
@mia_leaf
@mia_leaf 3 месяца назад
ありがとうございます。 ステージギミックを制作する際、参考にさせていただきます!
@Vithe-Gaming
@Vithe-Gaming 3 месяца назад
箱入り娘w 見る事は許されても、触れ合う事は許されない的なw 言い得て妙ですなw
@Vithe-Gaming
@Vithe-Gaming 4 месяца назад
何かが跳ねる動き一つでも、有無によって受ける印象がまるで違いますよね。 でも好い塩梅を探すのが思いの外時間が掛かってしまうの、解ります。世の殆どの者はそんな事とは露知らず、より派手な所ばかりに目が行くものですが、作り手にとっては地味な所一つでも拘らずに居られない。
@podono3
@podono3 4 месяца назад
最近週一投稿になってて毎週金曜日が楽しみです! ここ数日めちゃくちゃ暑くてエアコン必須ですよね 順調にゲーム制作進んでて素晴らしいです 無理のないペースで頑張ってください 以下おじさんのおせっかいなので読まなくても大丈夫です! ScriptableObjectいいですね!ただ仕様が定まる前にたくさんデータを作ってしまうとPrefabと違いScriptableObjectの変数などを書き直した場合すべて入力のやり直しになる場合があるのでデータの作成数は最小限に留めておいた方がいいと思います プロパティはメソッドと違って()はつきませんItemData型変数.Ralityでralityの値を取り出すことができます! わかりやすい違いとしてはメソッドは int Rality() => rality; と宣言の時に()がつきます あとメソッドは()の中に引数を渡して処理を行うことが出来ますがプロパティは基本的には値の受け取り(get)と変更(set)のみを行うことが出来ます 長くなり申し訳ありませんでした
@yuu3915
@yuu3915 4 месяца назад
私も最近ドット絵の2Dゲームを作り始めたので、 楽しく拝見してます!順調に進んでますね! 以前の動画で、Terrariaがきっかけで始めたっておっしゃってたんですけど、 出来上がったら、Steamとかで販売するんですか? 完成したら遊んでみたいです!
@mia_leaf
@mia_leaf 4 месяца назад
ありがとうございます。励みになります! お恥ずかしながら「ノープランです」が最も現状に即した回答です…。 が、どういう形式であれ「遊んでみたい」とのお声には、 何らかの形でお応えできるよう考えてみたいと思います!
@podono3
@podono3 4 месяца назад
数値の調整で時間が溶けるのわかりますw どんどん要素が増えてゲームらしくなってきましたね! 見ていて楽しいです! 今後も無理なく頑張ってください!
@あいぱっど-n8h
@あいぱっど-n8h 4 месяца назад
こんにちは。いつの間にかたくさん動画が投稿されていてびっくり。#10から一気に見させていただきました。世界観設定いいですね。私は想像力が豊かではないので、発想がすごいなと思いながら見ていました。 参考までにUnity周りで気付いた点をまたいくつか。 ①変数名の変更はその変数名の上で右クリックして「名前の変更」を使うと該当する変数を一括で変更できます。これでミスなし。 ②カメラ追従はcinemachineを使うとスクリプトなしでも今回の機能を実装できます。 ③collider.tag == “block”よりcollider.gameObject.CompareTag(“block”)の方が処理速度が速く推奨されています。機能は全く同じです。 ④走るアニメのboolセット周りで、まどろっこしい感じになってたので、inputX==0でfalseにするか、inputX==Mathf.Abs(1)でtrueにすると直感的かもと思いました。Mathf.Absは絶対値をとる関数、、、ではなくメソッドです。 ⑤タグの設定やアタッチなどはオブジェクトを複数選択してからやると同じ操作を一気にできます。これでミスなし。 長々とすいません。続きも楽しみにしてます。
@Vithe-Gaming
@Vithe-Gaming 4 месяца назад
「当たり前だよなぁ?」参照できないと出来る事が限られちゃいますからねw でも参照が増えて複雑になると、うっかりちゃんとか言ってられなくなる諸刃の剣。 まぁ、しっかりした定義とコメントがあればきっと大丈夫。たぶん。
@podono3
@podono3 4 месяца назад
もう知っていたら申しわけないですが、WindowsならCtrl+RでMacならcommand+Rで一括リネーム出来ます!
@Vithe-Gaming
@Vithe-Gaming 4 месяца назад
思いの外物悲しい世界観で草 所謂、「終末もの」ですね。方向性が決まった、故に色々と作らなきゃいけない大変さと面白さが押し寄せてくるでしょうw
@nandemo-yaru-ch
@nandemo-yaru-ch 5 месяцев назад
とりあえず日本語にした方が、、、
@podono3
@podono3 5 месяцев назад
最初から見てて少し気になったのでコメント失礼します。 もう改善?してたら申し訳ないのですが、パーティクルシステムはScript制御無しでも消せると思います。 インスペクター内のParticleSystemの項目にあるStopActionのドロップダウンをDestroyにすれば、エフェクト終了時に自動的に自身を削除してくれるようになると思います。 僕もunityやってますが企画、制作、とても素晴らしいです! 今後も楽しく拝見させてもらいます!!
@mia_leaf
@mia_leaf 5 месяцев назад
励みになります。 なんと、そんな”気持ちが良い”機能があったなんて…! 参考にさせていただきます!ありがとう、ありがとう。