とある理系大学院から新入社員になった配信者ブログ

はじめましてnHMです。元大学院生の社会人です。よろしくお願いします!

【開発メモ】unityでSRPGを作る

どーも!nhmです。

今日の開発日記を自分用に載せています。

 

本日の進捗状況

・Unitを選択するとActionPanelが表示される。

・Action Panel上のMoveボタンを押下すると、移動可能範囲がハイライトされる。

 

問題点

・移動可能範囲がハイライトされた状態で、移動可能範囲を選択しても移動してくれない。

・原因はsecondFlagが立っていないことである。

・つまりMoveボタンが押されたことを認識できれば良い。下記を修正する必要があり。

    #region 移動ボタンのクリック
    public void OnMoveButtonClicked()
    {
        Debug.Log("move");

        // UnitControllerのインスタンスを取得
        UnitController unitController = FindObjectOfType<UnitController>();

        // インスタンスが取得できた場合、SelectUnitメソッドを呼び出す
        if (unitController != null)
        {
            unitController.SelectUnit();
        }
    }

    #endregion

【株】新NISAへの対策

全部株を売却して、その後新たに株を買う時、注意すべきことがある。

それは売却後に株価が高騰し、その後初期で大きく購入してしまうことである。

株はつまるところ安いところで売り、高いところ買えるかが全てである。

その意味で一括売却してその後初期に多めに積立するよりも納得する額で売却し、一定額で少しずつ積立するのが無難だと考える。

 

これが新NISAへ移行する時の最善策と私は考える。

【開発メモ①】by AI chat BING

どーも!nhmです😎

現在開発をどんどん進めております。

 

実は現在開発7日目ぐらいです(取り組んだ日のみ換算)。

 

今日は本当にただのメモを残していきますが

これからはより整理したものを添付するようにしていきます!

 

今はその先駆けという事で!笑

 

まず、開発手法は下記のとおりです。

簡単な仕様書作成→chatgpt4 or BING AI にコードを生成→unityへ実装→分からないコードを解説by chatgpt4 or BING AI

 

 

以下はBING AIによる解説を下手書きしたものです。コードを解説してもらいながら学習しています。

 

「カーソル移動を実装した時のスクリプトです」

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

このコードは、Unityというゲームエンジンで動作するカーソルのスクリプトです。

C#の基本的な構文やクラス、メソッド、プロパティ、フィールドなどについては、前述のチュートリアルで学ぶことができます。

ここでは、コードの主な機能やUnityの特有の要素について解説します。

まず、using UnityEngineという行は、UnityEngineという名前空間を使うことを宣言しています。

UnityEngineは、Unityの基本的な機能やクラスを提供するライブラリです。

次に、public class CursorScript : MonoBehaviourという行は、CursorScriptというクラスを定義しています。

このクラスは、MonoBehaviourというクラスを継承しています。MonoBehaviourは、Unityのスクリプトの基本的なクラスで、ゲームオブジェクトにアタッチすることで、そのゲームオブジェクトに様々な振る舞いを与えることができます。

次に、public GameObject cursorPrefab;という行は、cursorPrefabというフィールドを定義しています。このフィールドは、publicというアクセス修飾子が付いているので、外部からアクセスできます。GameObjectは、Unityのゲームオブジェクトを表すクラスです。 cursorPrefabは、カーソルとして表示するゲームオブジェクトのプレハブ(事前に作成されたゲームオブジェクトのテンプレート)を格納するためのフィールドです。

同様に、private GameObject cursorInstance; public float moveSpeed = 1f; public Vector3 initialPosition = new Vector3(0, 0.3f, 0); public Vector3 targetPosition; public static CursorScript instance; public float lerpSpeed = 5f; public GridManager gridManager;という行は、それぞれカーソルのインスタンス(実際に生成されたゲームオブジェクト)、カーソルの移動速度(単位はユニット)、カーソルの初期位置(ワールド座標系での位置)、カーソルの目標位置(移動先の位置)、CursorScriptクラスのシングルトンインスタンス(同じクラスのオブジェクトが一つしか存在しないことを保証するためのもの)、カーソルの移動時の補間速度(滑らかさを調整するためのもの)、グリッドマネージャー(グリッド状に配置されたマップを管理するためのもの)を定義するフィールドです。

次に、void Awake()というメソッドは、MonoBehaviourが提供する特殊なメソッドです。このメソッドは、このスクリプトがアタッチされたゲームオブジェクトがシーンにロードされた時に一度だけ呼び出されます。 このメソッドでは、instanceフィールドに自分自身を代入し、もしすでにinstanceが存在する場合は自分自身を破棄することで、シングルトンパターンを実現しています。

次に、Startメソッドは、Awakeメソッドの後に一度だけ呼び出されます。このメソッドでは、cursorPrefabをInstantiateというメソッドで複製して、cursorInstanceに代入しています。Instantiateは、プレハブやゲームオブジェクトをコピーするためのメソッドです。また、初期のグリッド位置を(0, 0)として、cursorInstanceの位置をinitialPositionに設定しています。targetPositionもinitialPositionと同じ値に設定しています。

