Traumachicken

12/18/2011

BehaviorTreeで頭の悪いアイテムを作る

OrthelloのチュートリアルにBehaviorTreeをぶっこんでみた。




スコアアイテムなのにプレイヤーが前にくると
突っ込んでくるという斬新なAIだ。




ツリーはこんな感じになる。
ツリーにする意味が無い。


12/17/2011

Nuclear Dawnの夜明け

終末無料だ!




核して世界は滅びた。。。
資源が無い、戦争!





Savageのシューター版と言ったところ。
チームで一人がコマンダーやります。
ヘタクソだと投票で降ろされます。
それが民主主義。





「釣れますか?」
「いいえ、事件は現場で起きています。」






とりあえずスナイパー。
チマチマチマチマチマチマチマチマチマチマチマチマ






アサルトクラスならステルスクロークをサーモビジョンで看破できます。
でないと背中を刺されます。






ロケーションも豊富です。
3つぐらいやりました。






いずれ東京メトロもこうなります。






いずれ有楽町線もこうなります。






屋内にとどまり、ビデオげーむをします。


12/14/2011

Unity AndroidのBuilding DEX Failed!エラー応急対処法

  1. adb使ってるやつをkill(unity、eclipse、etc) 
  2. タスクマネージャでプロセスadb.exeをkill 
  3. とりえあえずUnityだけを再起動してbuild

12/03/2011

Behavior Treesのセレクター

  • Sequence
    • 左から右にトラバーサル。
    • ChildがFailureを返したらFailureを返して終了。
    • ChildがSuccessを返したら次のChildをトラバーサル。
    • ChildがRunningを返したらRunningを返して終了。
    • 次のトラバーサルはRunningを返したChildから開始。
    • だからChildがRunningを返し続けたらそいつだけ回る。
  • Priority Selector
    • 設定された優先順位通りにトラバーサルする。
    • ChildがRunningを返してもそのChildより優先順位が高いChildは常にトラバーサルする。
    • 例)2番目のChildがRunningを返しても1番目からトラバーサルする。3番目はしない?
    • 意味分からん。
    • SelectTopPriorityのID変えると変わる。
  • Selector
    • 左から右に1回に一個トラバーサル。
    • ChildがSuccessを返したらSuccessを返して終了。
    • ChildがFailureを返したらRunningを返して終了。次のトラバーサルは次のChildから開始。
    • ChildがRunningを返したらRunningを返して終了。
    • 次のトラバーサルはRunningを返したChildから開始。
    • 最後のChildがFailureを返したら最初に戻る。
  • http://aigamedev.com/insider/presentations/behavior-trees/

12/01/2011

Unity: Behavior TreesのライブラリBehave

Unity用Behavior TreesのライブラリBehave
サイトは

Behavior Treesの説明は

使い方はCollectionを作って
中にTreeを作ると
エディタでツリーをいじれる

ツリーはBuild libraryボタンを押して吐き出せば
スクリプトから使えるようになる




スクリプトはこんな感じ

using UnityEngine;
using System.Collections;
using Behave.Runtime;
using Tree = Behave.Runtime.Tree;

public class NewBehaviourScript : MonoBehaviour, IAgent
{
 Tree m_Tree;
 // Use this for initialization
 IEnumerator Start () {
  m_Tree = BLNewBehaveLibrary0.InstantiateTree (
   BLNewBehaveLibrary0.TreeType.NewCollection1_NewTree2 ,
   this
  );
  
  while (Application.isPlaying && m_Tree != null)
  {
   Debug.Log( m_Tree.Frequency );
   //~ yield return new WaitForSeconds( 1.0f / m_Tree.Frequency );
   yield return new WaitForSeconds( 1.0f / 1 );
   AIUpdate();
  }
 }
 
 void AIUpdate ()
 {
  Debug.Log( "update" );
  // one action been ticked.
  m_Tree.Tick();
 }
 
 public BehaveResult Tick (Tree sender, bool init)
 {
  Debug.Log ( "got ticked" );
  Debug.Log (
   (BLNewBehaveLibrary0.IsAction (sender.ActiveID) ? "action" : "decorator" )
  );
  
  return BehaveResult.Success;
 }
 
