投稿記事

BAKINの記事 (5)

どこここ|dokococo 2024/08/27 19:00

調べられる場所で!を出す方法

NPCの前に行くと「話す」と出たり、宝箱の前に行くと「調べる」と出る。
そんな、インタラクト可能な状態でヒントを出す方法をご紹介します。

イベントに話しかけられるか判定するスクリプト

以下のコードは、RPG Developer Bakinで「イベントに話しかけられる状態かどうか」を判定してくれるスクリプトです。とても便利なスクリプトなので、教えていただいたスマイルブームに感謝しつつ、ここで共有させていただきます。

Talkable.cs (3.32kB)

ダウンロード
using System;
using Yukar.Engine;

namespace Bakin
{
    public class Talkable : BakinObject
    {
        public override void Start()
        {
            // キャラクターが生成される時に、このメソッドがコールされます。
            // This method is called when the character is created.
        }
       [BakinFunction(Description = "このイベントに話しかけられる = 1 / 話しかけられない = 0")]
public int GetTalkableForThis()
{
    // 現在選ばれているシートを取得
    var scriptGuid = mapChr.getCurrentSheet()?.script ?? Guid.Empty;
    var script = catalog.getItemFromGuid(scriptGuid) as Yukar.Common.Rom.Script;

    // 成立しているシートなし
    if (script == null)
        return 0;

    // 話しかけられるイベントでも、中身が空っぽだったら無視
    if (script.commands.Count == 0)
        return 0;

    // 話しかけられる位置にいれば1を返す
    if (mapScene.hero.collisionStatus.talkableChrList.Contains(mapChr) && script.trigger == Yukar.Common.Rom.Script.Trigger.TALK)
        return 1;

    return 0;
}

        public override void Update()
        {
            // キャラクターが生存している間、
            // 毎フレームこのキャラクターのアップデート前にこのメソッドがコールされます。
            // This method is called every frame before this character updates while the character is alive.
        }

        public override void FixedUpdate()
        {
            // キャラクターが生存している間、
            // 物理エンジンのアップデートに同期してこのメソッドが毎秒必ず60回コールされます。
            // This method will be called 60 times every second, synchronously with physics engine updates while the character is alive.
        }

        public override void BeforeUpdate()
        {
            // キャラクターが生存している間、
            // 毎フレーム、イベント内容の実行前にこのメソッドがコールされます。
            // This method will be called every frame while the character is alive, before the event content is executed.
        }

        public override void Destroy()
        {
            // キャラクターが破棄される時に、このメソッドがコールされます。
            // This method is called when the character is destroyed.
        }

        public override void AfterDraw()
        {
            // このフレームの2D描画処理の最後に、このメソッドがコールされます。
            // This method is called at the end of the 2D drawing process for this frame.
        }

        [BakinFunction(Description="説明文 / Description")]
        public float Func(float attr)
        {
            // [BakinFunction] を付与したメソッドはイベントパネル「C#プログラムの呼び出し」からコールできます。int/float/string の戻り値および引数を一つまで取ることができます。
            // One of the methods with [BakinFunction] can be called from the event panel "Calling C# Programs".  Up to one int/float/string return value and parameter can be used.
            
            return 0;
        }
    }
}

システム構築の流れ

  1. 上記より「Talkable.cs」をダウンロード
  2. Bakinで「C#プログラムの割り当て」から読み込む
  3. Pシートを作成しイベントコマンドを作成
  4. 専用のコモンイベントを作成
  5. 表示させる内容などは自由に設定

システムの仕組みやイベントの組み方などは、Youtubeの動画で詳しく解説しています。
https://youtu.be/lpIgJ-5vpvg

イベントの組み方

イベントのPシートは以下のように組んでください。「文字列変数への代入」「イメージとして画面に文字を表示する」の部分は、お好きなようにカスタム可能です。

通常のイベントシートは、人なら会話コマンド、宝箱ならアイテムを入手するイベントなど、通常通りのイベントコマンドを書きますが、2つのコモンイベントでそれらを囲むように作成します。

