おみくじParadise!! ホーム おみくじ工房 タイトル
   Quick Index ホーム > おみくじ工房 > 楽々おみくじ2 > カスタマイズ!!


見出しあなた好みのおみくじに!!

このページでは前のページをうけて、より、あなた好みのおみくじにするためのカスタマイズを、「楽々おみくじ2」の各種機能の説明を混ぜながら解説していきます。一番最初の「設定ファイル切り替え機能」以外の機能の設定は全て「設定ファイル」にありますので、見比べながらカスタマイズしてみましょう。用意はいいですか??

見出し設定ファイル切り替え機能

設定ファイル切り替え機能について
おまけ的機能ですが(^^;)、スクリプトファイルの基本設定に複数の設定ファイルを登録して、それを切り替えて使用することができます。カウンターファイルなどの設定は全て設定ファイル内にあるので、カウンターも、共有、別々に使用のどちらも可能になっています。

設定方法
スクリプトファイルをエディタで開けると、基本設定の所に以下の部分があります。
## 設定ファイルのパス(複数設定できます。「起動オプション」switchの項を参照してください)
@deffile = ( "./omidef1.cgi" );
例えば、"omidef_normal.cgi"と"./def/omidef_special.cgi"という二つの設定ファイルがあったとして、それを切り替えて使いたい場合は、@deffile以下を次のように編集します。

@deffile = ( "./omidef_normal.cgi" , "./def/omidef_special.cgi" );

こう設定した上で、実際に使う場合は、switch=0,1,2,... で指定します。上の例で、"./def/omidef_special.cgi"の設定ファイルを利用する場合は、

http://www.foo.ne.jp/~hogehoge/cgi-bin/rakuomi2.cgi?switch=1
このとき、switch=で指定する数字は、実際に書き並べた順序より一つ少ない事に注意してください。つまり、上の例だと"./def/omidef_special.cgi"は二番目に書かれているのに、switchは"1"になっています。なお、一番前の設定ファイルはswitch=0となりますが、この場合はswitch=0は省略することができます(つまり、普通の、http://www.foo.ne.jp/~hogehoge/cgi-bin/rakuomi2.cgiとなります)。

見出しHTMLファイルの書き方

はじめに
おみくじ表示のために使われているHTMLは、設定ファイルの一番下、「おみくじ表示のためのHTMLファイル」の所にあります。このHTMLファイルは、普通のHTMLに、おみくじの各部品を表示するためのタグ(実はPerlの変数です)が埋まっている形になっています。一度この部分と、スクリプトとしておみくじを表示させてから「ソースを表示」させて見比べてみると、どうなっているのかわかりやすいと思います。

ここでは、楽々おみくじ2専用タグを紹介しながら、機能をざっと紹介します。

注)タグは全て半角で"$"と英大文字、そして[n](nは1〜6の数字)から成り立っています。一部小文字などではきちんと動作しないのでご注意下さい。なお、以下の説明での表示サンプルはあくまで例ですので、よろしくお願いします。

タグリファレンス
タグ 説明
$COUNTER このタグが実際のおみくじではカウンター数字に置き換わります。テキストカウンター時は数字、グラフィックカウンター時は <IMG Src="n.gif"><IMG Src...>... のタグの羅列に置き換わります。

<例>
ソース:
<H3 Align="center">あなたのおみくじは第$COUNTER番</H3>

表示:
あなたのおみくじは第135番 
あなたのおみくじは第

上がテキストカウンター、下がグラフィックカウンター時

注)カウンタ画像ファイルは配布していません(ここにサンプルとして用いた画像の使用も許可しません)。
$NUMBER ラッキーナンバー。設定ファイルで指定した最小値、最大値の間の整数から任意に一つ数字が選ばれて表示されます。

<例>
ソース:
あなたのラッキーナンバーは $NUMBER です!!

表示:
あなたのラッキーナンバーは 25 です!!
$MATERIAL設定ファイルで指定した「ラッキーマテリアル(初期設定では色)」の中からランダムに一つ選ばれて表示されます。

