Re: キャラチップのファイル名でマップ上でのY軸表示変更
Posted: 2022年1月27日(木) 16:34
なぴぃ様
恐れ入ります。
確認したところshiftYは昨日の変更後のものではなく、気づかず変更を戻してしまっていたデフォルトの上記でした。なので添付した画像はデフォルトで試行したものでした。
新規プロジェクトで他にプラグインはCommunity_BasicとMadeWithMvのみ
あとはrpg_objectsの
rpg_spritesの208行目あたり
上記を変更いたしました。
画像サイズとしては茶色忍者144*144(全体576*432) 紫忍者240*240(全体960*720)のものを使用しました。
ズレ方が二次関数のようになるのはこちらの設定方法のミスかも知れません再度見直してみます。
恐れ入ります。
コード: 全て選択
Game_CharacterBase.prototype.shiftY = function() {
return this.isObjectCharacter() ? 0 : 0; // ←ズレを視認しやすくするため6を0にしています
};
新規プロジェクトで他にプラグインはCommunity_BasicとMadeWithMvのみ
あとはrpg_objectsの
コード: 全て選択
Game_CharacterBase.prototype.setImage = function(characterName, characterIndex) {
this._tileId = 0;
this._characterName = characterName;
this._characterIndex = characterIndex;
this._isObjectCharacter = ImageManager.isObjectCharacter(characterName);
//↓追加分
const match = characterName.match(/\(v(\d{1,4})\)/); //正規表現でマッチしたパターンを配列に格納
if(match){ //マッチした場合は配列が入るのでtrue、マッチしなかった場合はnullが入るのでfalse
this.offsetShiftY = 0 - Number(match[1]); //キャプチャーグループ内の数字の文字列を数値化し0からマイナスした値を格納する。
};
};
コード: 全て選択
Sprite_Character.prototype.setCharacter = function(character) {
this._character = character;
//↓追加分
const y=1+this._character.offsetShiftY/$gameMap.tileHeight();
if(this._character.offsetShiftY){this._anchor._y=y};
};
画像サイズとしては茶色忍者144*144(全体576*432) 紫忍者240*240(全体960*720)のものを使用しました。
ズレ方が二次関数のようになるのはこちらの設定方法のミスかも知れません再度見直してみます。
大変お手数お掛けいたします。ありがとうございます。ただ、サイズを変えてみて気づいたのですがキャラの画像サイズによって_anchorで1変えた時に動く量が変わるようです。
_anchor=1で元の位置。そこから1変更するとキャラクターのサイズ分ずれる仕様のようです。
(v)の数値をタイルのサイズで割っていたのですが、画像サイズで割らないと正しいピクセル数ずれないかもしれません。
しかしこの処理の時点ではキャラクターのサイズが取得できません。
もう一工夫必要かもしれません。
後ほど修正するので少々お待ち頂けないでしょうか。