「ヒント無効化」のコモンイベントを作成します(0秒ウェイトがないと、無効化前の最後のPシート処理が動いてしまいます)。

続いて「ヒント有効化」のコモンイベントを作成します。

最後に3つ目のコモンイベントとして「初期設定」を作ります。ここで「N:ヒント有効」をONにすれば完成です。

一度この処理を作ってしまえば、あとはキャストに登録しても使えますし、イベントをコピーしても正常に動作します。少しでも皆様のゲーム制作にお役に立てれば幸いです。

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

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

どこここ|dokococo 2024/08/25 19:55

個人開発におけるマップ制作

その昔、偉い人は言いました。

「作っているゲームがエターナらなくなるライン、それはどこだと思う?」
「それはね、マップをすべて作り終えたときだよ」

と……。

エターナる

作者が、諸般の事情によりゲーム制作を途中で放棄すること。または、永遠にゲームが完成しなくなる状態を表す。

これを読んでくださっている方の中には、ゲームを作っている真っ最中の方もいると思います。さて、そのゲームのマップは、すべて作り終えましたか……?

作り終えていたなら、そのゲームはエターナることはないでしょう(たぶん)
しかし、もしまだマップ制作が終わっていなかった場合……油断してはなりません。

画作りの正解を求めて

――個人のゲーム開発においては、マップ制作の工程はかなりのウェイトを占めています。そんなマップの制作を、どのくらいのコストを見据えて始めるのかは大事な要素になってきます。

手を抜くことは簡単、しかしそうすると必然的にモチベーションも下がり、結果として完成が遠のきます。なので、ある程度のクオリティの担保も必要……。

今回は、本作「マルタと導きの声」のゲーム制作開始時に、マップとどのように向き合っていったのかをお話したいと思います。


(何もわからないままに筆を動かした、最初期のイメージボード)

当初、このゲームには画作りの参考となるゲームがありませんでした。

これは大問題です。

例えるなら、ゲーム会社でプランナーからあがってきた仕様書の中に、他社タイトルのスクリーンショットが1つも貼られていないようなものです。

Bakinは俗にいうHD-2D表現に特化していますが、自分のゲームがそれに向いているのか、また技術的に再現可能なのかというと、それは別のお話……。なので、オクトパストラベラーのような雰囲気を目指したいなと思いつつも、それに引っ張られすぎないようにしようと考えていました。

HD-2D表現

『オクトパストラベラー』などを手掛けたスクウェア・エニックスが開発した、ドット絵と3DCGを融合させたグラフィック表現のこと。

……というわけで、まずはこのゲームの「画作りの正解」を探すことから始めます。

フォロワー以上限定無料

ゲームの進捗や設定資料を見ることができます。

無料

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

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

どこここ|dokococo 2024/08/24 12:22

主人公をデザインする

新作ゲームの主人公を作っていきます。

私の好きな「14歳の女の子」という設定は前作で使ってしまったので、今回はそれよりも年上でいくことにしました。

14歳が好きっていうとあれですね。
変な誤解が生まれそうですね(笑)。

マルタの設定

15~17歳の女の子
身長155~160cmくらい
ガラクタの町で暮らしている
機械いじりが好き
ゴーグルを着けている

初期デザイン

マルタの初期案です。

動き回りやすい服装ということで、レオタードを着用したデザインを考えていました。マルタは地下でジャンク品を漁りながら生活しているようなキャラクターなので、派手にしすぎないように考えていたら、かなり地味な見た目になってしまった例です。

髪型は私が手癖で描いてしまったショートボブに。ゴーグルだけだと頭が寂しいので、耳と尻尾を生やしてシルエットの強調を図っています。

フォロワー以上限定無料

ゲームの進捗や設定資料を見ることができます。

無料

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

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

どこここ|dokococo 2024/08/23 12:15

探索アドベンチャー「マルタと導きの声」

