OrthelloのチュートリアルにBehaviorTreeをぶっこんでみた。
スコアアイテムなのにプレイヤーが前にくると
突っ込んでくるという斬新なAIだ。
ツリーはこんな感じになる。
ツリーにする意味が無い。
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;
}
}
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
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
マギ - Wikipedia http://j.mp/oenhcJ
マギは本来、メディア王国で宗教儀礼をつかさどっていたペルシア系祭司階級の呼称。単数形マグス。アヴェスター語形マグに由来し、ギリシャ語形の単数マゴス、複数マゴイを経由しラテン語化。英語では単数メイガス、複数メイジャイ、形容詞メイジャン。
やがてマギという言葉は人知を超える知恵や力を持つ存在を指す言葉となり、英語の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が蔓延。助け合うプレイヤーがいる一方で、どうせ死ぬならと伝染に加担するプレイヤーが出てきた結果、ゲームサーバーはシャットダウン、リセットせざるを得ない状況に陥った。
...\World of Warcraft\Interface\AddOns
HelloWorld.lua
HelloWorld.toc
HelloWorld.xml
.toc ・・・ Addonの設定ファイル
.lua ・・・ プログラム
.xml ・・・ UIの設定ファイル
## Interface: 40000
## Title: Hello World!
## Notes: My first AddOn
HelloWorld.lua
HelloWorld.xml
function HelloWorld()
print("Hello World!");
end
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
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();
SayExpansionLevel();
...
## SavedVariables: LoginTimeLog
LoginTimeLog = GetGameTime();
World of Warcraft\WTF\Account\USER\SavedVariables\
既存のシューターっていうのは,クロスコンバットが“極めて不自然”だよね。そこが不満。例えば,敵が至近距離にいても,ひたすら銃を打ち合ってるじゃない。シンプルなところでいえば,それだけで滑稽なんだよね。
それは「回し蹴りが気持ちいいから,そういうルールが成り立つ」ってところなわけです。
「シンプルなインプットに対して,ゴージャスなアウトプットが返ってくる」
例えばパンチ4発のコンボを出そうと,お客さんが5回パンチボタンを押しちゃったとしたら,それは4発のコンボが終わった時点で止めてあげなきゃだめなわけ。
こうやって騒ぎにきている場で,パーティとかでもさ,日本人はつまらなそうにしているじゃないですか。アメリカに来ていても,日本人同士だけで寄り集まっていたり。すぐに「日本バリア」を張る。そういう人達が,自分がその場で,やればできることもできないのに,どうやって文化や感覚がまったく違う国のオーディエンス(観客)に喜んでもらえるものを創りえるのかって話なんだよね。
「今回の売りは」とか聞くとさ,「何とかシステムと何とかシステムと何とかシステムです!」しか言わない奴がいたりするでしょ? 「いい加減にしろよお前ら!」っていう話なんだよ(苦笑)。
アメリカっていうか,要するに「日本じゃない場所」……例えば,ジンバブエでもいいんだよ。あるいは,ロシアでもいい。そういう国境を越えたエンタメをお客さんと共有したいんだったら,もっと自己変革してもらわないといけない。
だいたいよく日本の企業の採用面接で「コミュニケーション能力」とかいう評価軸があるけど,超ナンセンスだね。そんなのはソーシャルスキルのごく一部分の範疇でしかないわけ。そういう狭い視野で人を評価しようってんだから,そりゃ日本に閉じた会社ばかりになるわけだ(笑)。
ブラウザゲームは,とても勉強になったよ。「ああ,こんな簡単なことでお客さんは喜ぶんだ」とか,逆に「ああ,こんな簡単なことでやめてしまうのか」とか。
赤ちゃんを部屋の電気のスイッチの前に連れて行くとさ,それはもう喜んでずっとパチパチやってるわけですよ。それって要するに,「小さなことをやっているのに,世界がばっと変わる」わけじゃん。真っ暗から,明るく。明るくから,真っ暗。
出てる他のゲームを見て,それに感動してゲーム業界に入ったって感じではないね。俺は基本的に,ゲームを見てゲームを作らないからさ。さっきも言ったように,全然関係ない他のところからインスピレーションを持ってくるから。
俺は,大学に七年間行ったんだけど(笑)。とにかく自分の好きなことしかやらないから,「好きなことじゃないと,絶対会社に行かないな」と思って。
renderer.material.mainTexture = newTexture ;Editor(Hierarchy)内で使われてないファイルを呼び出す場合は、
Resources.Load("Textures/zombie_tex") ;
render.material.mainTexture = Resources.Load("Textures/zombie_tex") ;