 public void Reset (Tree sender)
 {
 
 }
 
 public int SelectTopPriority (Tree sender, params int[] IDs)
 {
  return IDs[0];
 }
 
 public BehaveResult TickFirstAction (Tree sender)
 {
  Debug.Log("First!");
  return BehaveResult.Success;
 }
}

11/27/2011

Unity :OrthelloでSpriteを作る

TexturePackerGUIで
  1. 右のSpritesにSpriteをぶっこむ
  2. Data Format -> cocos2d
  3. Data file -> 保存先を選択
  4. .plistを.xmlに書き換え
  5. Algorithm -> Basic
  6. Trimをアンチェック
  7. Enable auto aliasをアンチェック
  8. Publishで書き出し
Unityで
  1. 画像のFilter Mode -> Point
  2. Override for Webをチェック
  3. Format -> Truecolor
  4. SpriteAtlas-Cocos2D prefabをHierarchyに加える
  5. Textureに出来た画像を
  6. Atlas Data Fileに.xmlを設定
Animation Spriteを作る
  1. Animation prefabをHierarchyに追加
  2. Sizeを増やす
  3. ContainerにAtlasをぶっ込む
  4. 開始、終了フレームを設定する
  5. AnimatingSprite prefabをHierarchyに追加
  6. AnimationにAnimation prefabをぶっ込む
Collisionを設定する
  1. Collidableにチェック
  2. "Ground"TagとLayerを追加
  3. "Ground"TagとLayerを設定

11/25/2011

Shader "Library/Cull All"

背景を透過する3Dマスクシェーダ

Shader "Library/Cull All"
{
 SubShader
 {
  Tags {"Queue" = "Background"}
  Blend SrcAlpha OneMinusSrcAlpha //ブレンド
  Lighting Off
  ZWrite On
  ZTest Less //重要:一度描画した部分は描画しない
  Pass
  {
   Cull Back //別にいらない
   Color(0,0,0,0)
  }
 }
}
http://forum.unity3d.com/threads/26945-Diablo-style-health-orb

11/24/2011

DropboxにUnity Web Playerを置く

  1. DropboxのPublicフォルダ?に.htmlと.unity3dを置く。
  2. .htmlのメニューからパブリックリンクを取得してアクセス。
  3. http://dl.dropbox.com/u/3239718/index.html
  4. ZOMG

Unity :L4Dのキャラクターインディケーター風のシェーダー

Shader "Character Indicator" {
Properties {
 _Color ("Main Color", Color) = (1,1,1,1)
 _MainTex ("Base (RGB)", 2D) = "white" {}
 _WrapTex ("Wrap ramp (RGBA)", 2D) = "black" {}
 _IndicatorTex ("Indicator Lights (RGB)", 2D) = "white" {}
 _Indicator ("Indicator Color", Color) = (1,1,1,1)
 _Cutoff ("Alpha cutoff", Range (0,1)) = 0.0
}
 
SubShader {
 Tags { "Queue" = "Geometry+1" "RenderType" = "Opaque" }
 
  Pass {   
   Tags { "LightMode" = "Always" }
   AlphaTest Greater [_Cutoff]
   ZWrite Off
   ZTest Greater
   
   SetTexture [_MainTex] {
    constantColor [_Indicator]
    combine constant, texture
   }
  }

CGPROGRAM
#pragma surface surf Ramp alphatest:_Cutoff

uniform float4 _Color;
uniform float4 _Indicator;
uniform sampler2D _MainTex;
uniform sampler2D _WrapTex;
uniform sampler2D _IndicatorTex;

half4 LightingRamp (SurfaceOutput s, half3 lightDir, half atten) {
 half NdotL = dot (s.Normal, lightDir);
 half diff = NdotL * 0.5 + 0.5;
 half3 ramp = tex2D (_WrapTex, float2(diff)).rgb;
 half4 c;
 c.rgb = s.Albedo * _LightColor0.rgb * ramp * (atten * 2);
 c.a = s.Alpha;
 return c;
}

struct Input {
 float2 uv_MainTex;
 float2 uv_BumpMap;
 float3 viewDir;
};

void surf (Input IN, inout SurfaceOutput o) {
 o.Albedo = tex2D ( _MainTex, IN.uv_MainTex).rgb * _Color;
 o.Emission = tex2D ( _IndicatorTex, IN.uv_MainTex).rgb * _Indicator * 2;
 
 half rim = 1.0 - saturate(dot (normalize(IN.viewDir), o.Normal));
 o.Emission += tex2D ( _MainTex, IN.uv_MainTex).rgb * 2 * pow (rim, 3.0);
 o.Alpha = tex2D ( _MainTex, IN.uv_MainTex).a;
}

ENDCG

}

Fallback " Glossy", 0
 
}
http://forum.unity3d.com/threads/96393-Achieving-a-multi-pass-effect-with-a-Surface-Shader

