ブログ

RPGツクールのプラグイン作成 入門編

2017/05/17

こんにちわ!yatsureです。




相変わらずプラグインを弄ってまで表現したい事が特にない私ですが
少し弄ってみようかなー、と調べた訳なんですけど

プラグイン入門や、初心者向けのサイトを見ていて思ったんですよ。

「これ、プログラミングを知らない人、全く意味わからないんじゃないか」

そもそもプログラミングを知らない人からしたら、
JSの中身を見ただけで失禁するレベルだと思うんですよ。

例えていうなら、英語がさっぱりなのにハリーポッター原文を見せつけられる感じ。
プログラミングを始めて、アレが「言語」と言われている意味を理解しました。
はっきりいって、読めません_(:3」z)_

なのでここでは、そういったサイトを少しでも解読しやすい様に
プログラミングの基本的概念というか、文法というかをお伝えします。

といっても、見方として知っておいて頂きたいのは、2つしかありません。

1:目的は"値"を操作する事

プログラミングって、なんかごちゃごちゃ書かれてるじゃないですか。
しかも、それが何のために書いてあるのか全くわからないのが
私達のやる気を根こそぎ持っていきます。

実はアレ、何かしらの値を操作するための文章なんですよ。

は、その時によって文字列だったり、数字だったり、画像だったりしますが
例えば数字だったら、キャラのステータスやダメージ計算、
あるいは表示されているウインドウの大きさや色、タイミングを意味しています。

文字列であれば、メニューに表示される項目やテキストなど

画像はキャラやフィールド、メニュー画面の枠とかですね。

そういったものが、ちゃんとX押したらメニューが表示されるとか
クリティカルヒットしたら画面が一瞬真っ白になるエフェクトがかかるとか
そういった細かい動作含めて全て書かれています。

2:どう書かれているのか

文法についてですが、基本的に英語を勉強する様に、
それぞれその単語の意味は常々調べていく形になりますが
そうする為にも、知っておいた方がいい事が2つあります。

var nakajima = "yakyuusiyouze";

もし、varという文字列を見かけたら、これは「変数」というものを作っています。
プログラミングにおいて、変数が何のために存在するのかは、こちらの記事を参考にして頂きたいのですが

例えば、上の文章で例えると
「nakajima」という名前に「yakyuusiyouze」という文字列を収納したことになります。
これ、何のためにこんなことをしているかというと、
今後、プログラムの文章内で「nakajima」と書かれた場合、それは「yakyuusiyouze」という文字の意味になります。
こんな単純な書き方をしてくれていれば、カツオでも理解できると思うのですが
問題なのは、=の先に書いてある文章が大体意味わからない事にあります。

そこで二つ目なのですが

nakajima.length;

こんな感じで、〇〇.〇〇みたいにドットで綴られた文章を見た事ありませんか?
こういった文章を見かけた時、というか大半がこんな文章だと思うのですが
これ、ドットより左側は変数名であることが殆どです。
じゃあ、この右側のlength;は何者だよというお話ですが
まずセミコロンである←これ。
これは文章の終わりを意味するもので、作文を書く時に文の終わりに ←をつけなきゃいけないのと同じ
付けなければいけない記号です。

じゃあいよいよ「length」の部分は何か、というところなんですが
これは「変数から変則的に値を取り出す手法」が書かれています。
「メソッド」と呼ばれていたと思いますが
例えばlengthをつけると、変数nakajima中に入っている文字列の文字数を取り出すことができます。

つまり、今は nakajima と書いたら yakyuusiyouze という意味ですが
nakajima.length と書くことで 13 という意味になる、という事です。

実は、変数に収納できる値はいろんな形があり、結局数字や文字列なのですが、例えば
var harorudo = { name: "ハロルド", level: 1 , work: "neet"}

こんな値もありなのですが、これはどういう事かというと
harorudo.name; と書いた場合 ハロルド という意味になり
harorudo.work; と書いた場合 neet という意味になり、自称勇者という事がバレる、という事になります。

なので、プラグインをいじろうとする際の読み方としては
ドットより左側はどんな情報が収納されたものかを調べ、
ドットより右側はどんな方法で値を取り出すものなのかを調べると
答えにつながると思います。




love()

こんな感じで、お察し()みたいな奴を見かけることがあるかもしれません。
これは「関数」と呼ばれてます。
関数、という単語が出てきた時点で、
何となく私の世界には関係なさそうな雰囲気を醸し出してきますが
コイツ、全く大した事ないやつです。

例えば、カツオ花沢さんと中島くんに、交互に愛を囁きます
何とかしてその愛情表現をプログラミングで表したい・・・!!
そんな貴方にぴったりなのが、この関数です。
実は、関数は元々用意されたものもあります
「自分で作る」事もできます。

まず、パターン名前メッセージ変数を作ります。

var pattern = 0;
var name = ["花子","中島"];
var message = ["世界で一番君が個性的だ","俺のバットを握ってくれよ"];

そして次に
function love() {
name[pattern] + "、" + message[pattern]
};

と書きます。これで準備が整いました。
もしこれを書いた後に

pattern = 0;
love();

と書くと、{}の中身が実行されるので
name[pattern] = name[0] = 花子

message[pattern] = message[0] = 世界で一番君が個性的だ

= 花子、世界で一番君が個性的だ

となるわけです。
これを
pattern = 1;
love();

と書けば、御察しの通り

中島、俺のバットを握ってくれよ

となります。

こんな感じで、関数

決められた計算を行う呪文

です。

スクリプト内で出てくる関数の大半予め用意され定義された計算だと思いますので
それは、〇〇() をコピペしてググれば、その計算内容や意味が出てくると思います。




と、いった感じで、javascriptを読み解くための基礎知識編でしたが、如何でしたでしょうか。
それなりに根気がいる作業になると思いますが、
自分で考えて書いて組んで、思惑通りに動いた時はウルトラエクスタシーを感じれると思います。
私はiphoneアプリをswiftという言語を使って作ってますが、脳汁プッシャーしまくってます。

それでは、よきツクールライフを!!

-ブログ