言うほどでもない小技

テストプレイ中にスクリーンショットを撮影したいときは、
以下のスクリプトを走らせればプロジェクトファイルにスクリーンショットが出力されます。
コード:
(function(){
    var now = (function(n){return(`${n.getFullYear()}${`0${n.getMonth()+1}`.slice(-2)}${`0${n.getDate()}`.slice(-2)}${`0${n.getHours()}`.slice(-2)}${`0${n.getMinutes()}`.slice(-2)}${`0${n.getSeconds()}`.slice(-2)}${`00${n.getMilliseconds()}`.slice(-3)}`)})(new Date());
    var fn = `${process.cwd()}\\ss_${now}.png`;
    require('nw.gui').Window.get().capturePage(function(buf){
        require('fs').writeFile(fn,buf,function(e){
            if(e) throw e;
            var mes = `ScreenShot is saved!\n${fn}`
            alert(mes); console.log(mes);
        });
    },{format:'png',datatype:'buffer'});
})();
詳しくは僕のHPの記事に書いてます。
 
最後に編集:

コテツMM

ユーザー
自分結構いろいろプラグインコマンド使うので、
デスクトップ上にプラグインコマンド専用のテキストを作ってそれにコマンドリストをまとめておいて起動して最小化しておき、
プラグインコマンドを使うってなったらすぐ起動中のテキストクリックしてすぐコピーする感じにしてます。
これより早いプラグインコマンドコピー短縮術があったら教えて下さい←

後これ、自分がアホなだけですが、右クリックから編集できるの最近知りました(T-T)
文章間違えたらいちいち書き直して、条件分岐のそれ以外にチェックいれ忘れたらいちいち最初からやり直してた時間はなんだったんだろう:rswt2:
 
頻出するコマンドは漢字変換の辞書に登録しておく、という手を使ったりしてます。
「ん」から始まる単語は基本ないので、「んばる」で「MWP_VALID」に変換したりとか。

ちなみに、編集はスペースキーでもできますね。個人的にはダブルクリックは編集に割り当てて欲しいです。
 

ganges

ユーザー
みなさんこんにちは。
超絶基本ですが、イベントエディター、プラグイン管理、データベースなどの、
別窓を開いて行う編集画面のキーボードショットカットです。

OK=Ctrl + Enter
キャンセル=Esc

このふたつを使うと、編集がとても楽になりますので、是非使ってみてくださーい!

たとえば、文章の表示でテキストを打ち終わったら、Ctrl + Enterを2回おすと、入力テキストを確定して、イベントエディタを閉じることができます。
マウスをOKに移動させてー、が基本不要になるのでいいですよ!
 
昔、サンプルプロジェクトを見ていて知ったやり方ですが、書かせていただきます。
(確か、私が見たのは、ガチャプラグインのサンプルプロジェクトだったかと)

内容としては、

1回だけ実行する処理 → 共通処理

という流れの時に、

スイッチ(またはセルフスイッチ)を使って、2ページに書く事も出来ますが、記述が重複したり、コモンイベントにしたりする事になると思います。
ハロルドA-1.png
ハロルドA-2.png

これを、スイッチ(またはセルフスイッチ)が「OFF」の場合を条件にする事で、1ページで済ませる事が出来ます。
ハロルドB-1.png

という簡単な内容ですが、私は否定での条件分岐を使う事がなかったので、こういうやり方に気付きませんでした。
ありがとう、サンプルプロジェクト。
 
画面に図形を描画して表示するプラグインの雛形。
「1」「2」の部分を書き換えればOK。
2に書く処理はCanvasのリファレンスサイトを参考に。

コード:
/*:ja
* @param DRAW ID
* @desc SceneManager._sceneに関連付けるSprite名
* @default drawer
*/
(() => {

  // 1.プラグインのファイル名をここに書く
  const PLUGIN_NAME = "test";

  // 2.この中に処理内容を書く
  const draw = context => {
    // context.fillText("Hello, World!", 48, 48);
  }

  const drawId = PluginManager.parameters(PLUGIN_NAME)["DRAW ID"];
  const { update } = Game_Screen.prototype;
  Game_Screen.prototype.update = function () {
    update.apply(this);
    main();
  }
  const [width, height] = [SceneManager._screenWidth, SceneManager._screenHeight];
  const main = () => {
    if (!SceneManager._scene[drawId]) {
      SceneManager._scene[drawId] = new Sprite();
      SceneManager._scene[drawId].bitmap = new Bitmap(width, height);
      SceneManager._scene.addChild(SceneManager._scene[drawId]);
    }
    const { bitmap } = SceneManager._scene[drawId];
    const { context } = bitmap;
    bitmap.clear();
    // context.textBaseline = 'top'; // テキストの基準位置を左上にする
    draw(context);
  }
})()
 
最後に編集:

コテツMM

ユーザー
多分皆知っているであろう小技なんでしょうが自分は今知りました。
イベントをエディタ開かずに右クリックしてコピーしたらイベントをまるごとコピーできるんですね。今知りましたというか今見つけました。
「ツクールmv イベントまるごとコピー」とかでいくらググっても出てこなかったですがもっと早くこの小技知りたかったです(T-T)
 
なんか、プラグインやシステム関連の小技が多いので、画像系の初級小技を・・・。

ツクマテでも似たような小技を自分が紹介してますが、槍の簡単なやり方を紹介。
demo1.png
通常だと、こんな感じになりますが、
Weapons1にある槍を数ドットほど下にズラし、槍が見えるようにSVスプライトの腕のいくつかを削除し、拳部分を90度曲げると
demo2.png