次に、void Update()というメソッドもMonoBehaviourが提供する特殊なメソッドです。このメソッドは、フレームごとに呼び出されます。このメソッドでは、HandleInputというメソッドとMoveCursorというメソッドを呼び出しています。

HandleInputメソッドは、キーボードの入力を受け取って、targetPositionを変更するためのメソッドです。Inputというクラスは、UnityEngineが提供するクラスで、様々な入力デバイスからの入力を取得することができます。このメソッドでは、上下左右の矢印キーが押されたかどうかを判定して、それに応じてtargetPositionにmoveSpeed分だけ移動させます。ただし、targetPositionがグリッドマネージャーのマップの範囲外に出ないように制限しています。

MoveCursorメソッドは、cursorInstanceの位置をtargetPositionに向かって補間するためのメソッドです。Vector3というクラスは、UnityEngineが提供するクラスで、3次元ベクトルを表すことができます。

このクラスには、Lerpという静的メソッドがあります。

Lerpは、2つのベクトル間を指定した比率で線形補間するためのメソッドです。

このメソッドでは、cursorInstanceの位置とtargetPositionの間をTime.deltaTime * lerpSpeedで補間しています。

Timeというクラスは、UnityEngineが提供するクラスで、時間に関する情報を取得することができます。Time.deltaTimeは、前のフレームから現在のフレームまでの時間(秒)を表します。

これにlerpSpeedを掛けることで、カーソルの移動速度を調整できます。

最後に、public Vector3 cursorPositionというプロパティは、カーソルの位置を外部から取得できるようにするためのものです。

プロパティは、フィールドのように値を保持することができますが、getやsetというアクセサーを使って値の取得や設定時に処理を行うことができます。

このプロパティでは、getアクセサーだけを定義しており、targetPositionを返すようにしています。

以上がカーソルのスクリプトのコードの解説です。分かりやすかったでしょうか?

〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜〜

 

 

 

【ゲーム開発】ゲーム開発、始めます!

どーも!nhmです。 転職して2ヶ月経ち、かなり慣れてきたあたりからのgw開始です!!

 

いや〜、最高に嬉しいです。  

今の会社の不満はシンプルに年収ですね。

やはり当分は100万近く低いことを絶えないといけないです。。

 

さて!タイトルにもあるように、私ゲーム開発を本格的に始めようと思います。

 

学習内容やゲームの構成、内容などは逐一公表予定ですがSRPGを作成する予定です。

ただし、物語とかは一旦置いておいて、ターン制の戦闘の実装を目指します。

この機会にがっつり進めるぞ〜!

 

ではでは今日はこの辺で😎

また次回もよろしくお願いします〜!

【転職備忘録1ヶ月】中途入社前に確認すべき重要ポイント!後悔しないために

どーも!nhmです。

今回は、中途入社前に確認しておくべきポイントについてお話ししたいと思います。私自身、入社前にちゃんと確認しなかったことで後悔した経験があります。そんな後悔を繰り返さないためにも、以下のポイントをしっかりとチェックしておきましょう!

給与は大卒、院卒の初任給以上か? 中途入社の場合、給与は前職の給与や経験に応じて決まります。しかし、自分の学歴に見合った給与が提示されているかどうかを確認しましょう。
春闘は反映されるか? 春闘とは、労働組合が賃上げや労働条件の改善を求めて交渉を行う期間のことです。春闘の結果によっては、給与が上がることがあります。入社前に春闘の結果が反映されるかどうかを確認しておくことで、自分の収入に対する期待値が明確になります。
深夜残業や休日対応があるか?あるとしたらどれぐらいあるのか? 働く上で大切なのは、仕事とプライベートのバランスを保つことです。深夜残業や休日対応がある場合、それがどれくらいの頻度で発生するかを確認しましょう。また、残業代がきちんと支払われるかも重要なポイントです。
これらのポイントを事前に確認しておくことで、入社後のトラブルや後悔を避けることができます。転職を考えている皆さん、ぜひ参考にしてくださいね!

それでは、また次回!nhmでした!

【AI】AI技術の驚くべき進化

どーも!nhmです。

 

今AIがヤバいですね。

私は元々大学時代はAIの研究を2年していたのでぼんやり分かるのですが、今の研究は進み過ぎてヤバいです。※語彙力皆無w

 

正直応用情報の勉強なんてする意味あるのか?とおもいつつあります。

はっきり言ってAIの技術に夢中になってます。

 

今回は手短に直近の注目技術を紹介します。

 

1. chatg  AI

①chatgpt4

open AIがやってくれました。

私は早速有料会員になりました。

さらにプラグインシステムも搭載され、今後の伸びはエグいと思われます。

②bard

 Google版のchat AIです。

まだ日本では公開されていないそうですが、感情を持つとか持たないとかまで言われているそうです。

 

2. 画像生成 AI

①Stable Diffusion

これもヤバいです。

簡単に人間を画像で生成できてしまいます。

これを利用したら広告業界、アダルト業界など様々な業界に大改革が起きるでしょう。

②DALL-E

同じようなものになります。

 

画像やchatで稼ぐにはもはや参入障壁が出つつあります。

なので私は別の方法をいま考えています。

まだ構想段階ですが、、笑

 

ではでは!引き続き面白い AIニュースを追い続けます。