2016年8月21日 星期日

50 common game camera mistakes -- and how to fix them by John Nesky : 50個常見遊戲攝影機的錯誤 -- 並如何改善by John Nesky _part 2


source from: Video: 50 common game camera mistakes -- and how to fix them
  • #地雷17 : Not cutting when the avatar passes through opaque areas. 不要中斷玩家穿越不透明區域
  • Avatar collision USUALLY protects line-of-sight from the front. 玩家碰撞通常會從前面保護視覺動線。
  • But opaque thing aren't always solid.但不透明物體不一定是固態
  • Only one option left: cut 只有一個選擇 : 切鏡


  • #地雷18 : Letting cuts remap directional controls. 讓切鏡重新布局方向的控制


  • Pressing the directional stick upward means go forward.按住方向桿往前,意思就是往前走
  • But the camera decides which direction is forward.不過攝影機才是決定那個方向前進。
  • Players adapt when forward rotates smoothly, but it's impossible to teleport your thumb when a camera cuts.前進平順旋轉,玩家會適應,不過攝影機切鏡,玩家不可能瞬間移動自己的拇指(他們不會迅速做出反應)
  • Give the player a moment to get used to the new angle before requiring new input.在新的遊戲內容來臨前,讓玩家有時間去習慣新的角度。(讓他們先在一個不會受到攻擊的地方適應)

  • #地雷19 : Breaking the player's sense of direction. 破壞玩家方向感。
  • Cuts are common in cinema, but players need to be able to navigate.在電影中,切鏡是很普遍,但需要指引玩家。
  • Players navigate with a combination of landmarks and dead reckoning. Cuts break the latter.玩家用地標和航位推測組合推測方向,但切鏡會破壞這一切。
  • Cut sparingly.有節制的切鏡。
  • If the camera must cut, avoid changing the angle more than 90 degrees, and try to keep landmarks in view.攝影機一定要被切鏡,避免改變角度超過90度,並且保持地標在鏡頭內。

  • #地雷20: Violating the 180 degree rule. 違反180度原則

  •  well-know in cinema, the 180 degree rule is less important to game because it only matter during cuts.這在電影裡眾所皆知,但對遊戲而言,180度規則只是幾個cut。
  • But it still applies to cutscenes!但它還是會是用在過場動畫!!
  • Align the game camera with the end of a cutscene and transition smoothly to the game camera to preserve sense of direction.對齊過場動畫結束的遊戲攝影機,並順暢地切換成遊戲攝影機,這之間要保持場景方向。

  • #地雷21:Focusing only on the avatar.只對焦玩家角色

  • The avatar is not an island! 玩家角色不是島嶼!
  • Player need to see where they're going, and it's the camera's job to show them.玩家需要看到他們該去的地方,這也是攝影機的任務,指引玩家。

  • #地雷22:Relying on players to control the camera all the time.隨時讓玩家操控攝影機
  • For many players, controlling an avatar and a camera at the same time is like patting their head and rubbing their belly.對許多玩家,同時控制角色和攝影機,就像是拍拍他們的頭,和對他們肚子搔癢(不能提升遊玩體驗,他舉的例子就是玩家把攝影機移動,像是喝醉的人,攝影機應該給玩家看最好的角度)
  • Even players who are good  at it use jerky motion.即便玩家擅長穩定手震鏡頭
  • There are many  tricks to point the camera in the right direction automatically.有很多技巧可以自動指引攝影機到對的方向。

  • #地雷23:Leaving camera yaw alone while player is running. 玩家在奔跑時,只留攝影機Y軸旋轉

  •  Player usually want to look in the same direction that they're running in.玩家在奔跑中,通常想看同一個方向。
  • The simplest way to guide players is to shoe them where they're already going. The camera should drift behind moving players.最簡易指引玩家的方法,就是朝他們行進的方向拍攝。
  • It's like giving the directional stick two functions, but don't keep turning when the avatar runs into a wall. 有點像給方向桿兩個功能,但遇到牆,要讓攝影機換鏡位,別讓玩家認為可以繼續往前走。

  • #地雷24:Making it hard to judge distances.很難判斷攝影機距離
  • The game may be 3D, but the screen is 2D.遊戲是3D的,但螢幕是2D
  • Depth perception is weak.空間深度會感受較薄弱
  • Distances are easiest to judge when they align with the plane of the screen.玩家與螢幕平面如果是對齊的,距離容易判斷。
  • Side views are good for vertical navigation. 側視圖容易判斷垂直導航移動距離
  • Top views are good for horizontal navigation. 上視圖容易判斷水平導航移動距離

  • #地雷25:Looking straight ahead as the avatar approaches a cliff.攝影機筆直前進,就像玩家接近懸崖。
  •  Use raycasts to determine the elevation ahead and detect drops.使用raycasts決定勢能頭和偵測落下。
  • Tilt to an overhead view to show how far the avatar is from the edge, and to allow the player to see below. 傾斜俯瞰視角,可以呈現玩家距離邊界有多遠,允許玩家看到邊界下方。
  • Lifting the camera over the avatar keeps it from hitting the ground in case the avatar suddenly drops down.攝影機升過玩家角色,讓它不要碰撞到地面,像是玩家突然掉落某個地方,攝影機就該高於角色。(可以幫助玩家看到底部)

  • #地雷26:Keeping the camera level when the avatar is running on a slope.角色在坡度上跑,要保持攝影機高度


  •  A straight-ahead view feels like an overhead view when climbing a slope. Align the camera with the slope.
    爬坡時,直線視線感覺會像俯瞰視角,攝影機是沿著坡度移動
  • The slope immediately under the avatar's feet may be bumpy. Use raycasts to determine average to determine average slope.玩家在爬坡,有可能會崎嶇,使用raycasts 決定平均坡度。
  • It's easy for raycasts to mistake a short wall for an upward hill. Distinguish with surface normals.
    Raycasts 很容易對山丘上的短邊牆產生錯誤,使用表面法向區分出來。

  • #地雷27: Misusing the "Rule of thirds".誤用「三分構圖法」
  • Framing thing off-center can be pleasant.景框的物體沒有在中心是可以被接受。
  • But don't pivot in-place!但是不要把軸心放在非中心位置。
  • Instead,Slide sideways to frame the avatar.而是鏡頭的位置往側邊滑動,去框住玩家。
  • But players use the center of the screen to aim the directional stick.但玩家是使用螢幕中心去對準手把的方向桿(換句話說,玩家認為螢幕中心就是手把中心)
  • Shadow of the Colossus only works because it has a "gas pedal".這種角色位置非在畫面中心,只有汪達與巨像可以這麼作,因為它只有一個"油門踏板"(它只需要轉動攝影機,並角色是自動移動)。

  • #地雷28: Using the same Logic for ground and air motion.對地面和空中,都使用相同邏輯
  • Players need to make different judgements depending on their form of transport. The camera should adapt. 玩家依據他們的形式改變,要做出不一樣的判斷,攝影機也應該要調整。
  • When jumping or flying, players want to see where they'll land. Look downward.當跳躍或飛行,玩家玩家會想看他們要在何處降落。會往下看。
  • Short hops might not require any change. Modulate rule changes by the avatar's height above ground.短距離跳躍可能不會差太多,藉由玩家離地面的高度,調整規則。

  • 地雷#29 : Relying entirely on procedural camera behaviors.完全依靠程序化攝影機的運動
  • Raycasts can only convey boundaries. They don't indicate value.只能傳遞邊界範圍,它們不能偵測體積。
  • As designers we have a better idea of what's important.
    我們身為設計師,「什麼是最重要」才是更佳點子(重要的東西才要讓攝影機看到)
  • For special cases, use scripted "hints" to point yaw or pitch at a target.特別的例子(小場景),撰寫"Hints"(程式用語)去使用yaw or pitch指出目標物。


  • 地雷#30 : Letting players make themselves lost and confused.讓玩家自己迷路和混亂
  • Detect whether the player has started backtracking a significant distance or veering away from targets.偵測不論玩家是否已經開始回到明顯的距離或遠離目標。(普遍做法:在雷達上放方向錯誤訊息,但作者覺得這太明顯)
  • Gently rotate the camera to guide the player back.巧妙地旋轉攝影機指引玩家回到目標路上(作者推薦)
  • Explicitly telling the player where to go robs them of the sense of discovery.清楚明白告訴玩家

  • 地雷#31 : Rotating to look at nearby targets. 旋轉攝影機去看靠近的目標
  • Nearby targets change directions frequently.經常改變靠近的目標的方向
  • Trying to keep up results in flailing around.試著揮動攝影機,保持拍攝目標在鏡頭內。
  • Move back or sideways to include targets in the view.攝影機往後移動或側邊拖拉,保持拍攝目標在鏡頭內。

  • 地雷#32 : Translating to look at distant targets. 轉換觀看遠處的目標
  • Distant targets, on the other hand, will stay roughly the same direction from the avatar.遠處的目標,另一方面,就是與玩家站在同樣差不多的方向
  • The further away they are, the further the camera would have to move to account for them.藉由較遠的目標,遠處攝影機可以依據他們做移動。
  • The only way to look at the sun is to rotate the camera.只有一個方式看太陽,轉動攝影機。

  • 地雷#33: Letting the avatar's own body occlude targets ahead. 讓玩家的身體擋住目標前進。
  • If the avatar and the target are both aligned with the horizontal center of the screen, they need to be vertically offset to be able to see both.如果玩家和目標同在一個水平線上,他們需要垂直偏移,使兩者都可以看見。
  • A slight bird's eye view usually works fine.些微的鳥瞰通常會有不錯的效果。
  • Alternatively, side sideways for a horizontal offset.另一個方式,水平位移。

  • 地雷#34 : Giving the player control over the camera and then taking it away.給予玩家完整控制攝影機,卻又把控制權拿回來。
  • Hints and rails can provide "default" camera angles, but let the player to override them.Hints 和 rails(程式用語)可以提供"預設"攝影機角度,但讓玩家可以覆蓋它們。
  • If you have to take away the player's control, make sure that the camera is already showing what the player needs to see.如果你不讓玩家操作,要確定攝影機已經顯示玩家需要看到的東西。

  • 地雷#35 : Immediately applying a hint after the player finished turning the camera to look at something. 玩家完成攝影機轉向看某件事,立刻使用Hint
  • If the player intentionally turned to look at something, they probably want to examine it before moving on.玩家有意轉向看某物,他們可能想研究它。
  • If there's nothing important, let the camera rest for a moment or until the avatar moves.如果沒有必要,讓攝影機休息片刻(延遲Delay)或等玩家移動再動作。

  • 地雷#36 : Not letting exports explore.不讓探險者探索
  • Curious and experienced players may want to break the rules and explore a bit more.好奇心和有經驗的玩家,也許不想要遵守規則,只想深入探索。
  • Beginners need quidance, but letting exports control the camera lets them choose what matters to them.
  • 初學者需要指導,不過要讓玩家控制攝影機,讓他們選擇他們覺得重要的。

  • 地雷#37 : Not providing inverted controls. 不提供反向操作 
  • many players are used to inverted camera controls on one or both axes, and it's hard for them to relearn.許多玩家習慣反向操作攝影機的某一軸到兩軸。(第一人稱遊戲會有)
  • Not having the option simply limits your audience.並不是給個選項,就單純限制你的玩家。