11/22/2011

ustream flv

  • Ustreamの録画は.flvで落とせる
  • なんか再生環境によってフレームレートがおかしい
  • youtubeにそのまま上げてもおかしい
  • Ustreamのハイライト機能が使えない
  • 始点が使えない
  • .flvはRichFLVで編集するがいい
  • RichFLVだめ
  • キーフレームリスト情報とかいうのがだめ
  • 途中抜けたりすると映像が抜ける<もともと抜けてた
  • ありもしない長さになるとyoutubeに長さではじかれる
    <youtubeの15分制限だった携帯使って解除できた
  • movicaを入れようとしたらMoyea FLV Editor Liteだった
  • youtubeで変換に失敗することはなくなった
  • 切り貼りした動画は音と映像がぶつ切りだった
  • Any Video Converterを試す


  • ハイライトみえてた
  • リロード押したらなった

10/24/2011

Payday the Heist

金だ金!
全部で30万¥はあるぞ!!
あはえいあhふぃw!


マッポ来た!
焚いてきた!

ブルドーザー(34)

盗むのは金だけじゃないぜ

中国人だ!!
中国人はいるか!!?
名前はジャイアン!!
出てこいジャイアン!!

銀行ごとヘリでブラジルに持ち帰ってから押し入ろう


7/27/2011

ゲーム市場の規模3兆円

ゲーム市場 3兆円
トヨタの年売上 10兆円

やっぱGTAもっと広めて車潰したほうがいいな。

7/18/2011

マジクエお前が思っている以上に恥ずかしい

マギ - Wikipedia http://j.mp/oenhcJ

RPGでもメイジだったりマァジャイだったりする。
ここではっきりさせとこうじゃないか。
マギは本来、メディア王国で宗教儀礼をつかさどっていたペルシア系祭司階級の呼称。単数形マグス。アヴェスター語形マグに由来し、ギリシャ語形の単数マゴス、複数マゴイを経由しラテン語化。英語では単数メイガス、複数メイジャイ、形容詞メイジャン。
やがてマギという言葉は人知を超える知恵や力を持つ存在を指す言葉となり、英語のmagicなどの語源となった。これはマギが行った魔術が、現代的な意味での奇術、手品に相当するものだったと推定されるからである。またマグネット, マグネシウムもマギが使用したことに由来する、という説がある。
イエスが生まれた時、東方で知らせとなる星を見たマギ(博士たち)がエルサレムまで赴き、ユダヤ人の王として誕生した方はどこかとヘロデ大王に尋ねる。ヘロデは動揺しながらも博士たちに教え、博士たちは星にしたがってイエスのいる場所に辿り着きひれ伏すと、黄金、乳香、没薬を贈り物として捧げた。
おまえらか!!


Ball Invasion - NASAが発明した SLAM 技術を使用して実現されてた #AR ゲーム - iPad App using NASA-invented Simultaneous Localization an... http://bit.ly/qZB99S

これはすごい・・・


ゲーム世界『World of Warcraft』で伝染病を研究|WIRED VISION News (beta) http://j.mp/pkicfP
2005年、WoWで周囲に感染するCorrupted Bloodという徐々にHPが減少するdebuffが蔓延。助け合うプレイヤーがいる一方で、どうせ死ぬならと伝染に加担するプレイヤーが出てきた結果、ゲームサーバーはシャットダウン、リセットせざるを得ない状況に陥った。
そういやこんなんもあったな。
なんかデータ取るためにやったんだろうか。

7/16/2011

昼休みにタージマハールの裏に来い

