1.3.2(要modloader)仕事とは関係無いのですけど、悪友に薦められてマイクラ時々やってます。彼が大量に火薬が欲しいと言うことで作りました。このくらいならネットで調べれば簡単に作れるはずなんですけど......たいしたMODでも無いので、ガラクタ置き場においておきます。金......金ブロック金ブロックは、作ってくれる見えない妖精さんへの手数料と言う事で。金塊9個で1ブロックなのでコスト的に少し高めです。いえ、レアではあってもあまり使い道の無い金の消費には丁度良いかも知れません。注意はレッドストーン鉱石です。鉱石の方なので、シルクタッチのつるはしが必要です。......レッドストーンで、鉱石に戻す事が出来るようにしてます。当然ですが鉱石を割れば2~3個程度しかRSを入手出来ませんので、作成するよりつるはしで掘った方がコストパフォーマンスは高いです。......土(※芝ブロックは不可)水......水バケツ(作成後バケツはインベントリへ)こちらはコストこそタダ同然ですが、地味ーーにスタック不可な水が面倒臭いレシピです。火薬も粘度も一応バランスクラッシャーにならないようには調整したつもりなのですが、火薬64個は流石に大過ぎるかなとも思ってます。今回はちょっと脱線して、某所に少し書き込みがありましたのでperlの正規表現のお話です。perlなんか関係ないだろと思われる方もいらっしゃると思いますが、正規表現はPOSIXに準拠しておりperlもTJSもほぼ一緒です。これを覚えてると、ライター兼スクリプターとしては検索や置換が劇的に効率良くなります。前置きはこのくらいにして、今回問題はこれです。hex($1))/eg;html側からformで送られて来たデータをデコードする部分です。これはcgiを作ろうとするとまず最初に躓くところですね。私もこれを完全に理解するのに2日かかりました。理解するとどうと言う事も無い事なのですが。テストだよこれをformで受け渡しすると・・・・・%82%B1%82%EA%82%CD+%83e%83X%83g%82%BE%82%E6こう言う文字列になります。この法則は以下の通りです。半角英数文字『*-.@_』はそのまま表記。半角スペースは『+』に変換される。半角表示のその他の記号は『%+2桁の16進1バイト』で表現される。全角文字は『%+2桁の16進の2バイト』で表現される。あと全角カタカナひらがなの一部に、2バイト目にアルファベットを使うと言う特殊なルールがあります。(今回の例では『テスト』)これに関しては、なぜそうなのかは”2バイト文字”等を検索してください。JISの場合にはまた少し違ったルールがあったりしますが、日本の場合SHIFT-JISかUTF-8が多いのであまり気にしなくても良いと思います。/;は問題無く理解出来るかと思います。文字+をまず半角スペースにデコードしています。問題は次の行かと思いますが、これは動きを順番に追って行くと理解しやすいかと思います。以下の式を観てください。83e83X83g82BE82E6となります。これは単純に結果だけを見ると%を取り除いた処理......と見えますが、実はここを理解出来ればほぼ8割理解したも同然です。この書式は%の文字の後にアルファベットの大文字か小文字のA~F・もしくは数字一桁が2回連続して現れたらその3桁のうち先頭の%を取り除いて、その条件にあてはまらなかったものはそのままで文字列を組み直せと言う命令です。処理されたのは赤い部分です。s/%//g;で済みます。最後のgは、マッチしても(条件を満たした部分を見つけても)文字列の最後まで何度でも繰り返し処理を行えと言う命令です。$1と言うのは、s/~/に挟まれた部分にマッチした部分の文字列(ただしこの場合は%は()の外にあるので()の中のマッチしたアルファベット・数字の部分だけの文字列)を指し示す変数(代名詞)です。マッチしなかった部分は$1には代入されません。この表現式では処理外として、そのままただ文字列の並び通りにくっつけられます。(←こことても重要)eとかXとかgとかがそのまま何事もなかったかのようにくっついてるのが見て取れます。ここまで理解出来れば、もうほぼ分かったも同然です。次に第二段階の数式です。s/%([a-fA-F0-9][a-fA-F0-9])/hex($1)/eg;hex()と言うのは、中の数字を10進数にする関数です。出力された結果は以下のものに変化します。131e131X131g130190130230先頭の%82%B1を見ると130177と変換されてるのがわかると思います。/eは、変換側を数式と解釈すると言う意味です。意味が分からなければeを外して見ると一目瞭然です。hex($1))/eg;ここまで来れば簡単と思います。$1の2桁の16進数表記の文字列としてマッチした部分を次々と1バイトコードに書き換えてます。テストだよ』と表示されます。重要なのは、%82%B1....と言う文字列を見つけたら、まず82B1....と言う処理をしてから次に130177....に変換してるのでは無いと言う事です。%82を見つけたら、%82>82>130>130に対応する1バイトコードに変換して次に%B1を......と1回のマッチ毎にデコード処理をして次に進んでると言う事です。当たり前の事を言ってるようですが、ここを理解してないと初心者はハマります。「正規表現はパズルを組むようなもの」と言う人もいますがまさにその通りで、時にこれ以外には表現式はあり得ないと言うものが存在します。この文字のデコード用の式もそうで、これをわかりやすくしようといくつかの式に分解しようとするとする恐ろしくハマります。どのサイトでもこの表現式しか書かれてないのですが、perlにとっては正規表現に関する部分が最も奥が深く難解で、それを最も端的に表す美しい式がこの式で、同時に初心者に最初に鉄壁の壁として立ち塞がるのがこの式だったりします。私もそれ程正規表現は詳しい方ではありませんが、経験則ではこれを理解したおかげで一気にperlを理解出来たような気がします。この表現式を目当てに来られた方は、頑張って読み解いてください。今回はゲーム中の演出のお話です。ここ最近で一番自分にプラスになった出来事は、某社様に朝でも夜中でも自由に出入りさせて頂いた事でした。週に何度も、仕事が終わるととりあえず打ち合わせ等も兼ねてお伺いして、そこの社長様とご迷惑とわかりつつ数時間色々なお話をさせて頂いておりました。そこで良く演出のお話もさせて頂いてのですが、「意味の無い演出はダメだよね」と言うお話をよくさせて頂いてました。これはどう言う事かと言いますと、これは私の個人的な見解なのですが。最近はマシンスペックが上がり映画的な演出が出来るようになった事に加え、ゲームのネタとしては出尽くしてしまっているので、残るは演出で差別化していくくらいしか差別化は難しいだろうと言うのは確かにそうなんだろうと思います。確かに同じソフトを作るなら、演出が入ってないより入ってる方が見栄えは良いと思います。それを自社の技術力を見せるためだけの力業で無意味な演出をしても、それはただのオナニーでしか無い。言えば、エロシーンで変なゴテゴテした演出入れても萎えるだけ。紙芝居にした方がユーザーは喜ぶ......と言う事です。私から見て、「これどうやって動かしてんだろ。すごいな」と思うものは最近結構あります。それが=ゲームのおもしろさに直結してるのか?と考えるとかなり疑問符なものも結構あります。掴みとして演出を入れる。時間経過をユーザーに知覚させるために演出を入れる。このイベントで大きく物語りが動くからその予兆として演出を入れる。”話として”クライマックスだから演出を入れる。......このくらいで良いような気がします。演出と言うのは、知覚的にどうしても動的なものになりまうので頻繁にそう言うものが入ってるとウザくてしょうがありません。別の会社の社長様でしたが「立ち絵が動くと視点が変わるのがウザイから、表情だけでポーズを変える事はしたくない」とおっしゃられる方もいらっしゃいました。これは極端な例かも知れませんが、確かにチャカチャカキャラが動くとシナリオに集中出来ないと言うのも事実です。シナリオが避ければ演出はいらない。絵もいらないとはエロゲ屋としては言ってはならない事かも知れませんが、そうおっしゃられる方すら結構この業界いらっしゃいます。演出家としては、自戒として出来るだけ『演出を入れない演出』を心がけないといけませんね。0このページのトップへようやく色々な仕事が一段落しました。更新出来ない間に、エンジンを二つ覚えたり、シナリオやったり、ぶっ倒れたりと去年は波瀾万丈な一年でした。うまく行ったお仕事もあれば、ご迷惑をおかけした仕事もあったりと、結局年間通したらプラマイゼロだったかなと言う感じですが、スキルだけはもりもりレベルアップしてます。ブログの方は、ちょっとまだ体調も良くないのですが仕事も一段落したのでまた次の次のお仕事を模索しつつのんびり更新して行こうかと思ってます。外注でライター&スクリプターをやってて一番大変なのは、色々なエンジンのコマンドタグややれる事やれない事がごちゃごちゃになってしまって、いざその時になって初めて「あっ、このエンジンじゃこれ出来ないんだっけ」と思う事が結構あります。エフェクトやレイヤー周りはそう言う事が多く、そのあたりが特にエンジンそれぞれにクセが強く表れやすいところで、結構致命的になったりしやすい部分です。私は一度覚えたエンジンも、次のエンジンを覚えたらとりあえず忘れるようにしてます。忘れると言っても、数ヶ月苦労して覚えたエンジンはそうそう簡単には忘れませんので、記憶の奥底に地層みたいに圧縮されて残しておいて、いざ必要になったらまたエンジンのリファレンスを数日掛けて読み直して思い出す......と言う感じで作業してます。しないと、似たようなコマンドだと結構気をつけてても間違った名前を書いたりします。メッセージ枠の文字列をクリアする命令で、/clsとか/clearとか/cとか先頭文字(呼び方があったと思うけど思い出せない)も\cとか^cとか$cとか、吉里吉里みたいに複数の言語を同時に使うタイプのエンジンだとそう言うミスが結構多くなってしまいます。基本のタグだと思ってもエンジンによって微妙に違ったり、ほんの些細な事ですけどそれがバグの元なので結構気を遣ってしまいます。ゲームのバグのほとんどはスクリプトを組む人間の責任になるので、時間が無い中でこう言う勘違いが起きると致命的だったりもします。0このページのトップへ最近忙しくて更新出来ずに申し訳ありません最近バタバタ忙しくて更新出来ずに申し訳ありません。お仕事があるのは良い事なのですが、気がついたら一月以上更新してなかったですね。一応ネタはいくつかあるのですが、動画作ってるヒマが無くてうーむと唸ってます。勉強させて頂いてる中で、結構良い演出とかあるんですよね。それをなんとか木里木里で再現してみようとか考えたりはしてます。あと三角関数の話とかも補足しておかないと、知り合いになんであんな動きになるんだと突っ込まれましたのでそれも後ほど。映画も書きたいネタがたくさんあります。いえば金曜ロードショーでジブリ特集やってましたね。今観ても「海がきこえる」の物語の完成度の高さには唸ります。海がきこえるは日テレ開局40周年記念作品で、CMのたびに同じジブリ制作の「そらいろのたね」が放映されてとても雰囲気が良く今でもはっきりと覚えてます。ところでこの夏は節電とか。九州は今年は暑いっぽいのですけど、なんとかして欲しいなと思う今日この頃。(低コストで安全な代替エネルギーないからしょうがないじゃん派)なので、とっとと原子力稼働させてくださいと思うばかり。いえばどこかで面白い記事を見かけました。なんでも原子力反対してる人と民主党に投票した人・支持した企業団体が日本が原子力に依存してた分節電すれば残りの人たちは少なくともこの夏は従来通り過ごせるとか。ゲーム屋は電力なかったら仕事になりませんので、是非そうしてほしいものです。0このページのトップへperspective.dll2つ前のモーフィングで少しお話しをしましたが、そもそもperspective.dllの使い方がわからん!と知り合いに突っ込まれましたので、最低限の書式についてです。ちなみにパースペクティブって何?って人はググって下さい。ぶっちゃけこれ単体ではほとんど使い道ありません。言う使い方ありそうって言うのがありましたらお教え下さい。何かと組み合わせて始めて劇的な効果を現すタイプのものなので、無くてもそんなに困る事は無いでしょう。1.吉里吉里以外では”perspective.dll”が必要です。吉里吉里関連サイトのどっかにあります。不用意にURLを貼れませんので探してください。