2016年8月15日 星期一

My MRT sketch book vol 17


HAHA ~~ Blue Monday,but i feel awesome, it's will be a efficient day . All people are in blue and no one could bother me !!













2016年8月2日 星期二

50 common game camera mistakes -- and how to fix them by John Nesky : 50個常見遊戲攝影機的錯誤 -- 並如何改善by John Nesky _part 1



影片中PPT有遊戲片段可以看!



"Cameras are most noticeable when they fail."
當攝影機有誤,是最容易被察覺的!

- Thatgamecompany engineer John Nesky.
What's the last game you played that had a really great camera system? For that matter, what does it even mean to design a "great" camera?
你最近玩的遊戲,有很棒的攝影機系統嗎? 關於這問題,那什麼才算是設計優良的攝影機?
At GDC 2014, Thatgamecompany "Feel Engineer" John Nesky spoke passionately about the importance of good camera design in games, and what he learned about how to make a great camera in his time working on Journey, where he had to figure it out as he went along.
在GDC2014,Thatgamecompany(公司名) "感受工程師"John Nesky 熱情演說有關,在遊戲中,攝影機設計的重要性。以及他從Journey的工作中,學到如何製作一個出色的攝影機,這邊他將這些經驗歸納出來。
He went on to take the audience on a tour of all the poor game camera design decisions he and other designers have made in recent years, offering thoughtful advice on how to sidestep or solve each of them.
他要帶領觀眾,來一趟乏味遊戲攝影機設計之旅,這是由他和其他設計師這幾年所整理出來。提供周詳建議,去如何迴避和解決這些問題。
It was a heartfelt, insightful talk about a topic that's too rarely talked about in detail, and if you missed it in person you can now watch Nesky's whole talk for free over on the official GDC YouTube channel.

