忍者ブログ

「の」べや

編集後記とかゲーム作ってたりとかいろいろ。 気まぐれ飽き性なんでもござれ。

   

カーネルサンダースの秘密のレシピ?が見つかっただかなんだか

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

ちょっとサイトを見てたらこんな記事があった。

『カーネルサンダースの秘密のレシピの原稿が明らかになった』的な。
カーネル自身が何を食べ、そして何を作ったのかを書いた原稿げ出てきたそうだ。

ついにあの秘密のスパイスの謎が明らかになったのか!と思って見てたんだけど、、、
載ってたのはパンケーキ、パイ、あとコールスローとオムレツ。

※ KFCのチキンって11種類(12?)の秘密のスパイスから作られているっていうのは有名だけど、それが何を使っているのは未だ秘密にされている。テレビやWebで味を再現しようと検証したりしてるけど、やっぱり本場とは違う味らしい。

スパイスは載ってはいないらしい。残念デシタ。
でもこのレシピが明らかになった事は、マニアにはたまらないらしい。

ケンタッキーのマニアってどんなだろう。

まあ、詳細はヤフーニュースにでも載るだろうからそれを見るといいと思う。
今はまだ載ってないけど、まあマニアックなニュースだから載るかどうかもわからぬ。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題
PR

マップ上のキャラクターはどう描かれている?

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

マップの上にキャラクターを描きたいのだが、歩行グラフィックとか含めると、
「ファイル読む」「インデックスからキャラを取得」「描画」とやっていると時間がかかってしまう。

だもんで、RGSS2ではどうやってるのか見てみた
以下はスクリプトから抜粋。

  #--------------------------------------------------------------------------
  # ● 転送元ビットマップの更新
  #--------------------------------------------------------------------------

  def update_bitmap
      self.bitmap = Cache.character(@character_name)
      self.ox = @cw / 2
      self.oy = @ch
  end

抜粋しすぎw
要は、キャッシュした画像から原点を指定して@cw、@chのサイズをコピーしている、というわけだ。
なるほどねぇ。
アニメーションとかどうしてるかとかは後で調べるとして……。コピー元の原点を動かして言うというのがわかったのでOK牧場。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

$scene を見てみる

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

RPGツクールVX (XPも) のRGSSは $sceneっていうグローバル変数が軸になってプログラムが実行されている。正確にはスクリプトの「Main」の中に書いてある一文、

  $scene.main while $scene != nil

というのがプログラムを実行させていると考えていい。
この一行を簡単に言うと「$sceneというグローバル変数の中がnilじゃない限りその変数に入っているクラスのメソッド " main " をずっと行う」みたいな感じ。
$sceneの中に入るのはシーンクラスのみ。他のクラスをいれてしまうとエラーが起きる。正確には「main」というメソッドを持ったクラスならとりあえずOKっぽい。

じゃあ、そのmainってのは何をやっているのかというと、そこでScene_Baseクラス

じゃん。

  #-----------------------------------------------------------------
  # ● メイン処理
  #-----------------------------------------------------------------

  def main
    start                         # 開始処理
    perform_transition            # トランジション実行
    post_start                    # 開始後処理
    Input.update                  # 入力情報を更新
    loop do
      Graphics.update             # ゲーム画面を更新
      Input.update                # 入力情報を更新
      update                      # フレーム更新
      break if $scene != self     # 画面が切り替わったらループを中断
    end
    Graphics.update
    pre_terminate                 # 終了前処理
    Graphics.freeze               # トランジション準備
    terminate                     # 終了処理
  end

Scene_Baseはシーン関係のスーパークラスとして使われるので再定義や上書きをされていない限りはこの処理が行われると。
で、処理の真ん中あたりにあるloop の中身をずっと繰り返している。$sceneの中身が変わったらbreakとなっているのでシーンが変わらない限りはupdateメソッドが行われているわけだ……。

トランジションは画面切替の効果なので手をつけなくてもいいと思う。
画面がなめらかに切り替わっているのはこのトランジション処理のおかげ。

だからまあ、新しくシーンを作りたい場合はこれらのメソッドに行いたい処理を入れればいいという事。

