?!?!

P.D.S.のちらしのうら的な物

記事表示

マビノギのキャラ名の色

ネット放浪してたらJavaScriptで書かれたシミュレータがあり
そこから計算式を抽出できたのでFlashで組み直してみます・・・・
(精霊点滅シミュをswfごとパクられていたのでパクり返し。たぶんあのシミュもどっかからパクってきたんだろうなぁ)

というわけで完成。

ギルド名とキャラ名を入れると
入力されてる文字列から文字色を算出します
タイトルは名前の前に付けて実際の表示に近づけるためのもので
色の算出には使ってません
ギルド名とキャラ名の右側に出ているのがカラーコードです
選択出来ますので使いたい場合はコピペしてください

文字数制限やら使用可能文字のルールやらは
組み込むのがメンドクサイので無視してます
実際に命名出来なくても泣かないでください

画面効果のせいか
カラーコードが微妙にずれてしまってる時があるようです
見た目では判らないレベルだと思います

まじめに検証してないのでおかしかったら知らせてください

------------------------------------------------

名前の色の求め方

var strCName:String = TI_CName.text;
var colorR_C:Number = 0 , colorG_C:Number = 0 , colorB_C:Number = 0;
for ( var i:Number = 0 ; i<(Math.ceil(strCName.length/3)*3) ; i=i+3 ){
	if(strCName.charAt(i) != "" ){colorR_C = colorR_C + strCName.charCodeAt(i);}
	if(strCName.charAt(i+1) != "" ){colorG_C = colorG_C + strCName.charCodeAt(i+1);}
	if(strCName.charAt(i+2) != "" ){colorB_C = colorB_C + strCName.charCodeAt(i+2);}
}
colorR_C = colorR_C * 101 % 97 + 159;
colorG_C = colorG_C * 101 % 97 + 159;
colorB_C = colorB_C * 101 % 97 + 159;
var color_C:Number = colorR_C*0x010000 + colorG_C*0x000100 + colorB_C;

ActionScriptで書かれてもわからんって?
それじゃぁ日本語で書くと・・・・

文字を一文字ずつにバラして
それぞれのUTF-8文字コードを求め
1文字目をRed
2文字目をGreen
3文字目をBlue
(4文字目以降RGBの繰り返し)
に足していきます
最後にRed・Green・Blueそれぞれを
101倍して97で割った余りの値に159を足し
RGBを合わせた色が名前の色になります

RGBそれぞれ159~255の値になるため
真っ青などの原色になることはありません
試していませんが真っ白ならば「FGH321」など
うまいこと合わせてやれば可能だと思います

どっかで
・4倍して97で割った余りに159を足している(上の式とやってることは同じ)
・Greenが微妙にずれる時がある
というのを見かけましたが
ブックマークするのを忘れてしまいソースが判りません
(Greenの相違は開発ツールかDirect3Dの仕様のような気がします)

ペット召喚時の色は
Rurikaの サータルス
のように
キャラ名+の+半角スペース+ペット名
と入力してやればOKです

敵の名前の色やギルド名も同じルールで決まっているようです

トラックバックURL

トラックバック

コメント

P.D.S. URL

画面をクリッコすると徐々に暗くするように改造しました

背景変更とかも考えましたが
限りなくマンドクサイので明暗機能でごまかすことにしましたとさ

  • 2009/10/30 03:54

コメント投稿

投稿フォーム
名前
Eメール
URL
コメント
投稿キー

PHP Blog