這是種感受,精闢講解這很少深度討論的主題,如果你錯過,可以在watch Nesky's whole talk for free over on the official GDC YouTube channel.這看到。

PPT Below :

Camera Divert Attention 攝影機轉移注意力
  • The purpose of camera is to focus attention on something else. 
          攝影機目的就是將注意力放在某件事物上
  • They're most noticeable when they fail.
          它們出現失誤,很容易被注意
  • So Let's talk about failure
           我們來討論失誤吧
Journey  風之旅人
  •  I'm a "Feel Engineer" at thatgamecompany.
          我在thatgamecompany擔任感受工程師

  • Given responsibility of Journey's camera system.
          風之旅人攝影機系統負責人
  • Had to have a third - person camera.
          必須要有第3人稱攝影機
  • Had to figure it out as I went along.
         要掌握我要的走向
  • Made lots of mistakes.
         嘗試許多失敗

Beyond Cinematography 在戲劇攝影之前的準備


  • Players need to make spatial judgments. 玩家需要空間判斷。(攝影機要判斷玩家的狀況)
  • Can't predict situations, so the software choose angles instead of designers. 不能預測的情況,讓程式代替設計者,去選擇角度。
  • Learn and formalize cinematography to teach it to the software. That's called "gamatography"!學習並規格化戲劇攝影,並寫入軟體。