start             画面切替の前に行っておきたい処理(画像の準備とか)
post_start  画面切替の後に   〃

update       シーンが行われている間にフレーム毎に行いたい処理

pre_terminate  終了の画面切替の前に行いたい処理
terminate          画面切替中に行いたい処理

おのおののメソッド名がInitialize や dispose とは違い start や terminate という名前にしているのは
恐らく混同しないためかと思う。

ちなみに Scene_XXXX.new の時に呼び出される関数はInitializeなのでシーン移動の際に引数を入れたい場合はInitialize関数を入れてそこで引数を使う処理をするといい。

スクリプト例とか作るのは手間なので割愛。リクエストあればやりますが、カウンターまだ1しか回ってないし(笑)。

こうやって紐解いていくと意外とシンプルなのがわかる。
まあ、グラフィック関連についてはまだまだサッパリなんだけどね。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

fill_rect vs blt

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

fill_rectとbltはどっちが速いのか?

昨日久しぶりにノートパソコンでツクール動かした。そしたらなんかめっさ重い。

比較的性能のいいデスクトップだとさくさく進むけど、ノートだとこんなに重くなるとは……。スクリプトを無茶苦茶に書いたのが原因なのはわかるけど……。
ということで少し「速さ」というのにもこだわってみる事にしました。

基本は描画関係。

とりあえず処理を10000回回して速度をはかります。ばらつきがあるので50000回回して5で割ってみました。スクリプトはかなり適当。一応使ったスクリプトを続きのとこに載せておきます。
Timeで時間引っ張ってその差を求めただけです。単位は秒です。

スペルミスあるけどキニシナイ







スペルがアレだがそのあたりは大目に見るのが大人ってものだ。

結果。(20 x 20)

処理 1回目 2回目 3回目
fill_rect 0.0272 0.0202 0.0278
blt 0.06 0.0618 0.0474
gradient_fill_rect 0.0732 0.08 0.0964
draw_text 0.9118 0.9118 0.9252


サイズを変えてもう一回(128 x 128)
draw_textはサイズあまり関係ないので計測せず

処理 1回目 2回目 3回目
fill_rect 0.0792 0.1026 0.0908
blt 0.8102 0.8257 0.8078
gradient_fill_rect 1.8556 1.8674 1.87


つまり、
fill_rect  >  blt  >  gradient_fill_rect
となりました。

何かの参考にでもナレバ

ちなみに使った処理は「続き」から ↓
結構下なの気をつけて orz



 
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

RGSS2 : アイテムの部分

同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite

どちらかと言うと備忘録……
Game_Partyのとこのitem_numberメソッドのところがこうなっている。
#--------------------------------------------------------------------------
# ● アイテムの所持数取得
# item : アイテム
#--------------------------------------------------------------------------
def item_number(item)
case item
when RPG::Item
number = @items[item.id]
when RPG::Weapon
number = @weapons[item.id]
when RPG::Armor
number = @armors[item.id]
end
return number == nil ? 0 : number
end

で、Initializeでこう定義されている
@items = {}
@weapons = {}
@armors = {}
通常の配列ではなく、ハッシュなのだ。
コレガワカラナイ

と思ったら簡単だった。
ただ単にアイテムのIDをキーにしてその配列に「所有数」が入っているだけだったとさ。
で、そのIDから個数を返していた、と。なるほどなるほど。
同人誌、同人ゲーム、同人ソフトのダウンロードショップ - DLsite DMM GAMES 遊び放題

ブログ内検索

お知らせ

動画に使用している「妹さん」の立ち絵はこちらの著作権フリー素材集を使って作っています。


著作権フリー立ちキャラクター素材集vol.8全年齢版


2021/08/05に CeVIO AI さとうささらが発売されました。なんとDLSiteでも買えます。

カレンダー

03 2025/04 05
S M T W T F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30

カテゴリ

プロフィール

HN:
のぎー
性別:
男性

カウンター

Copyright ©  -- 「の」べや --  All Rights Reserved
Design by CriCri / Photo by Geralt / powered by NINJA TOOLS / 忍者ブログ / [PR]