<例>
ソース:
あなたのラッキーカラーは $MATERIAL です!!

表示:
あなたのラッキーカラーは 青 です!!
$ZODIAC 気の合う星座。設定ファイルで指定した星座の中から一つランダムに選ばれて表示されます。「気の合う星座」の設定には、「表示確率」と「表示フォーマット」の二つの設定があり、表示確率が50の時は50%の確率で$ZODIACはただの空文字列に置き換わることになります。星座に置き換わるときは実際は星座が「表示フォーマット」に入れられた形が表示されます。

<例>
ソース:
設定ファイル(表示フォーマット)・・・
<FONT Size="4">相性の良い星座:[seiza]</FONT>
HTMLファイル・・・
色々なこと。<BR><CENTER>$ZODIAC<BR>Lucky Number...

表示:
色々なこと。
相性の良い星座:新おうし座(5/14-6/20)
Lucky Number...


または:
色々なこと。

Lucky Number...
$BUTTON ここに、「もう一度引く」ためのボタンが作られます。このボタンは、設定ファイル切り替えの為の情報(前述の「設定ファイル切り替え機能」参照)や後述の「同一運勢軽減(SFBM)」の為の情報などを含んだものが自動的に作られます。できるだけ、もう一度引くためのボタンを作るときはこのタグを使ってください。

<例>
ソース:
設定ファイル(「もう一度引く」ボタンに用いる言葉)・・・
もう一回引く!!
HTMLファイル・・・
Lucky Color $MATERIAL<BR><BR>$BUTTON<BR>

表示:
Lucky Color 青

$SOUGOU_NAME
$SOUGOU_MESSAGE
$SOUGOU_NAME が「総合運」の運勢、$SOUGOU_MESSAGE が 「総合運」の「おみくじメッセージ」です。おみくじメッセージは、設定ファイルでの設定中で運と運勢に合うもの(下の例では「総合運」の「大吉」)から一つがランダムに選ばれます。

<例>
ソース:
あなたの運勢は・・・<BR>
<FONT Size="5"><B>$SOUGOU_NAME</B></FONT>
<BR>$SOUGOU_MESSAGE<BR>


表示:
あなたの運勢は・・・
大吉
今日は一日いい日になりそうです・・・
$FORTUNE_NAMES[n]
$FORTUNE_MESSAGES[n]
こちらはサブ運で、$FORTUNE_NAMES[n] が運勢、$FORTUNE_MESSAGES[n] が 「おみくじメッセージ」です。[n]は[1]〜[6]です([0]は総合運になっています。)。なお、サブ運の名称「恋愛運」「商売運」などは、HTMLに書く形式になっていて、設定ファイルで書かれている名称はあくまで「例」です。

<例>
ソース:
<CENTER>恋愛運<BR>
<FONT Size="4"><B>$FORTUNE_NAMES[2]</B></FONT>
<BR>$FORTUNE_MESSAGES[2]<BR></CENTER>


表示:
恋愛運
中吉
後はあなたの情熱次第でしょう。


注意事項
自分でHTMLファイルを作ったり、変更したりした場合は、必ず表示のされ方をチェックしてみてください。たまにスクリプトが実行できなくなったり、文字が化けたりしますが、これはPerlが日本語の2バイト文字コードをうまく扱えない事があるからです(ただし、UNIX系ではこの問題は発生しないはず)。次のような対策が考えられます。

(1)もっとも効果的な対策は、ファイル全体をアップロードするときに"Shift-JIS"ではなく"EUC"でアップロードすることです。アップロードする前に"EUC"変換することもできます。EUCはUNIX系のOSで普通使われる文字コード形態です。

(2)文字化け箇所がわかっているときは、化ける文字の前後に半角の"\"を入れます。例えば、ソースで「表示」としても「侮ヲ」になってしまいます。このときはソースを「表\示\」のようにすれば、きちんと「表示」になります。(Perlでは"\"は「直後の文字をそのまま表示する」と言う命令です。半角の"\"を表示させたいときは"\\"と二つ重ねて下さい)。