Vampire: The Masquerade - Bloodlines gets a new fan patch

なんとあの残念な結果に終わったはずの
ヴァンパイア・ザ・マスカレイドが、
再びファンアップデート。
不死か。



Report: GameStop to earn $1.5 billion in sales by 2014 by stealing from Steam

ImpulseがGameStopに統合されとった。
知らんかった。
5月あたりの話?
専門家はSteamを追撃可能と分析。



徳岡正肇の これをやるしかない:30歳からのマルチプレイFPS入門――とくにストラテジーゲーマーに向けて

反射神経が通用するのは野良鯖だけ。

7/08/2011

Explo It!


股間にヘッドショットあるっぽい!

7/03/2011

TF2やってた


あとConanやってた。
あとWoWやってた。
あとDiablo2やってた。
あとLotROやってない。

6/25/2011

witcher is so celtic


SEX!!!!




twitterの曲おかげの人で判明!

Sentinels of Brokilon - Rimead




怒れるDude、you mad!




and LEG.




そしてゲームのモデルになったWitcherのTVドラマシリーズを発見。

The Hexer

6/21/2011

WoW Addonを作る

クソの役にも立たないHelloWorld Addon
を作ってみよう。

まずディレクトリ

...\World of Warcraft\Interface\AddOns

にHelloWorldフォルダを作ろう。

次にHelloWorldフォルダの中に、

HelloWorld.lua
HelloWorld.toc
HelloWorld.xml

の3つのファイルを作ろう。

.toc ・・・ Addonの設定ファイル
.lua ・・・ プログラム
.xml ・・・ UIの設定ファイル
という印象だ。

各ファイルの中身はこんな雰囲気だ。

  • HelloWorld.toc
## Interface: 40000
## Title: Hello World!
## Notes: My first AddOn
HelloWorld.lua
HelloWorld.xml
  • HelloWorld.lua
function HelloWorld()
print("Hello World!");
end

  • HelloWorld.xml
Ui xmlns="http://www.blizzard.com/wow/ui/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.blizzard.com/wow/ui/..\..\FrameXML\UI.xsd"
 Script File="HelloWorld.lua"/
  Frame name="HelloWorldFrame"
   Scripts
    OnLoad
     HelloWorld();
   /OnLoad
  /Scripts
 /Frame
/Ui

SHIT.
ブログではタグを使うことができない。
.xmlのタグになりそうな部分は勝手に推察してくれ。


以上を正しく行うと、
ゲーム内のAddonリストにHelloWorldが現れるはずだ。

読み込んだ後、
チャットウィンドウにHello World!が出れば成功だ。

なにかあったらこれを書いた人に聞いてくれ。

AddOn programming tutorial/Introduction



WoWはゲーム内のデータにアクセスするためのAPI、
その名もWoW APIを用意している。
非常にクールだ。


例えば GetAccountExpansionLevel()

これは拡張パックの番号を返す。

0 = Classic,
1 = Burning Crusade,
2 = Wrath of the Lich King,
3 = Cataclysm

という具合だ。

教わるまでもない拡張パックを教えてくれる機能を
HelloWorld Addonに追加してみよう。

HelloWorld.luaに次の関数を追加しよう。

function SayExpansionLevel()
 expansionLevel = GetAccountExpansionLevel();
 if expansionLevel == 0 then
  print("You are playing Classic!");
 elseif expansionLevel == 1 then
  print("You are playing Burning Crusade!");
 elseif expansionLevel == 2 then
  print("You are playing Lich King!");
 elseif expansionLevel == 3 then
  print("You are playing Cataclysm!");
 end
end
非常にクールだ。

次に関数の呼び出しをHelloWorld.xmlに追加しよう。

...

 HelloWorld();
 SayExpansionLevel();

...
非常にクールだ。

正しく追加されていれば、
チャットウィンドウにメッセージが表示されているはずだ。

ちょっと待ってくれ、
歯茎から血が出てきた。



よし。

次に何らかの値をストレージにセーブしてみよう。
Addonの設定を保存するときにひちゅようになるはずだ。


まずセーブする値を.tocファイルに明示しよう。

## SavedVariables: LoginTimeLog
これでLoginTimeLog変数が、
ストレージに書き込まれるようになった。

