You're close, but not quite. Unopposed dice in an opposed check aren't ignored, they're automatic successes; I guess that wasn't clearly stated on the wiki (I'll fix it right after this post).
You roll Xd6, where X is equal to your score in the relevant Attribute + 1/2 your ranks in the relevant skill, rounded up (since skills currently give +1 rolled die for every odd-numbered rank). You then ignore all but the Y highest dice out of those you rolled, where Y is equal to your score in the relevant Virtue + 1/2 your skill ranks, rounded down (since skills give +1 kept die for every odd-numbered rank). The shorthand representation for this is XkY.
For example, if you had 4 Physical, 3 Courage, and 3 ranks in |melee|, your attack roll with a sword would be 6k4 -- you roll 6d6 (4 Physical + 2 from your |melee| skill ranks) and keep the 4 highest dice out of that roll (3 Courage + 1 from your skill ranks). So if your roll was [3,6,4,2,4,3], your kept dice would be [6,4,4,3], and you'd ignore the other 3 and the 2.
Then for opposed checks, we use a linear comparison system, which means you compare your dice to your opponent's in order from highest to lowest. For example, suppose your opponent's defense roll was 5k3, and he got [2,4,3,5,5] on his 5d6 roll, keeping [5,5,4]. The comparison would be as follows (your dice on the left).
6 > 5 -- Success for you (deal damage equal to your weapon's damage increment)
4 < 5 -- Success for the opponent (no damage for this die)
4 = 4 -- Ties go to the defender; opponent wins this one too (no damage for this die)
3 (unopposed) -- If you have more kept dice than your opponent, the extra dice are auto-successes. Since you have one unopposed die, you deal one automatic increment of damage
Thus, you scored a total of 2 successes for that attack, so you deal two increments of damage. A typical sword has a damage increment of 1/2 heart, you'd deal 2*(1/2), or 1 full heart of damage.