この対策は後述の「おみくじメッセージ」についても言えますので、覚えておいてください。

見出しカウンターの設置

カウンターの種類
前ページで最初からカウンターをつけた人、そうでない人に関わらず、カウンターを設置することができます。カウンター設置についてのポイントは次の二つです。

○ロックファイル(排他制御)の使用の有無
カウンターファイルが、多くの利用者から同時にアクセスされると、カウンターファイルがリセットされることがあります。これを防ぐのが排他処理で、楽々おみくじ2では、「とほほのWWW入門」でとほほさんが使っておられるタイプの排他制御を搭載しています。ロックファイルを使うと、リセットされる確率はかなり減ります。ただ、カウンターファイルに同時にアクセスができなくなるので、利用者の多いサイトでは、「おみくじが混雑しています」と言うメッセージが多発しておみくじがなかなか引けなくなる原因にもなります。

○テキストカウンタか、グラフィックカウンタか
楽々おみくじ2では、テキスト、グラフィック両方のカウンタが可能です。グラフィックカウンタは、おみくじのHTML中に

124 → <IMG Src="1.gif"><IMG Src="2.gif"><IMG Src="4.gif">

のように埋め込むだけなので、どのようなカウンター画像も使うことができます(フォーマットも何でも可)。ただし、こちらではカウンター画像は配布しませんので、自分で画像を取ってきて使ってください。代表的なカウンター画像紹介サイトを以下に挙げます。

  • Digit Mania:英語サイト。とにかく数が多い(現在アクセスできないようです。情報求む)
  • digit ARCADIA (デジタルカディア):日本語サイトなのでわかりやすいかも。
  • なまらファクトリー:日本語サイト。かわいい画像が多くあります。と言っても女の子向けというわけではないよ。

設定項目1(基本の設定)
まず、設定ファイルの「基本の設定」で、「カウンター利用の有無」で$counter=1にしてください。ここが0だと以下の設定に関わらずカウンターは一切動作しません。

次にその下にある「カウンターファイル」のパスを必要な場合は変更してください(相対パスです)。

設定項目2(高度な設定)
「高度な設定」の一番上にある各項目を設定ファイルの説明に従って設定していってください。ここでは画像カウンター(グラフィックカウンター)についてと、「画像カウンター時の画像ファイルの保存先」と、「画像カウンターのファイルフォーマット」についてのみ解説します。

グラフィックカウンターにするときは、ファイル名を"5.gif","3.PNG","4,jpeg"のように、"[0〜9までの数字].[ファイルフォーマット]"にしておいてください。ふつう、上で紹介したようなサイトだとこうなっているはずです。

で、合わせて10個の画像ファイルを「画像カウンター時の画像ファイルの保存先」に指定するところに入れてください。なお、プロバイダがCGIの利用できるフォルダを限っている場合、CGIを実行するフォルダに画像ファイルをおいても表示できないことがあります。この時はその他のフォルダに置いて、「画像カウンター時の画像ファイルの保存先」には、フォルダの絶対パスを指定するようにしてください。

例:$c_dfolder= "http://www.foo.ne.jp/~hogehoge/img/";

「画像カウンターのファイルフォーマット」は、"5.gif"なら"gif","3.PNG"なら"PNG"のように設定してください。ほとんどの場合は"gif"ないし"GIF"だろうと思うのですが、最近はPNG形式の画像なども少しずつ出てきています。なお、表示できる画像形式はブラウザのバージョンに依存します。従って"PNG"では、IE,NN 3.x以前では表示ができません。

設置上の注意
「設定ファイル」で設定したところにカウンターファイル、画像ファイル、をおいてください(ロックファイルは要りません)。Permissionについての注意ですが、カウンターファイルは 777 or 707、ロック機構を使うときは、ロックファイルを置くフォルダを 777 or 707 にしておいてください(こうしないとロックファイルを作ることができないため、エラーになります)。

