🦥

【RPGツクール】生成AIの力を使って、RPGMakerUniteで斜め移動を実現しました【CURSOR】

に公開

RPGMakerUniteで斜め移動

話題のAIコードエディタCursorの闇の力を使って
まさかのグリッド移動採用のRPGMakerUniteで
斜め移動のアドオン(プラグイン)を完成させました!!
斜め移動

例の如く、パッチにてご提供いたします。

※パッチの当て方等はこちらをご参照ください。
【RPGツクール】RPGMakerUniteのアドオン(プラグイン)作成入門 初級編

Addon
Addon_DiagonalMove

このパッチをご覧いただけると解ります通り
RPGMakerUniteの大海原にほっぽられて
AIの力なしに実現することはほぼ不可能でした。
生成AIは確実に世界を進化させてます。

※ちなみに筆者は過激派のリモートワーク推進者です。
※生成AIで一緒に社会を進化させましょう。

で、その勢いのまま

斜め移動の画像はこんな感じで設定してくださいね

みたいなことを
したかったのですが

CharacterGraphic.cs
	_down = assetManageData.assetTypeId == (int) AssetCategoryEnum.MOVE_CHARACTER
	            ? LoadCharacterSprite(assetManageData.imageSettings[0].path)
	            : LoadObjectSprite(assetManageData.imageSettings[0].path);
	_left = assetManageData.assetTypeId == (int) AssetCategoryEnum.MOVE_CHARACTER
	            ? LoadCharacterSprite(assetManageData.imageSettings[1].path)
	            : LoadObjectSprite(assetManageData.imageSettings[1].path);
	_right = assetManageData.assetTypeId == (int) AssetCategoryEnum.MOVE_CHARACTER
	            ? LoadCharacterSprite(assetManageData.imageSettings[2].path)
	            : LoadObjectSprite(assetManageData.imageSettings[2].path);
	_up = assetManageData.assetTypeId == (int) AssetCategoryEnum.MOVE_CHARACTER
	            ? LoadCharacterSprite(assetManageData.imageSettings[3].path)
	            : LoadObjectSprite(assetManageData.imageSettings[3].path);
	_damage = assetManageData.assetTypeId == (int) AssetCategoryEnum.MOVE_CHARACTER
	            ? LoadCharacterSprite(assetManageData.imageSettings[4].path)
	            : LoadObjectSprite(assetManageData.imageSettings[4].path);

Cursor

パチえもん

これはもしかして?

assetManageData.imageSettings[0].path
assetManageData.imageSettings[1].path
assetManageData.imageSettings[2].path
assetManageData.imageSettings[3].path
assetManageData.imageSettings[4].path

ここです。
RMUエディタ

そうです。
当然ですが、RMUエディタ側の改造が必要になってきます。
ちなみに、この歩行グラフィックというのはこのようなコマ画像です。

歩行

で、斜め移動のこの画像を作成してポンではなくて
RMUコアスクリプトでは当然このコマ制御のコードがあって
なんやかんやしてる訳です。

CharacterGraphic.cs
	//コマ数入ってくる
	_downIndex = assetManageData.imageSettings[0].animationFrame == 0
	    ? 1
	    : assetManageData.imageSettings[0].animationFrame;
	_leftIndex = assetManageData.imageSettings[1].animationFrame == 0
	    ? 1
	    : assetManageData.imageSettings[1].animationFrame;
	_rightIndex = assetManageData.imageSettings[2].animationFrame == 0
	    ? 1
	    : assetManageData.imageSettings[2].animationFrame;
	_upIndex = assetManageData.imageSettings[3].animationFrame == 0
	    ? 1
	    : assetManageData.imageSettings[3].animationFrame;
	_damageIndex = assetManageData.imageSettings[4].animationFrame == 0
	    ? 1
	    : assetManageData.imageSettings[4].animationFrame;

	// アニメーション速度
	_downSpeed = assetManageData.imageSettings[0].animationSpeed == 0
	    ? 1
	    : assetManageData.imageSettings[0].animationSpeed;
	_leftSpeed = assetManageData.imageSettings[1].animationSpeed == 0
	    ? 1
	    : assetManageData.imageSettings[1].animationSpeed;
	_rightSpeed = assetManageData.imageSettings[2].animationSpeed == 0
	    ? 1
	    : assetManageData.imageSettings[2].animationSpeed;
	_upSpeed = assetManageData.imageSettings[3].animationSpeed == 0
	    ? 1
	    : assetManageData.imageSettings[3].animationSpeed;
	_damageSpeed = assetManageData.imageSettings[4].animationSpeed == 0
	    ? 1
	    : assetManageData.imageSettings[4].animationSpeed;

という訳でして、今回は斜め移動の画像に関しては未対応になりますm(_ _)m

公式が対応してくださいッ!

追伸

ちなみに、半歩移動やドット移動に関してもAIの力で何とかしようとしたのですが

CharacterOnMaps.cs
	var newPos = Vector2.MoveTowards(
	    currentPos,
	    destinationPositionOnWorld,
	    deltaSpeed);

要はこのVector2D移動を0.5あるいは0.1等にすれば良いと思うじゃないですか。
ところがRMUコアスクリプトがガッツリUnityのTilemapで実装してるのでほぼ不可能でした。

いや、技術的には可能ですが、、
技術的には可能です

Discussion