次にLoginTimeLog変数に何らかの値を入れよう。

LoginTimeLog = GetGameTime();

GetGameTime()関数はサーバータイムを返す関数だ。

値はゲーム終了時に、
自動的に以下のディレクトリにある.luaファイルに書き込まれる。

World of Warcraft\WTF\Account\USER\SavedVariables\
の中の HelloWorld.lua がそれだ。

中を確認してみよう。

思い通りの結果になっていないはずだ。



6/19/2011

Conan the Barbarian in 3D


ウオオオオオオオオオオオ!!!
ウウッウォオウォホオオオオ!!
オオオム、ンンオオオConan the Destoryer!!

Conan the Barbarian in 3D

グオオオオオンオオー!!
90年代オオオオオオンオオオオオ!!
シュワワワワオオアアアオオオ!!
州知事ンンオオオオオオオオ!!
権利オオンオオオンオオ!!!



フッ フッ フンヌウアアアアア!!!
ンオオオオオオオオオ!!!
Bloodthirstオオオオオオ!!
Cold!
Cold!
Coldsteelェエエエエエ!!!
Honorアアアアアアアアアアアア!!!

6/18/2011

ネオ・クーロンズ・ゲート

あのクーロンズ・ゲートがSecond Life
にできていたというから行ってみた。


ほんとは興奮しているが当時の開発者達が関わっている
とあって作り込みが中途半端ない。

テクスチャなんか当時の素材を持ってきたもんなのか、
おかげでそこらのシムとは質量や完成度がケタ違いだ。

ほんとは興奮しているがセカンドライフでここまで
できるもんなのかと本当に驚かされる。



軽い謎解きなんかも用意されているし、
飲み屋に入るとBGMが流れるし、
ほんとは興奮しているがコンテンツも中途半端ない。



ゲームの部屋の再現だろうか、ファンにはたまらないだろう。
やったことないのでわからないんだが。



ほんとは興奮しているが雑誌まで刊行されている。



セカンドライフらしくコミュニティに参加したユーザー達で
コンテンツ作成や店を出したりしているようだ。

あのクーロンズ・ゲートを自由に歩きまわれて、
住人になれてしかも街づくりにも参加できるというのだから、
この上ないコンテンツの昇華の仕方だろう。
ほんとは興奮しているが是非他のゲームタイトルもやってほしい。



もともと廃墟マニアにはたまらない雰囲気の街だが、
その縦横無尽に張り巡らされた迷路のような街並みが、
飛んでOKワープしてOKのセカンドライフの導線問題を
なかった事にしてくれているという思わぬ副作用まであった。



少数ながらマニアックならではの団結の強い
アクティブなコミュニティもちゃんとある。
ほんとは興奮しているが参加自由のグループに入ると、
シム内のサンドボックスを使わせてくれるらしいので、
参加したければすればいい。



クーロンズ・ゲートの雰囲気わえ堪能できるアイテムも
配布されているのでをじぎえすぎまえけにしうすかけ。
とみえいにきかをすうずつうえんめぬんぢろうづそけ。
てめねかね、しいえんぎぎいだおどおすうるずうめ。



めでづしえいしあけいえ。
もぎぢあい、えぎえいえしまくるせめぢじついそぞぐぬ!
えまぞみてじかまづにぜろーーーーー!!

6/17/2011

ゲーム批評批評

ゲームはどう批評したらいいんだろうか、
どう批評されるべきなんだろうか。

ペイントソフトで絵を思い通りに描けなかったとき、
それは誰のせいだろうか。

絵がうまい人なら、
ペンが太すぎる、色が少ない、UIが不親切と、
ペイントソフトの機能をあれこれ批判するだろう。

"体験"を作るツールとしてのゲームを考えたとき、
これと同じことが言える。

ユーザーがペイントソフトで絵を描くように、
プレイヤーはゲームを使って体験を描く。

思いどおりの絵を描けるようツールの使い方を学ぶように、
思いどおりの体験を作れるようゲームを遊び方を学ぶ。

そのゲームは目的の体験を作るために、
必要とされる機能をちゃんと備えているだろうか。

ゲームはこれを客観的に批評するべきだ。

「こういう体験を作るには、こういう機能が不足している。」

