🦥
【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);
これはもしかして?
assetManageData.imageSettings[0].path
assetManageData.imageSettings[1].path
assetManageData.imageSettings[2].path
assetManageData.imageSettings[3].path
assetManageData.imageSettings[4].path
ここです。
そうです。
当然ですが、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