こんな感じになります。上よりかは違和感が感じにくくなります。
ただ、問題は素手だと変になる可能性があるので、振り武器や飛び道具のモーションを上書きする必要があります。

画像改変に慣れれば、この下程度の画像のように武器を持ったまま改変できるようになります。
左振りの参考.png 試作振り.png
 
最後に編集:
いまさっき気づいたんですが、変数って数字以外の文字列、その他を入れられるんですね。
スクリプトに好きなデータを書けばいいとゆー。
スクリーンショット 2018-08-17 1.45.40.png

そのあと、[文章の表示]で\V[9]みたいにすれば、入れた文字列とかがメッセージとして出力できる。
…多分、「割と知ってる人は知ってる」ぐらいのTipsだと思いますが。
 
変数に入れた文字列は加算で書き加えることも出来たりする。

例えば、変数を使って所持金の20%やアイテムを手に入れる宝箱を作れる。

アイテムを手に入れたら、変数にアイテム名を入れる。

所持金の20%なら、変数の操作で所持金×2/10を計算させ、最後に文字列として単位を加算する。

表示は、どちらも ¥v[n]を手に入れた で統一できる。

コモンイベントを使って中身が自動で変わる宝箱を作ってる時に思い付いた小技でした。
 
最後に編集:
>変数を使って所持金の20%やアイテムを手に入れる宝箱を作れる。
 すみません、ここで聞いていいのか分からないのですが気になったので質問させていただきます。
 所持金の20%の判定については恐らく
「変数A(Aは何でも良い)に「ゲームデータ:所持金」を代入→その変数を5で除算」でいいと思うのですが、
その場合の計算結果が小数点付になった場合にどうなるのかが気になりました。
(切り捨て?切り上げ?四捨五入?)

「所持金の1割を徴収する門番」とか「戦闘不能後は所持金半分で復活」などにも使えそうな技なので…。
 
エレベーターを動いてるように見せ方なんですけど背景をループすればできます。
まずは建物を中心に据えて作っておいて、予め壁マップを全面に配置して置いてマップ画像を撮っておきます。
そしたら背景ファイルに入れてさっきの建物のマップエディターでさっきの壁マップを背景に選択しておけば
後は上に向かうエレベーターなら下にループ、下に向かうエレベーターなら上にループすれば完了ですね。
 
全ての条件が満たされたときに何らかのイベントを発生させたいとき、条件分岐を入れ子にせず
より単純な方法で、分岐させる方法です。
例えば、地水火風光闇の宝玉を持っているときに魔王城の扉を開けたいとすると

変数・魔王城の扉開放 = 0
条件分岐:地の宝玉を持っている
  変数・魔王城の扉開放を1増やす
条件分岐:終了
条件分岐:水の宝玉を持っている
  変数・魔王城の扉開放を1増やす
条件分岐:終了

これを、闇の宝玉まで繰り返します。そして

条件分岐:闇の宝玉を持っている
  変数・魔王城の扉開放を1増やす
条件分岐:終了
条件分岐:魔王城の扉開放 = 6
  メッセージ:
  宝玉の力で、魔王城の扉が開いた!
魔王城の扉開放 ≠ 6
  メッセージ:
  魔王城の扉は、固く閉ざされている……

条件分岐:終了
変数・魔王城の扉開放 = 0

とすれば、条件分岐を入れ子にせずとも複数の条件が同時に満たされたときの
分岐をシンプルにすることができます。
 

エフ☆

ユーザー
多段攻撃・ランダムn体攻撃で、
攻撃が当たるたびに威力が増す(減る)計算式。

(例:変数1を使っています)
$gameVariables.setValue(1,$gameVariables.value(1)+5); a.atk + v[1]

攻撃が当たるたびにダメージが5ずつ増えます。
スキルのコモンイベントを利用して変数をリセットしないと無限に増え続けます。

格ゲーのコンボ補正みたいなのを再現できます。
 

ぶー太

ゲスト
離れたイベントのグラフィックを消したり登場させたりするときに
じぶんはページを切り替えていましたが
見た目だけ消したいときは
移動ルートで画像をなしに変更したりすればいいことに最近気づきました。
 
全ての条件が満たされたときに何らかのイベントを発生させたいとき、条件分岐を入れ子にせず
より単純な方法で、分岐させる方法です。
例えば、地水火風光闇の宝玉を持っているときに魔王城の扉を開けたいとすると



これを、闇の宝玉まで繰り返します。そして



とすれば、条件分岐を入れ子にせずとも複数の条件が同時に満たされたときの
分岐をシンプルにすることができます。
その方法いいですね!
「どれかn個」という分岐でも使えそうですね。
参考にさせていただきます。
 

wanbee

ユーザー
マップ中にまずひとつ「コマンド取得の為だけの不使用イベント」を作る。
例えばピクチャーの表示とか歩行キャラの定型の動作とか必ず同じ複数のコマンドを使っている場合、コモンイベントにまとめるのも良いがそこまでするほどじゃないって事が細々とある。
そういうのをひとつの不使用イベントにズラズラと一杯詰め込んでマップ中の邪魔にならないところに置いておく。必要なイベントにはここからコピーして貼り付ければ良い。

ちなみにSRPGツクールの場合は「複数のコマンドをコピー・ペースト出来ない」という面倒な仕様だったので「絶対にONにしない捨てスイッチ」をひとつ作った。
そして条件分岐で「捨てスイッチがOFFの時に実行」というツリーを作り、その中に複数のコマンドを入れていく。こうすればこの条件分岐コマンドひとつだけをコピーして他のイベントにペースト出来る。
条件分岐を「単なる複数コマンドをまとめる入れ物」として使う訳 (ノ∀`)
 
トップ