見出し運勢をコントロールする

同一運勢低減機能(SFBM)
楽々おみくじ2では、続けて何度も引いた時に、同じ運勢ばかり続けてでないように、「同一運勢低減機能」を搭載しています。これはあくまで「低減」であって、同じ運勢が二度つづくようなことはあり得ます、が、三度以上つづくことは滅多にありません。この機能のOn-Offは、「設定ファイル−高度な設定」の「同一運勢低減機能」のところで変更できます。その際に「完全にオフ」「総合運のみオン」「サブ運もオン」の三種類が選べるのですが、これは、すぐしたに述べる「総合運のサブ運に対する影響」と関連してきます。

総合運のサブ運に対する影響
これは、例えば総合運が「大吉」だと、サブ運も「大吉」になりやすいようにする、という機能です。あくまで総合運と同じ運勢になる割合を高めるものなので、全てのサブ運が常に総合運と同じになるわけではありません。

上記二機能の関係について
「総合運のサブ運に対する影響」は、「同一運勢低減機能」が「サブ運もオン」の時は働かないようになっています。これは二つの機能の原理的なもので、二つをサブ運で同時に働かせるわけにはいかない為です。従って「総合運のサブ運に対する影響」を使いたいときは「同一運勢低減機能」は「オフ」ないし「総合運のみオン」にしておいてください。

また、同一運勢低減機能を使う場合は、上記タグリファレンスで有った、「もう一度引く」ボタンは必ず設置しておいてください。ブラウザのリロードボタンで更新した場合はこの機能は機能しません。また、「もう一度引く」ボタン以外からスクリプトが呼び出されたときもこの機能は働きません。

見出しサブ運の表示の仕方とラッキーナンバー・マテリアル

サブ運の表示の仕方
占い雑誌などだと「大吉」「中吉」などではなく、運勢の良さを「★★☆☆☆」のように表しているものがありますよね。「高度な設定」に有る「サブ運の表示の仕方」は、$FORTUNE_NAMES[n]で表示する運勢を「大吉」「中吉」にするか、「★★☆☆☆」にするか、どちらかを選べます。お好きな方をどうぞ。

ラッキーナンバー・マテリアル
これは「設定ファイル」にある通りです。楽々おみくじ1を設置したことのある方は、「あれラッキーカラーでないの??」と思われるかもしれませんが、要は別に何でもいいですよ、という意味にしたかったに過ぎません。例えばこんなのでも可能です。

$l_material= 'ヒョウ柄のバッグ,真珠のネックレス,彼女の写真,トカゲのしっぽ';

ここはあなたのアイデア勝負です。みんながあっと言うものを入れてみましょう。

見出し気の合う星座

気の合う星座
ラッキーナンバーなどとほぼ同じですが、これは設定された(設定ファイル−高度な設定)星座から一つ選ばれるだけでなく、その時によって表示させたり、されなくしたりする「表示確率」が設定できます。更に、これに伴ってこの部分の表示用HTMLのみここで別設定するようになっています。

設定の仕方
表示は、

「気の合う星座」から一つ星座が選ばれる → 「気の合う星座の表示確率」に従って星座を表示するか否か決定 → 表示する場合は、「気の合う星座表示フォーマット」の"[seiza]"を選んだ星座の名前で置き換える → $ZODIACの置かれたところに置き換えた「気の合う星座表示フォーマット」を表示

という流れで行われます。もし、表示確率により表示されないことになると$ZODIACは空になり、何も表示されません。この流れに合うように各項目を設定してください。

表示確率について
表示確率は一応%で0〜100で指定します。100だと常時表示になります。乱数を使った適当なものなので、精度はあまり良くありません。従って小数や55などの数字にしてもあまり意味はありません。ので、だいたい10%刻みで、自分の考える確率より10大きい数字を指定するのがよいと思います。