RPG Developer Bakinで作る最初のジャンルは「探索アドベンチャー」にしました。

えっ、RPG Developerなのに、RPGじゃねえの……!?

そう思われた方も多いでしょう。

えー…正直に申し上げますと、現状のBakinで凝ったシステムのRPGを作るのはめちゃくちゃ大変です。

ただ、Bakinは日々進化しているので、きっと数年後には理想のRPG Developerになってくれているはず……!

それまでは、比較的システムが簡単な「探索アドベンチャー」でお茶を濁そうと思った次第です。

タイトル候補

今回作ろうとしている新作ゲームは、地下に住む少女「マルタ」が地上を目指すお話なんですが、シナリオの大筋も決まったので、まずはタイトルを考えていきます。

タイトルを考えること3日間。
実に50を超えるタイトル案が生まれました。

タイトル候補(一部抜粋)

ガラクタ山のマルタ
穴ぐらのマルタ
すすまみれのマルタ
マルタと片道切符
マルタと導きの声

その中から、語呂の良さや活字体の気持ちよさ、ロゴとして映えるかを考えていきます。

今作は「地下」が舞台ということもあり、イメージにあったのは「風の谷のナウシカ」「砂の惑星」「ワンダと巨像」のようなゴツゴツした見た目のデザインでした。

まずは雰囲気をつかむために、フォントのプレビュー機能を使って考えていきます。今回プレビューに使用したのは「ゼルダの伝説 ブレス オブ ザ ワイルド」でも使われていた「FOT-ラグランパンチ Std UB」です。

結果、一番ロゴ映えして物語の意味も成立する「マルタと導きの声」に決定しました。

フォロワー以上限定無料

ゲームの進捗や設定資料を見ることができます。

無料

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

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

どこここ|dokococo 2024/08/22 12:32

夢のゲームエンジン「RPG Developer Bakin」

今から約2年前。
私がまだ、ゲーム会社に勤めていた頃。

スマイルブームより、PC向けの新たなゲームエンジン「RPG Developer Bakin」が発表されました(読み方はバキン)。

わかりやすく言えば3Dゲームが作れるRPGツクールです。

https://www.youtube.com/watch?v=BK86gDFf52U

ただ、当時の私はBakinにあまり期待していませんでした。どうせ「スマイルゲームビルダー」に毛が生えた程度だと思っていたのです。

スマイルゲームビルダー

同社が作ったプログラム不要の3Dゲームエンジン。全てにおいて惜しい。

ところが、調べてみると思ったよりヤバい進化を遂げていたようで……。
私がここまでゲームエンジンにワクワクしたのは「RPGツクール5」以来のことでした。

RPGツクール5

2002年に発売された、シリーズ初のフル3Dを採用した家庭用ツクール。

RPGツクールは2Dに特化したものが多く、3Dゲームを作りたい場合は、UnityやUE5を使わざるを得ないのが通例でしたが、それらにはプログラムや多方面の知識が不可欠です。

私は常々3Dのゲームをツクール感覚で作れるゲームエンジンがあればいいのになあと思っていました。しかし、発売されるツクールは2Dばかり。最後の希望だったUnityで動くツクール「RPG Maker Unite」も2Dであることが判明し、もはや諦めかけていたそのとき「Bakin」はこの世に姿を表したのです。

様々な期待と不安を抱えながら、2022年10月18日アーリーアクセスが開始されると同時に購入したのでした。

そんな当時の私の気持ちが全面に押し出された様子を撮影した動画をYoutubeに公開しているので、よければ見てやってください。

https://www.youtube.com/watch?v=m2rjVqIEJF0

さて、この夢にまで見たゲームエンジンですが、まずはエンジンのパワーを測るべく試験的にゲームを1本作ってみようと思うので、その制作過程を紹介していければいいなと思います。

よければ、お付き合いいただけると幸いです。

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

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

記事のタグから探す

月別アーカイブ

限定特典から探す

記事を検索