まずはこの形式に則った批評からはじめてみようと思う。

6/14/2011

板垣おっぱい

[E3 2011]ゲームの基本はシンプルなインプットに対して,ゴージャスなアウトプットが返ってくること――板垣伴信氏が語るゲームの根底にある面白さとは

既存のシューターっていうのは,クロスコンバットが“極めて不自然”だよね。そこが不満。例えば,敵が至近距離にいても,ひたすら銃を打ち合ってるじゃない。シンプルなところでいえば,それだけで滑稽なんだよね。

それは「回し蹴りが気持ちいいから,そういうルールが成り立つ」ってところなわけです。

「シンプルなインプットに対して,ゴージャスなアウトプットが返ってくる」

例えばパンチ4発のコンボを出そうと,お客さんが5回パンチボタンを押しちゃったとしたら,それは4発のコンボが終わった時点で止めてあげなきゃだめなわけ。

こうやって騒ぎにきている場で,パーティとかでもさ,日本人はつまらなそうにしているじゃないですか。アメリカに来ていても,日本人同士だけで寄り集まっていたり。すぐに「日本バリア」を張る。そういう人達が,自分がその場で,やればできることもできないのに,どうやって文化や感覚がまったく違う国のオーディエンス(観客)に喜んでもらえるものを創りえるのかって話なんだよね。

「今回の売りは」とか聞くとさ,「何とかシステムと何とかシステムと何とかシステムです!」しか言わない奴がいたりするでしょ? 「いい加減にしろよお前ら!」っていう話なんだよ(苦笑)。

アメリカっていうか,要するに「日本じゃない場所」……例えば,ジンバブエでもいいんだよ。あるいは,ロシアでもいい。そういう国境を越えたエンタメをお客さんと共有したいんだったら,もっと自己変革してもらわないといけない。

だいたいよく日本の企業の採用面接で「コミュニケーション能力」とかいう評価軸があるけど,超ナンセンスだね。そんなのはソーシャルスキルのごく一部分の範疇でしかないわけ。そういう狭い視野で人を評価しようってんだから,そりゃ日本に閉じた会社ばかりになるわけだ(笑)。

ブラウザゲームは,とても勉強になったよ。「ああ,こんな簡単なことでお客さんは喜ぶんだ」とか,逆に「ああ,こんな簡単なことでやめてしまうのか」とか。

赤ちゃんを部屋の電気のスイッチの前に連れて行くとさ,それはもう喜んでずっとパチパチやってるわけですよ。それって要するに,「小さなことをやっているのに,世界がばっと変わる」わけじゃん。真っ暗から,明るく。明るくから,真っ暗。

出てる他のゲームを見て,それに感動してゲーム業界に入ったって感じではないね。俺は基本的に,ゲームを見てゲームを作らないからさ。さっきも言ったように,全然関係ない他のところからインスピレーションを持ってくるから。

俺は,大学に七年間行ったんだけど(笑)。とにかく自分の好きなことしかやらないから,「好きなことじゃないと,絶対会社に行かないな」と思って。




6/12/2011

Gods and Heroes and 俺

クローズドβでちょっくら遊んでいたMMORPG、
Gods and Heroes: Rome Rising

御世辞にも傑作とは言えない
まあまあの出来にまあまあの新規性、
そんな俺とお前はローマで通じる。

出生を知らぬまま放置していたが、
Perpetual Entertainmentが経営の悪化から
2007年に開発中止をしていたタイトルを、
Heatwave Interactiveが引き継いだものらしい。

Perpetual Entertainmentは
あのStar Trek Onlineを開発を行っていた会社だが、
譲渡問題で訴訟を起こされ2007年に消滅。
宙に浮いていた同タイトルはCryptic Studiosに引き継がれ
2009年にローンチを果たしたのはご存知のとおり。

肝心のHeatwave Interactiveはというと、
携帯ゲームなどを手がけていた会社らしく、
MMOブランド力ははっきりいってゼロだ。

そんなこともあってか、
Star Trek Onlineと同じ境遇を分かち合う兄弟関係でありながら、
兄貴の陰にすっかり隠れてしまったルイージがGods & Heroesだ。
↑うまい