見出しおみくじメッセージを変えよう!!

おみくじメッセージについて
いよいよ、これが最後にして核心の部分です。がんばっていきましょう!!で、「設定ファイル」の「おみくじメッセージ」の部分の設定について話をします。ここは「メッセージ」だけではなくて、運勢の名前、それが出る確率などをきめる、おみくじの本質部分の設定になっています。おみくじをおもしろくするのもつまらなくするのも、ここの設定次第と言っても過言ではないでしょう。

メッセージの構造
では、とりあえずデフォルトの設定ファイルから例を取って仕組みを解説していきましょう。

$sougou = <<"End_Of_Message";
*,大吉,1
今日は一日いい日になりそうです。<--COL-->色のかばんは、更にいい運をつれてきそう。
おめでとう、大吉です。充実した一日をお送り下さい。ラッキーナンバーは <--NUM--> ですよ!
*,中吉,3
そこそこですよね。もし今日が<--NUM-->日なら、ちょっと注意。気をつけてね。
良くもなく、悪くもなく、平凡な一日です。軽はずみは禁物。落ち着いて行動を。
<--COL-->色の色鉛筆をそっと体に忍ばせてみましょう。思わぬ拾いものがあるかも。
あなたの努力次第で良くも悪くもなる運勢です。全力で走ってみましょう。
*,小吉,2
今日は運が味方してくれる日ではないようです。自分の実力で行くっきゃない!!
財布に<--NUM-->円を五円と一円で入れておきましょう。ツキが呼び込めるはず。
*,末吉,1
アフター5が勝負!!それまではじっと我慢。でも、深夜まで遊んでいるのはNG
朝、昼は充電期間と割り切りましょう。夕方以降いいことあるなら大丈夫でしょ?
特に朝は気をつけましょう。あせると更に失敗を生むので要注意。落ち着いて、マイペースで。
*,,1
今日は一日いいことなさそうです。<--COL-->色のハンカチを忍ばせて凶運を追い出そう!
悪いことはつづくものですが、その後にはいいことがありますよ。気にしすぎが一番の毒
End_Of_Message

上の例は、総合運の場合です。説明の都合上、色を付けたり斜体にしたりしています。まずは、紫色の斜体になっている上下二行を見てください。この上下に行の間にメッセージその他を入れます。各運によって上の一行は少しずつ異なりますが、これらは変更しないでください

次にその間にある三色に塗られた行をご覧ください。"*"で始まり、半角の","で区切られて3つの部分に分かれています。これを「コマンド行」と呼びます。おみくじメッセージは、コマンド行から次のコマンド行の手前までで一区切りになっています。つまり上の例では、

*,大吉,1
今日は一日いい日になりそうです。<--COL-->色のかばんは、更にいい運をつれてきそう。
おめでとう、大吉です。充実した一日をお送り下さい。ラッキーナンバーは <--NUM--> ですよ!

で、一区切りになっています。この場合は、このセクションで「総合運」「大吉」のおみくじメッセージ、確率などを設定していることになります。

いま無造作に「大吉」と書きましたが、コマンド行で"*,"の次の部分、緑色で書かれた部分で「運勢の名前」を定義しています。

一番最後の部分、半角数字で赤色になっているところでおみくじの出る確率を定義しています。

メッセージ行はコマンド行のすぐ次の行から始まり、一行で一単位です。空行を入れないでください。

コマンド行について
コマンド行は、必ず"*,[運勢の名前],[運勢の出る確率]"という書式を守ってください(もちろん","は半角で)。でないと、正しく表示できなくなります。

なお、コマンド行はいくつでも設定することができます。デフォルトでは5つ(つまり、運勢は5つ)ですが、一つ以上でさえ有れば、いくらでも変更できます。つまり運勢の数には制限がないということです。

運勢の名前について
「サブ運の表示の仕方」で「星の数」に設定すると、サブ運ではここに設定した名前は意味が無くなります。ただ、その場合でも何らかの名前は必ず入れておいてください(コマンド行のフォーマット上の都合のため)。