Camera Distance 攝影機距離
  • Fixed - angle third person 左一
          固定角度第3人稱 (攝影機不會轉)
  • Dynamic third-person 中間
          動態第三人稱  (會轉)
  • First-person 右一
  •           第一人稱 
在風之旅人,我們希望玩家可以看到任何角度,我們用固定角度第3人稱,所以我們要考慮到碰撞,保持攝影機與角色的距離,這產生了至少50個問題!
#地雷1 : Using a dynamic camera when another approach would work. 其他條件達成,就使用動態攝影機
  • No shame in focuing on other features. 沒有甚麼需要遮醜的項目
  • Fixed-angle cameras are great! 固定視角比較好 ,作者認為動態攝影機沒有讓遊戲自動變好,反而變得更糟。左邊馬力歐就是悲劇 右邊是固定攝影機better,推薦使用比較簡單的攝影機風格,第一人稱或是固定視角。
  • Given limited resources, cameras are low priority. 限制條件,攝影機較後處理。




  • #地雷2 : Designing levels and camera behaviors that don't match 設計關卡和攝影機行為不相符合
  • Camera work with the level design to aid navigation.攝影機與關卡設計合作,協助引導方向。
  • Reveal information that's relevant to player decisions.顯示訊息,有關玩家所做的決定。
  • The camera design should be prepared to react to frequently encountered situations.
  • 攝影機設計應該事前預備,反應經常遇到的情況。(攝影機預先準備好,讓玩家準備)
  • #地雷3 : Using global coordinates or quaternions to persist the camera state. 使用世界座標或4軸固定攝影機位置
  • unlike first-person cameras, never pivot in place 非第一人稱攝影機,絕不要放在同一地方轉動。
  • Represent camera as an orbit around the avatar .將攝影機視為軌道,圍繞著角色
  • Players think in Euler angles, not quaternions。玩家認為攝影機是歐拉角,而非四元數
  • still need to be aware of gimbal lock. 但還是需要注意,方向節被鎖定。
  • A camera is 7 numbers : 攝影機有7項要點
  1. yaw, pitch, and optionally roll.
  2. distance from pivot. 遠離支點
  3. lateral and vertical offsets for framing. 橫向與縱向水平移動畫面
  4. field-of-view.視野
  • #地雷4: Using a default camera distance that's likely to break line-of-sight. 使用預設攝影機距離,可能會中斷視覺動線。
  •  
  • The smaller the danger zone, the easier it is to avoid.  過小的區域最危險,容易發生!
  • Line-of-sight must be small enough to fit through levels.視覺動線的最短距離,要能通過整個關卡,盡量讓你的視覺乾淨。
  • Looming obstacles can intersect from the side, from behind, from ahead, or from below.迫在眉睫的障礙物,攝影機可以從旁邊,從後面,從前面,或下面。 

  • #地雷5:Allowing obstacles to break line-of-sight from the side. 允許障礙物從旁邊切斷視覺動線。
  • Detect obstacles earlier with "whisker "raycasts. 用Whisker raycasts提早偵測障礙物,就可以繞過。
  • Reuse results from the previous frame to reduce load.重複利用先前的結果,減少讀寫。
  • Swing away from obstacles to avoid them.旋繞離開障礙物,達到避開他們。
  • #地雷6:Pushing away from an obstacle while the player is trying to swing towards it.玩家試著靠近障礙物,但卻被推離障礙物。
  • Never ignore player intent.不要忽視玩家意圖,(玩家想看甚麼,就給他們看,但我們讓攝影機比較接近角色!)
  • When avoidance and intent conflict, intent wins. 迴避與意圖有衝突時,意圖會勝出。

  • #地雷7:Letting the player push the camera inside an obstacle. 玩家把攝影機推到障礙物裡面。
  • Line-of-sight is forced to swing towards an obstacle? 視覺動線被強迫旋入障礙物?
  • Only one way to get past it : shrink the line-of-sight.有一個方式可以避開:縮短視覺動線
  • Whisker indicate how much space is available.可以用Whisker測出有多少空間可用。

  • #地雷8:Letting independent forces compete to push the camera.單獨外力抗衡推動攝影機
  • The camera is controlled by many rules.由許多規則控制攝影機。
  • But there are only 7 axes to adjust.只有7個軸項可以調整。
  • Rules often push in opposite directions.規則總是反方向推動
  • Organize forces by degree-of-freedom,prioritizing forces for each axis.藉由自由角度整合力量,對每個軸向優先的力量。(建議從7 axes和degree-of-freedom去調整攝影機)

  • #地雷9:Keeping narrow columns from breaking line-of-sight. 保持狹窄柱子,避開中斷視覺動線
  • obsessively preserving line-of-sight results in doing gymnastics to keep a twig from passing in front of avatar. 強迫保留視覺動線結果,如做體操,保持平衡木,遠離角色。
  • Tag obstacles that are allowed to break line-of-sight.標記允許中斷視覺動線的障礙物。
  • Whisker ignore tagged obstacles.Whisker要忽略這些被標記的障礙物。

  • #地雷10:Letting the camera intersect narrow columns. 攝影機與狹窄的柱子交叉
  • Breaking line-of-sight may be okay.中斷視覺動態或許還行
  • Smashing the camera isn't.撞向攝影機就不妥
  • Try simple sphere collision detection for camera. 攝影機試著以球體碰撞偵測。

  • #地雷11:Interpreting a hill as a wall to be avoided. 避免把山丘解讀為牆
  • Hill also count as false positive. 山丘也算是誤判
  • Rise above hills instead of swinging away.以上升越過山丘,替代繞過它。
  • In Journey,whisker raycasts skip sand dunes.在風之旅人,使用whisker raycasts 避開沙丘
  • Try checking the normal angle where the whisker hits. 試著檢查Whisker碰撞處的法線角度。

  • #地雷12:Swinging sideways when occluders come from behind.來自後方的阻擋,繞到側邊。
  • Avatar collision protects line-of-sight from the front. Avatar碰撞保護從前方的視覺動線
  • But we need a new rule to catch obstacles from the back before whiskers catch them.在whiskers碰到障礙物之前,我們需要一個新規則從後方抓到它們。
  • Resolve the occlusion by pulling camera forward.攝影機推前進,解決阻擋。(可以用swing 或提高攝影機)

  • #地雷13:Letting the camera's near-clipping-plane intersect the avatar. 讓攝影機的near-clipping-plane切到角色(在畫面留下一個大洞)
  • In emergencies, the camera may need to squeeze between avatars and walls.在緊急狀況,攝影機可能會在角色和牆壁被擠壓。
  • Can't get closer than near-clipping-plane distance. 不要比 near-clipping-plane 的距離還近。
  • Need a gap between avatar model and collision radius for quaranteed camera space 角色模型和碰撞範圍之間需要一個間距,確保攝影機的空間
  • Alternatively, fade out the avatar.不然就是,淡出角色。



  • #地雷14 : Using the same camera distance for all angles.(對所有角度,皆使用同樣攝影機距離)

  • Worm's-eye view leaves very little camera space. 視角所留的攝影機空間非常小。
  • Use a smooth curve to gracefully transition into a closeup.使用平順的曲線,優雅的轉變成特寫。
  • Bird's eye view reduces visibility, hiding horizon.鳥瞰視角,減少可看範圍,隱藏地平線。
  • Reduce claustrophobia by pulling back slightly.當角色往下看,將攝影機往後微拉,減少幽閉恐懼症發作。

  • #地雷15: Using the same field-of-view for worm's eye angles and standard angles.在仰視與標準角度使用同樣視距。
  • The sky is really, really big.天空要非常非常大。
  • Human take it all in with peripheral vision.人類會用周邊視力看完全部
  • Imitate peripheral vision by expanding field-of-view. 藉由視距,模仿周邊視力。(想像自己就是角色,並且製造出當時所看到的範圍。)

  • #地雷16: Shifting pitch, distance, and field-of-view independently.獨自轉換間距,距離和視距。
  •  It feels laggy when linked variables must play catch-up.連結變數必須同時進行,不然會感覺延遲。
  • Distance and field-of-view both affect avatar screen size. Moving them independently make avatar appear to change size. Moving them together can preserve size.                                    距離與視距兩者會影響玩家畫面尺寸。如果單獨移動,玩家尺寸會被改變。同時移動,才能保持尺寸。
  • Distance and field-of-view should be instantly derived from pitch, shifting together like gears.距離與視距應立刻衍生出最高點,如同齒輪換檔,同時進行。
  • Additional rules can be applied as offsets to the derived base values.額外規則可以利用偏移去衍生基本數值。