話は逸れるがChampions Onlineなどを手がけていたCryptic Studioは、
今月初めに中国企業のPerfect WorldによってAtariから買収された。
兼ねてから経営不振を囁かれていた事実上の身売りなわけだが、
このCrypticが今度はNeverwinterの新作を手がけているとほざくから
個人的には目が離せないというかやめろ。

6/07/2011

Ovtave


はやくもネタがなくなってきた

6/05/2011

口唇破裂漫画②

口唇破裂漫画

Unity :Resources.Load()

テクスチャを動的に変更しようとしたところでつまづいた。
テクスチャの変更自体は下のように書く。
renderer.material.mainTexture = newTexture ;
Editor(Hierarchy)内で使われてないファイルを呼び出す場合は、
Resources.Load()を使う。

注意しなければならないのは、
呼び出すファイルはResourcesフォルダ内にないといけないこと。
Resourcesと名のつくフォルダの外にあるものは、
いくらパスを通そうが呼び出せない。


上の状態でzombie_texを呼び出すには、
Resources.Load("Textures/zombie_tex") ;
よってテクスチャの変更は、
render.material.mainTexture = Resources.Load("Textures/zombie_tex") ;
となる。

パスの"Resources"と、ファイルの拡張子は必要ない。
Resourcesファイルが複数ある場合は、
全部のフォルダを探しに行ってくれる。


おかげでフォルダの階層がめちゃくちゃになった。


6/04/2011

ゾンビ

海外の頭おかしいgifサイトみたいなってんぞ

エクソシスト

Drakensang Online

Drakensang Onlineは今closedβ中のブラウザゲームで、
題材となったDrakensangはドイツ版D&DともいえるTRPG。

一昨年にPC用シングルRPGとして
Drakensang:The Dark Eyeが発売された。
ドイツ語版のローカライズに時間が掛かったせいか
すっかり大作の陰に隠れてしまったが、
美麗なグラフィックと安定した完成度で知る人ぞ知る名作。

今年のはじめに事実上2のThe River of Timeの英語版、
その拡張Phileasson's Secretが5月に発売され、
じわじわとファンを増やしている。

ブラウザゲームとなったDrakensang OnlineはJavaで動作。
ブラウザ上でプレイできて、フルスクリーンに切り替えが可能。



Javaでここまでできるのかと喉から仏がイワンだらけの水泳大会。
さらに驚くことにこれがなめらかに動くんだからご愁傷様です。




プレイフィールはオーソドックスなハックンスラッシュだが、
マルチ部分が少々おもしろいことになっている。

ハクスラだが自分で部屋を作ることはしない。
MMOのように適当なタウンに放りこまれ、
マップ端からフィールド移動して歩いてまわる。

フィールド内のプレイヤー達は適当にチャンネル分けでもされているんだろう、
同じチャンネルにいるプレイヤー達とは敵やダメージを共有することになる。
人数はゾーンを渡り切るまで2、3人とすれ違う程度だった。

ちょっと変わっているのが敵の湧き方だ。
定位置にスポーンする敵とは別に、
プレイヤーの周りに定期的に敵がスポーンする。

エンカウント式で沸くので、狩場争いや沸き待ちなどする必要がない。
いつも多めに沸くので他のプレイヤーがいてくれるとありがたいぐらいだ。

いわゆるインスタンス的なものも別にある。
フィールドのどこかに入り口があり、これは入場前に難易度をきかれる。



クエストも適度に用意されていて、
中にはインスタンスへ行かなければいけないものもある。



なんと言っても見所は
シリーズを通して溜めた美麗なリソースを惜し気無く使い、
Javaでダイナミックライティングまでやってのけるグラフィック。

ブラウザゲームエンジンでも作る気だろうか。

6/03/2011

アマチュアarmature


BlenderでArmatureを動かしてみた
モデルはmakehumanが出産したやつをDecimatorしまくったもの



歩き方むかつく

6/02/2011

ドット絵の匠

なんとスクエアのFFシリーズを手がけたドット絵師が
ドット絵講座のページを公開しているらしいので
参考に描いてみた

渋谷員子のドットの匠

ほうなるほどほう・・・へぇー


へぇえへえへへーえっへええ



いえぇえええやああああああ!!!