あと、なるべく、運勢は上から下に悪くなるように設定しておいてください。でないと、「星の数」とメッセージがちゃらんぽらんになる原因になります(故意にそういう効果をねらうのなら、それでいいですが(^^;))。

なお、コマンド行のフォーマットさえ守れば(途中で改行を入れたりしなければ)、どんな長い運勢の名前でも全然構いません。

運勢の確率について
これは、単純に「比」である、と考えてください。つまり、

*,大吉,1
*,中吉,3
*,小吉,2
*,末吉,1
*,,1

で、あれば、運勢の出る比率は、大吉中吉小吉末吉です。この比は小数でも、もっと大きな数でも、例えば、5:3.6:50:2.34などでも全然構いません。

この比率の決め方がおみくじのおもしろさを大きく左右することになります。なんで、いくつか決めるためのコツなどを。

比率のもっとも大きいものを、心持ち小さめに
Perlの乱数は結構散らばりが悪いんです(とくにVer4はひどい)。だから全体の4割くらいと思えば3割5分といったように、心持ち抑えた方がいい感じになります。

突出して大きな比率はさける
僕の経験だと、最大の比率は各運勢の比率の総和の50%よりも小さくすると、いい結果が得られるように思います。特に、同一運勢低減機能を使っている場合は、突出して高い比率があると、効きが悪くなります。

小さい比率は意外と「出る」。
突出して小さな比率はオーケーです。「大大吉」の比率を例えば0.1にするなどは、全く出ないかというと、そうでもないので安心してやってみましょう。

「総合運のサブ運への影響」を使ってらっしゃる方へ
「総合運のサブ運への影響」をオンにしているときは、「総合運」「サブ運」の運勢の名前を同じにしておきましょう。でないと、機能がうまく働きません。比率も基本的には同じか、にたものにしておいたほうがいいです。しかし実はこの機能には裏がありまして(^^;)、わかる人はスクリプトを読んでみましょう。結構おもしろいことができるはずです。とりあえずここでは、その答えは内緒です(^^;)。

おみくじメッセージ
おみくじメッセージは行単位です。前の例(ちょっと上の方になりますが)だと、「大吉」には二つのメッセージ(三行みたいに見えますが、これは折り返されているだけで、改行は入っていません)があって、おみくじが引かれるときにはこのどちらかがランダムに選ばれます。空行は入れないでください。空行が出力されてしまいます。複数行にまたがるおみくじメッセージを作りたいときは<BR>を入れることで複数行にできます。その時も改行は入れないでください。二つのメッセージと判断されてしまいます。

おみくじメッセージは各運勢に一つ(一行)以上であればいくつでも入れることができます。運勢ごとに数が異なっていても構いません。0個(0行)はやめてね・・・と(想定してないんで、どういう結果になるかは予想しかねます)。

総合運のメッセージの例に、以下のように<--COL-->,<--NUM-->というのがありますが・・・。

今日は一日いい日になりそうです。<--COL-->色のかばんは、更にいい運をつれてきそう。

<--COL-->は前述の「ラッキーマテリアル」で、<--NUM-->は「ラッキーナンバー」で置き換えられるようになっています。だからうえの例だと、

今日は一日いい日になりそうです。色のかばんは、更にいい運をつれてきそう。

と言うふうに置き換えられることになります。ただし、この機能は「総合運」のおみくじメッセージにしか働きません。あと、おみくじメッセージに$NUMBER,$MATERIALで、ラッキーナンバー・マテリアルを埋め込むことはできません。ご注意下さい。



  最後に、設定ファイルを改造して再配布してみようと言う方のためのガイドラインを載せています。考えておられる方は是非目を通しておいて下さい。

 →「設定ファイルを配布しよう!!


[このページの先頭に戻る]

水平線
Copyright (c) 2000-2001 うんにゃ