スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

諦めなければ

しじみがトゥルル。修○から元気を貰い今こそblogを更新する時!

UT3

数日前に#UT3でLinkGunについてちょっと話題になったのでネタ作りも兼ねて解析。
Link2ndはStinger1stとは似て非なるもので、かなり複雑な挙動を示す。

まずUT3ScriptSource_1.5をDLしUTWeap_LinkGun.ucからダメージ処理する部分を探す。
その関数simulated function ProcessBeamHit()から肝となる箇所を抜粋。

// If not on the same team, hurt them
ConsumeBeamAmmo(SavedAmmoUse);
if (Victim != None && !WorldInfo.Game.GameReplicationInfo.OnSameTeam(Victim, Instigator))
{
bBeamHit = !Victim.bWorldGeometry;
if ( DamageAmount > 0 )
{
ShotDir = Normal(TestImpact.HitLocation - Location);
/** 攻撃方向の単位ベクトルを算出しShotDirに代入? */
SideDir = Normal(ShotDir Cross vect(0,0,1));
/** ShotDirとZ軸方向単位ベクトルを外積。そのベクトルを正規化しSideDirに代入。 */
PushForce = vect(0,0,1) + Normal(SideDir * (SideDir dot (TestImpact.HitLocation - Victim.Location)));
/**(ヒット位置のCrosshairのベクトル - 攻撃対象の位置のベクトル)とSideDirの内積を算出。
その値とSideDirを乗算し正規化したベクトルをZ軸方向の単位ベクトルと加算、PushForceに代入する。 */

PushForce *= (Victim.Physics == PHYS_Walking) ? 0.1*MomentumTransfer : DeltaTime*MomentumTransfer;
/** 攻撃対象の物理状態がWalkingならば、運動量移動に0.1を乗算。
Walkingで無いなら運動量移動にフレーム間時間を乗算。
それをPushForceに掛け算し再帰代入。*/

Victim.TakeDamage(DamageAmount, Instigator.Controller, TestImpact.HitLocation, PushForce, InstantHitDamageTypes[1], TestImpact.HitInfo, self);
}
}


・・・わかり難いので例としてシンプルな状況を考える。
同じXY平面上に居る相手の基準座標へ向けて正面からLink2ndを当てた場合。
ShotDir = (1,0,0) *X軸正方向の単位ベクトル
SideDir = (0,-1,0) *Y軸負方向の単位べクトル
(TestImpact.HitLocation - Victim.Location)=?
(被弾者の位置→ヒットが発生した位置)?のベクトルを算出しているであろう
この部分が、最終的にPushForceの向きを決める上でキーとなるはずだが
TestImpact.HitLocationやVictim.Locationの定義がはっきりしないため、実際どういう値になるのか判らない。
とりあえずこの場合、ShorDirと反対向きのベクトルとなるとする。
するとSideDirとこのベクトルとの内積はゼロとなるので
PushForce = (0,0,1)
よってZ軸正方向の運動量変化が処理されるはず。
これは極限までシンプルな状況を想定した場合で
実際は被弾の仕方によってPushForceベクトルの向きは複雑に変化し
真上ではなく斜め上方向のベクトルになる事が殆どだろう。
とりあえずどの場合においてもZ軸正の方向を向いた力が加わる。

つまり・・・どういうことだってばよ!?
一瞬浮かされる事になるはず。ついでにXY方向へも少し動かされる。
仮にボッツの如く当て続ければ、相手の物理状態を断続的にPHYS_Fallingにすることで
結果的にドッジを発動させないなどの動き封じの効果があると思う。
(ircでドッジキャンセルしないとか嘘ついてしまったかも)

UnrealScriptプログラミング未経験者の怪しい解読だけど
実際ゲーム内でテストしてみると概ね合ってる気もした。
ただ現実のLinkは素晴らしくマゾい武器で、危険な間合いで撃たなければ届かない為
必死の追従も空しくRL,Flak,Shockなどの強力な一撃で返り討ちに合うケースが圧倒的に多い。愛すべきネタ武器Link!


UT3 TDM 4on4 Spring 2010
UT3のイベントは旧作2つと比べると毎回厳しい状況だが
そんな中で注目の試合を発見。>dEx beat 1minute
熟練者が揃うゲームになるとスコアが均一化し易いTDMで
kRoNicとryZeがとんでもない好スコア。
サーバーサイドデモもUPされてるので、最近マンネリ気味な人は戦い方とか見れば何かの刺激になるかも?
Deckをちょこっと見た感じ、dExはチームでryZeが安全にスナイプキャンプできるように
お膳立てしてあげてる。そして彼がこれでもかと言わんばかりの徹底した鬼畜スナイポw
良い位置の取り合いとスナイパーの管理が勝負を決めている印象。
しかしkRoNicは流石というか・・・
ClanBaseのUT3Duel大会2回も優勝して、あっさりとQLに行った人だけど
UT3をアンインストールしてなくて良かった・・・w
本業の方でも、UTより人口が遥かに多く競争が過酷なQLのEuroCup XXI - QuakeLive Duel
PlayOffまで進んでるのが凄い。(確か参加人数200人超えてたはず)


UT1

UT TDM OpenCup Spring 2010
UT1はTDMやCTFの人気が依然強く、多数のアクティブなチームがいい状態で参加しイベントも盛り上がる。
UnbeatableTeamとして有名なSaints and SinnersFinalityを下し決勝進出
メンバーが毎日のように練習してて、ピークの状態で挑んだFinality惜しかった!
もう一方の決勝進出はSesioN率いるKDK。>KDK beat JaLLa
mtwteam-dignitasなどのプロチーム所属までしたことがあるSesioNの力はまだまだ健在。
数日前2on鯖で観戦するとsasの鬼面子をボコボコに殺してて↓流石。
(sasメンバーは誰一人とっても基地外的に強く、DuelでもTDMでもこういう風に負けてる所はまず拝めない)
KDKsas.jpg
ただこのチームはSesioN一人だけが飛びぬけていて後が少し付いていけてないので
層の厚いsasを倒せるチャンスは少ない。


Hardware&Software

DRTCM15
なんかキテタ。センサー位置がG500みたく前の方にある。
最近マウス関係停滞気味なので期待。

Razer DeathAdder 3500DPI Firmware Updater v2.41
Razer DeathAdder Firmware Updater v1.35(NDC)
Razer DeathAdder Firmware Updater v1.36(DC)
DeathAdderすごく・・・欲しいです・・・
ファーム更新が多くてwktk的な意味で。
というかさっさと新型の方でも補正有り無し2種類のファーム提供しろやあああ。

ATi Catalyst 10.6
なぜか今月に限って仕事が速いATi。
目ぼしい更新点はFlashPlayer10.1上でH.264ビデオGPU再生支援と
OpenGL3.3と4.0の正式サポート。

Creative Creative Sound Blaster X-Fi series driver 2.18.0015
旧X-Fiの方のドライバ更新は久々。

この記事へのコメント

トラックバック

URL :

プロフィール
Category
最新コメント
最新記事
月別アーカイブ
リンク
検索フォーム
FC2カウンター
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。